15

クラスの生徒数を入力し、各生徒に3つのテスト成績を入力して平均を計算できるプログラムを作成しようとしています。私はプログラミングに不慣れで、それが何を意味するのか、それを修正する方法がわからないというエラーが発生し続けます。これは私がこれまでに持っているものです:

students=int(input('Please enter the number of students in the class: '))

for number in students:
        first_grade=(input("Enter student's first grade: "))
        second_grade=(input("Enter student's second grade: "))
        third_grade=(input("Enter student's third grade: "))
4

4 に答える 4

39

あなたが書いたとき

for number in students:

あなたの意図は、「このコードstudents時間のブロックを実行することでした。ここstudentsで、私が入力した値です。」しかし、Pythonでは、ステートメントfor渡すものは、ある種の反復可能なオブジェクトである必要があります。この場合、必要なのは単なるrangeステートメントです。これにより、数値のリストが生成されます。これらを繰り返すことで、forループを適切な回数実行できます。

for number in range(students):
    # do stuff

内部的にはrange、は連番のリストを生成するだけです。

>>> range(5)
[0, 1, 2, 3, 4]

あなたの場合、数字が何であるかは実際には問題ではありません。次の2つのforステートメントは同じことをします:

for number in range(5):

for number in [1, 3, 97, 4, -32768]:

ただし、このrangeバージョンを使用すると、より慣用的なものと見なされ、ループ内のある種のリストを変更する必要がある場合に便利です(これは、後で行う必要があることです)。

于 2013-02-18T16:55:59.557 に答える
3

数字を繰り返すことはできません。あなたがおそらく探しているのは、rangeあなたが望む数までの数列を作成する関数です:

for number in range(1, students + 1):

+ 1を追加した理由は、範囲の2番目の引数が排他的であるためです。

于 2013-02-18T16:54:25.573 に答える
0

これを試してください...それは動作します...

i=0
x = "abcd"


print("Using for loop printing string characters")
for i in range(len(x)):
    print(x[i])
于 2020-05-01T07:01:54.667 に答える
0

これを試してください:

  students=int(input('Please enter the number of students in the class: '))

  for number in range(students):
        first_grade=(input("Enter student's first grade: "))
        second_grade=(input("Enter student's second grade: "))
        third_grade=(input("Enter student's third grade: "))
于 2021-01-22T20:45:37.747 に答える