Я пытаюсь решить проблему, но я работал над ней так долго и пробовал так много вещей, но я действительно новичок в python и не знаю, как получить входные данные I после.Калькулятор осадков Python
Калькулятор должен быть в формате вложенного цикла. Во-первых, он должен запросить количество недель, для которых следует рассчитывать количество осадков. Внешний цикл будет повторяться один раз в неделю. Внутренний цикл будет повторяться семь раз, один раз для каждого дня недели. Каждая итерация внутренней петли должна попросить пользователя ввести количество мм дождя за этот день. Далее следуют расчеты для общего количества осадков, в среднем за каждую неделю и в среднем в день.
Главная беда у меня получает ввод сколько недель есть и дни недели, чтобы перебирать в программе, например:
Enter the amount of rain (in mm) for Friday of week 1: 5
Enter the amount of rain (in mm) for Saturday of week 1: 6
Enter the amount of rain (in mm) for Sunday of week 1: 7
Enter the amount of rain (in mm) for Monday of week 2: 7
Enter the amount of rain (in mm) for Tuesday of week 2: 6
Это типа из вывода я хочу, но до сих пор я понятия не имею, как заставить его делать то, что я хочу. Я думаю, мне нужно использовать словарь, но я не уверен, как это сделать. Это мой код:
ALL_DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
total_rainfall = 0
total_weeks = 0
rainfall = {}
# Get the number of weeks.
while True:
try:
total_weeks = int(input("Enter the number of weeks for which rainfall should be calculated: "))
except ValueError:
print("Number of weeks must be an integer.")
continue
if total_weeks < 1:
print("Number of weeks must be at least 1")
continue
else:
# age was successfully parsed and we're happy with its value.
# we're ready to exit the loop!
break
for total_rainfall in range(total_weeks):
for mm in ALL_DAYS:
mm = int(input("Enter the amount of rain (in mm) for ", ALL_DAYS, "of week ", range(total_weeks), ": "))
if mm != int():
print("Amount of rain must be an integer")
elif mm < 0 :
print("Amount of rain must be non-negative")
# Calculate totals.
total_rainfall =+ mm
average_weekly = total_rainfall/total_weeks
average_daily = total_rainfall/(total_weeks*7)
# Display results.
print ("Total rainfall: ", total_rainfall, " mm ")
print("Average rainfall per week: ", average_weekly, " mm ")
print("Average rainfall per week: ", average_daily, " mm ")
if __name__=="__main__":
__main__()
Если вы можете направить меня в правильном направлении, я буду так благодарен!
Вы можете исправить свой отступ? – oldrinb
Вы, вероятно, не должны указывать переменные цикла, которые вы обновляете позже ... Например. 'для total_rainfall в диапазоне (total_weeks):' ... Здесь вы перебираете номер недели, а не total_rainfall. Затем 'для mm в ALL_DAYS', вы зацикливаете дни, а не mm. –
@oldrinb Это лучше? – remar311