Спросите пользователя, сколько дней они собирали драгоценные камни

#python #variable-assignment

#python #переменная-назначение

Вопрос:

Первый пользователь здесь и новичок в программировании. Спросите пользователя, сколько дней они собирали драгоценные камни. Цикл, который вы пишете, должен повторять, сколько дней вводит пользователь. Если пользователь вводит 5 дней, то цикл должен повторяться 5 раз для сбора данных за каждый день.

Итак, каждая итерация цикла представляет собой день. На каждой итерации цикла спрашивайте пользователя, сколько драгоценных камней он собрал за этот день. После того, как цикл завершит сбор данных за каждый день, вычислите общее и среднее количество собранных драгоценных камней. Отобразите среднее значение в виде значения с плавающей запятой.

Пример ввода / вывода (ваш вывод должен точно совпадать): Сколько дней вы собирали драгоценные камни? 5

Введите количество драгоценных камней, собранных в день 1: 5 Введите количество драгоценных камней, собранных в день 2: 4 Введите количество драгоценных камней, собранных в день 3: 3 Введите количество драгоценных камней, собранных в день 4: 2 Введите количество драгоценных камней, собранных в день 5: 1

Общее количество собранных драгоценных камней: 15 Среднее количество собранных драгоценных камней в день: 3,00

Я считаю, что многое из этого правильно, но где-то что-то не так, и я не могу понять это.

 days = int(input("How many days did you collect gems?"))

total = 0


for total in range(1, days   1):
    gems = int(input("Enter the number of gems collected on day {0}:".format(total)))


total_gems = total   days   days
print("Total gems collected:","{0:.0f}".format(total_gems))

average_gems = float(total_gems / days)
print("Average gems collected per day:","{0:.2f}".format(average_gems))
  

Комментарии:

1. Можете ли вы пояснить, почему вы считаете, что что-то не так, чтобы мы могли написать более целенаправленные ответы? Кроме того, из любопытства, почему вы думаете, что это правильно? Может быть, мы сможем устранить путаницу.

2. Результат, который я получаю с помощью уравнения total_gems, не работает должным образом, если вы должны были сказать 6 дней и 2, 2, 6, 3, 4 драгоценных камня в каждый отдельный день.

3. Я считаю, что ввод дней правильный, общее количество, цикл и ввод драгоценных камней правильные. Я могу ошибаться (что вполне вероятно), но я не знаю, я уже некоторое время пытаюсь разобраться.

4. Вы выбрасываете gems переменную и вводите значение total на каждой итерации цикла.

5. хорошо, как мне добавить входные данные «драгоценных камней» вместе? и это означает, что мне нужно где-то избавиться от «total», верно?

Ответ №1:

Ваш код близок к правильному, но ваше использование определенных переменных немного запутано, и вы не сохраняете каждый из своих ежедневных вводов, а продолжаете перезаписывать запись предыдущего дня, переназначая каждый раз gems , не делая что-то с предыдущим значением. Вот реализация, которая делает то, что вы хотите:

 days = int(input("How many days did you collect gems?"))

total = 0

for day in range(1, days   1):
    gems = int(input("Enter the number of gems collected on day {0}:".format(day)))
    total  = gems

print("Total gems collected: {0}".format(total))

average_gems = float(total) / days
print("Average gems collected per day: {0:.2f}".format(average_gems))
  

Пример запуска:

 How many days did you collect gems?4
Enter the number of gems collected on day 1:6
Enter the number of gems collected on day 2:6
Enter the number of gems collected on day 3:2
Enter the number of gems collected on day 4:1
Total gems collected: 15
Average gems collected per day: 3.75
  

Ответ №2:

Вы «забиваете» total переменную в for цикле, потому for total in range(1, days 1): что она используется повторно total . В качестве примера, вывод следующего кода равен 9:

 x = 1
for x in range(1, 10):
    pass
print(x)
  

Кроме того, вы выбрасываете gems переменную после каждой итерации цикла, потому что вы никогда ее нигде не используете.

Вы должны изменить переменную для вашего цикла на что-то другое, чем total , и добавить gems total внутри цикла.