我在 C++ 方面有不错的背景,但我是 Python 新手。我正在尝试编写一个基本程序,允许用户指定公司的股东人数,然后询问每个股东在三个品质(工作的有用性、工作的重要性、工作的难度)中的每一个的评级。
我想将用户在这三个尺度上的评分存储在某个地方,然后再显示。我仍然不确定是否为 3 种品质中的每一种使用 3 个列表是最有效的方法。无论如何,我在下面的代码中尝试做的是分配一个变量userrem
作为标识符,使用该标识符将添加列表中的新项目。
因此,例如,初始值为userrem
0。所以,我的理解是usefulness[userrem] = input()
应该将输入的值添加为列表中的第一项。然后,正如您在代码中看到的那样,while 循环继续进行并userrem
增加 1。所以我认为对于循环的第二次迭代,usefulness[userrem]=input()
应该将输入的值添加为列表中的第二项。
但是,在循环的第一次迭代中IndexError: list assignment index out of range
输入值后,我不断收到错误消息。usefulness[userrem]
所以,我的问题如下: -
- 使用列表甚至是最有效的方法吗?
- 实现我想要实现的目标的替代方法是什么?
- 为每个股东提供一份清单,每个清单包含三个品质,而不是三个清单,其中包含未知数量的项目(可能是无限的!)?但是,如果我们为每个股东都有一个列表,那么即使每个列表中的项目只有 3 个,列表的数量也可能是未知的并且可能是无限的。我如何确定哪种方法最有效?
谢谢!
def func_input():
userrem=0 # Variable used as the identifier while adding items to the lists
global user_n # Total number of users, accessed during input
user_n=0
user_n=int(input('How many shareholders are there?'))
while userrem<user_n:
usefulness[userrem]=int(input('Rate the usefulness of the work performed by shareholder# '+str(userrem+1)+' [Range=0-5]'))
significance[userrem]=int(input('Rate the significance of the work performed by shareholder# '+str(userrem+1)+' [Range=0-5]'))
difficulty[userrem]=int(input('Rate the difficulty of the work performed by shareholder# '+str(userrem+1)+' [Range=0-5]'))
userrem=userrem+1