私は C++ のバックグラウンドはかなりありますが、Python は初めてです。ユーザーが会社の株主数を指定し、各株主の 3 つの品質 (仕事の有用性、仕事の重要性、仕事の難しさ) の評価を尋ねることができる基本的なプログラムを作成しようとしています。
これら 3 つのスケールでのユーザーの評価をどこかに保存し、後で表示したいと考えています。3 つの性質ごとに 3 つのリストを使用することが最も効率的な方法かどうかはまだわかりません。とにかく、次のコードで私がやろうとしたことはuserrem
、リスト内のどの新しいアイテムが追加されるかを使用して、変数を識別子として割り当てることです。
したがって、たとえば、の初期値は0です。したがって、入力された値をリストの最初の項目として追加する必要userrem
があると理解しています。usefulness[userrem] = input()
次に、コードでわかるように、while ループが進行し、userrem
1 ずつ増加します。そのため、ループの 2 回目の反復ではusefulness[userrem]=input()
、入力された値をリストの 2 番目の項目として追加する必要があると考えました。
ただし、ループの最初の反復でIndexError: list assignment index out of range
値を入力した直後にエラーが発生し続けます。usefulness[userrem]
だから、私の質問は次のとおりです: -
- リストを使用することは、これを行う最も効率的な方法ですか?
- 私が達成したいことを達成するための代替方法は何ですか?
- アイテムの数が不明な (おそらく無限!) 3 つのリストを作成するよりも、株主ごとに 3 つの資質についてそれぞれ 3 つのアイテムを含むリストを作成したほうがよいでしょうか? しかし、各株主のリストがある場合、リストの数は不明であり、各リストのアイテムが 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