このプログラムを動作させるのに問題があり、ここでは午前 2 時頃なので、本当に終わらせたいと思っています。とにかく、数週間にわたる寄付の総額と平均 (ユーザーが入力) を計算して表示するプログラムを作成する必要があります。このプログラムは、ネストされたループを使用してデータを収集し、平均を計算します。
仕組みは次のとおりです。
- プログラムは週数を要求します
- 外側のループは毎週 1 回繰り返されます
- 内側のループは 1 週間に 5 回繰り返されます
- 内側のループの各反復は、ユーザーに寄付額を要求します
- すべての反復の後、寄付の合計と各週の寄付の平均が表示されます
このプログラムを作成する上で私が抱えている主な問題は 3 つあります。1 つ目は、ループのネストが思いどおりに機能していないことです。
weeks = input("How many weeks available for collection? ")
for donation_week in range(0, weeks):
for donation_day in range(0, donation_week*5):
amount = input("How much money was donated today? ")
break
week_total = amount * 5
collection_total = week_total * weeks
average = collection_total / weeks
print "In", weeks, "weeks, a sum of", collection_total, "was collected and an average"\
" of", average, "was donated each week"
たとえば、ユーザーが 3 週間と入力した場合、プログラムは 1 週間に 5 回、つまり 15 回、金額を取得すると予想します。しかし、そうではなく、金額を 2 回要求するだけです。
2 番目の問題は、ユーザーが 1 週間または 0 週間を入力すると、「NameError: name 'amount' is not defined」というエラーが発生することです。
最後の問題は、コーディングでまだ触れていないことです。これは、ユーザーが毎日異なる金額を入力した場合に、1 週間の合計 (week_total) を計算する方法です。実際には、週 5 日間に 5 つの金額変数がある場合にのみ、金額を 1 つの変数として述べます。
繰り返しますが、私はPythonに非常に慣れていないため、私の説明ガイドはこれらのような詳細には触れていません. このプログラムを 2 時間ほど並べ替えたり変更したりしてきましたが、まだかなり行き詰っています。ここで誰かが知識を共有できることを願っています。どうもありがとう。