2017-11-12 9 views
0

私はこのプログラムを作成しなければなりません:ユーザーがforループの範囲を選択させる方法を教えてください。

教師が何人の学生が彼/彼女のクラスに入っているかを入力するプログラムを作成して、クラス内の各学生の名前とマークをforループ。後で使用するためにすべての名前を記録する必要はないことに注意してください。これはコースの範囲を超えている*ので、各名前を尋ねて、名前をONE変数に重ねて保存してください。この合計を使用する必要があろう -

name = input (“Please enter student name: “) 

ループの

すなわち)

内部が全体クラスの平均点を計算します。 プログラムの最後にクラス平均を出力し、別のクラスのマークを入力するかどうかを尋ねます。彼らが「はい」と答えた場合は、プログラムを再ループします。

だから私はプログラムを書き始め、それがこの

studentamount = int(input("Please enter how many students are in your class: ")) 

for count in range(): 

    name = input ("Please enter student name: ") 
    mark = int(input("Please enter the student's mark")) 

のように見える私は、次のような問題に遭遇した:どのように私は生徒ごとにループにするループの下のコードのセットが可能でしょうか?私はちょうど範囲としてstudentamount変数に入力することができると思っていたが、Pythonはあなたが範囲として変数に入力することを許可していないので、私はできません。

入力された生徒のためにforループをループさせるにはどうすればよいですか?例えばもし学生20人が入力されたなら、私はforループを20回ループさせたいでしょう。あなたの助けと知識は非常に高く評価されています。

+2

可能な複製を(HTTPS: //stackoverflow.com/questions/20449427/how-can-i-read-inputs-as-integers) – alfasin

+1

'studentamount'をユーザー入力として受け入れます。これは' mark'に対して行ったことと同様で、 'range'としてループ –

答えて

0

、ユーザの入力を読むintに変換し、rangeにパラメータとして渡す:

studentamount = input("Please enter how many students ...: ") # this is a str 
studentamount = int(studentamount) # cast to int ... 

for count in range(studentamount): # ... because that's what range expects 
    # ... 
+0

これは私の問題を解決しました!どうもありがとうございます! –

0

Pythonはあなたが範囲として変数に入力することはできません。

Python は、変数を範囲として入力できますが、数値でなければなりません。 Input()は入力を文字列で読み込むので、キャストする必要があります。

ので、これは正しいです:

`` `Pythonの studentamount = INT(入力( "あなたのクラスにどのように多くの学生を入力してください:"))の範囲内のカウントのための

(studentamount) :

name = input ("Please enter student name: ") 
mark = int(input("Please enter the student's mark) 

`` `

PS try - except句は人に非整数データを入力[をキャッチするために、ここで有用であろう]

P.S.P.S @schwobasegglの例では、あなたが辞書やタプルの各生徒の名前やマークを保存することができ studentamount = input("Text") studentamount = int(studentamount)

0

よりも、ネストされた関数studentamount = int(input("Text")を使用してに各辞書を保存(またはタプル)する可能性がよりpythonisticで、あまりにも良いですリスト、コードサンプル(最後に終了するには、「なし」と入力したり、再ループプログラムに他の値)を参照してください:[?どうすれば整数として入力を読み取ることができる]の

response = None 
while response != 'no': 

     student_count = int(input('Please enter the number of students: ')) 
     students = [] 
     mark_sum = 0 
     print('There are {} student(s).'.format(student_count)) 
     for student_index in range(student_count): 
      student_order = student_index + 1 
      student_name = input('Please enter the name of student number {}: '.format(student_order)) 
      student_mark = float(input('Please enter the mark of student number {}: '.format(student_order))) 
      students.append({'name': student_name, 'mark': student_mark}) 
      mark_sum += student_mark 

     print('The average mark for {} student(s) is: {}'.format(student_count, mark_sum/student_count)) 

     response = input('Do you want to enter marks for another class [yes][no]: ') 
関連する問題