Python 询问用户收集宝石的天数
这里的第一次用户和编程新手。 询问用户收集宝石的天数。您编写的循环应该循环用户输入的天数。如果用户输入5天,则循环应循环5次以收集每天的数据 因此,每个循环迭代代表一天。在每次循环迭代中,询问用户当天收集了多少宝石。循环完成每天的数据收集后,计算收集到的总宝石数和平均宝石数。将平均值显示为浮点值 示例输入/输出(您的输出应完全匹配): 你收集宝石有多少天了?五, 输入第1天收集的宝石数量:5 输入第2天收集的宝石数量:4 输入第3天收集的宝石数量:3 输入第4天收集的宝石数量:2 输入第5天收集的宝石数量:1 收集的宝石总数:15 每天平均收集的宝石:3.00 我相信我有很多地方是对的,但有些地方出了问题,我无法理解Python 询问用户收集宝石的天数,python,variable-assignment,Python,Variable Assignment,这里的第一次用户和编程新手。 询问用户收集宝石的天数。您编写的循环应该循环用户输入的天数。如果用户输入5天,则循环应循环5次以收集每天的数据 因此,每个循环迭代代表一天。在每次循环迭代中,询问用户当天收集了多少宝石。循环完成每天的数据收集后,计算收集到的总宝石数和平均宝石数。将平均值显示为浮点值 示例输入/输出(您的输出应完全匹配): 你收集宝石有多少天了?五, 输入第1天收集的宝石数量:5 输入第2天收集的宝石数量:4 输入第3天收集的宝石数量:3 输入第4天收集的宝石数量:2 输入第5天收集
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
变量进行“clobbing”,因为for total in range(1,days+1):
正在重新使用total
。举例来说,以下代码的输出为9:
x = 1
for x in range(1, 10):
pass
print(x)
此外,在循环的每次迭代之后,您都会丢弃gems
变量,因为您从未在任何地方使用过它
您应该将循环变量更改为除
total
之外的其他变量,并将gems
添加到循环内的total
。您能否澄清您为什么认为有问题,以便我们可以编写更有针对性的答案?另外,出于好奇,你为什么认为这是正确的?也许我们可以澄清一些混乱的地方。如果你说6天和每一天2,2,6,3,4个gems,那么我从total_gems方程得到的输出就不能正常工作。我相信天数输入是正确的,总数,循环,gems输入是正确的。我可能是错的(很可能是错的),但我不知道,我一直在努力纠正这一错误。您正在丢弃gems
变量,并且在每次循环迭代中都在total
中删除值。好的,如何将“gems”输入相加?这意味着我需要在某个地方去掉“total”,对吗?天哪,就是这样!?主啊,发慈悲吧。非常感谢。我知道是这样的,但我一辈子都想不出来!我很高兴能帮上忙。仅供参考,如果您认为此答案确实回答了您的问题,请单击复选标记使其变为绿色。我会的!谢谢