Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 询问用户收集宝石的天数_Python_Variable Assignment - Fatal编程技术网

Python 询问用户收集宝石的天数

Python 询问用户收集宝石的天数,python,variable-assignment,Python,Variable Assignment,这里的第一次用户和编程新手。 询问用户收集宝石的天数。您编写的循环应该循环用户输入的天数。如果用户输入5天,则循环应循环5次以收集每天的数据 因此,每个循环迭代代表一天。在每次循环迭代中,询问用户当天收集了多少宝石。循环完成每天的数据收集后,计算收集到的总宝石数和平均宝石数。将平均值显示为浮点值 示例输入/输出(您的输出应完全匹配): 你收集宝石有多少天了?五, 输入第1天收集的宝石数量:5 输入第2天收集的宝石数量:4 输入第3天收集的宝石数量:3 输入第4天收集的宝石数量:2 输入第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
变量进行“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”,对吗?天哪,就是这样!?主啊,发慈悲吧。非常感谢。我知道是这样的,但我一辈子都想不出来!我很高兴能帮上忙。仅供参考,如果您认为此答案确实回答了您的问题,请单击复选标记使其变为绿色。我会的!谢谢