0
私はPythonには新しく、私はCodecademyのコーディング演習を拡張しようとしていました。私はプログラムが選択された学生の平均のためのユーザー入力を取るようにしたいが、私は '文字列インデックスは整数でなければならない'エラーを取得し続けます。なぜ文字列インデックスは整数でなければならないのですか?
lloyd = {
"name": "Lloyd",
"homework": [90.0, 97.0, 75.0, 92.0],
"quizzes": [88.0, 40.0, 94.0],
"tests": [75.0, 90.0]
}
alice = {
"name": "Alice",
"homework": [100.0, 92.0, 98.0, 100.0],
"quizzes": [82.0, 83.0, 91.0],
"tests": [89.0, 97.0]
}
tyler = {
"name": "Tyler",
"homework": [0.0, 87.0, 75.0, 22.0],
"quizzes": [0.0, 75.0, 78.0],
"tests": [100.0, 100.0]
}
def average(numbers):
total = sum(numbers)
total = float(total)/len(numbers)
return total
#List of Students to choose from for get_average input()
x = '1. Alice'
y = '2. Tyler'
z = '3. Lloyd'
#get_average function
def get_average(alice):
homework = average(alice['homework'])
quizzes = average(alice['quizzes'])
tests = average(alice['tests'])
student = input('Please type the number of the student who\'s weighted average you would like to see:' + '\n' + x + '\n' + y + '\n' + z)
if student == '1':
print(0.1 * average(alice['homework']) + 0.3 * average(alice['quizzes']) + 0.6 * average(alice['tests']))
get_average('student')
私はロイドのための関数を作成するには、アリスの平均とタイラーの平均のためのコードを使用するつもりだったが、私はちょうど最初の部分を把握することはできません。誰か助けてくれますか?ありがとう。
' 'student''は、このように' alice'が文字列で、文字列です。一言ではありません。 'get_average(タイラー)'を試してください。 –
生徒1人につき1つの辞書を作成しないでください。生徒名をキーにした生徒を作成します。 –
@ Jean-FrançoisFabreまたは辞書付きの配列(リスト)。 –