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