2017-11-06 23 views
0

私は現在これを課題として持っています。私は以下のコードを書いていますが、計算が追加されるにつれて問題があるようです。 forループを再起動する方法はありますか?Python forループの問題

従業員は7名です。ネストされたループを持つプログラムを作成して、各従業員の年間給与を5年間尋ねます。あなたのプログラムは、最高給与、最低給与を把握し、各従業員の平均給与を計算する必要があります。各従業員データを収集した後、その従業員の最高給与、最低給与、および平均給与を表示します。

totalsalary = 0 
salaryhigh = 0 
salarylow = 10000000 
employee = 0 

for employee in range(1,4): 
    print("Please enter the 5 year salaries of Employee#",employee,":") 
    for year in range(1,6): 
     salary = int(input('Enter you salary:'+"")) 
     totalsalary = totalsalary + salary 
     if(salary > salaryhigh): 
      salaryhigh = salary 
     if(salary < salarylow): 
      salarylow = salary 
    avesalary = totalsalary/5 
    print('Total Salary entered for 5 years for Employee#',employee,':',totalsalary) 
    print("Average is:",avesalary) 
    print("Highest Salary entered is:",salaryhigh) 
    print("Lowest Salary entered is:",salarylow) 
    print("------------------------------------") 
+0

私は問題は表示されませんが、それはうまくいくはずです。 6行目の予期しないインデントを除いて、しかし私はあなたのコードでそれを持っていないと思う。 –

+1

これはうまくいきますが、従業員3に達すると、前の2人の従業員の計算が従業員3の計算に追加されます。 –

+0

'totalsalary = 0'、 'salaryhigh = 0'、' salarylow = float "inf") 'を最初の' for'ループの内側に置くので、各繰り返しで再定義することができます(これらのデフォルト値に設定します) – Andersson

答えて

0

最初の3行は、従業員ごとに実行する必要があります。したがって、外側のforループの内側に配置する必要があります。 4行目は実際には何もしません。forループは従業員番号をリセットします。また、for-loopは3人の従業員しかいませんが、7人の従業員がいるとします。一般的には、最初に従業員数を設定し、それを次のコードで使用することをお勧めします。その数字が何を表しているかは分かりやすく、番号を追跡して変更する方が簡単です。例えば。

number_of_employees = 7 
for employee in range(0,number_of_employees): 
    ... 
関連する問題