询问用户他们收集宝石的天数



第一次来这里,编程新手。 询问用户他们收集宝石的天数。您编写的循环应循环用户输入的天数。如果用户输入 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))

你的代码接近正确,但你对特定变量的使用有点混乱,你没有保留你的每个日常输入,而是通过每次重新分配给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

您正在"破坏"for循环中的total变量,因为for total in range(1, days + 1):正在重用total。例如,以下代码的输出为 9:

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

此外,在循环的每次迭代后,您都会丢弃gems变量,因为您从未在任何地方使用它。

您应该将循环的变量更改为total以外的变量,并将gems添加到循环内的total

相关内容