询问用户他们收集了多少天的宝石

Ask the user how many days that they collected gems

第一次来这里的用户和编程新手。 询问用户他们收集宝石的天数。您编写的循环应该循环用户输入的天数。如果用户输入 5 天,则循环应循环 5 次以收集每一天的数据。

因此,每个循环迭代代表一天。在每次循环迭代中,询问用户他们当天收集了多少宝石。循环完成每天的数据收集后,计算收集的宝石总数和平均宝石数。将平均值显示为浮点值。

样本input/output(您的输出应该完全匹配): 你收集了多少天的宝石? 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): 是 re-using total。例如,以下代码的输出是 9:

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

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

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