python新手。我想知道是否有人可以检查我的代码是否解决了这个问题
编写一个程序,使用嵌套循环来收集数据并计算一段时间内的平均降雨量。该计划应首先询问年数。外部循环将每年迭代一次。内部循环将迭代12次,每月一次。内部循环的每次迭代都会询问用户该月的降雨量。在所有迭代之后,程序应显示整个期间的月数、总降雨量和每月平均降雨量python新手。我想知道是否有人可以检查我的代码是否解决了这个问题,python,average,Python,Average,编写一个程序,使用嵌套循环来收集数据并计算一段时间内的平均降雨量。该计划应首先询问年数。外部循环将每年迭代一次。内部循环将迭代12次,每月一次。内部循环的每次迭代都会询问用户该月的降雨量。在所有迭代之后,程序应显示整个期间的月数、总降雨量和每月平均降雨量 input_years=int(input('Enter number of years:')) for years in range(input_years+1): total = 0.0 for month in range
input_years=int(input('Enter number of years:'))
for years in range(input_years+1):
total = 0.0
for month in range(13):
input_month=int(input('Enter the amount of rainfall for that month:'))
total=+input_month
average=total/month
print("This is the number of months:",input_month )
print("This is the total number of rainfall",total,"inches")
print("This is the average rainfall permonth",format(average,".2f"))
您的代码在一年内循环次数过多。它应该循环12次,但循环13次 使用Python 2时,格式不正确。代码输出如下:
('This is the number of months:', 13)
('This is the total number of rainfall', 13, 'inches')
('This is the average rainfall permonth', '1.00')
要解决此问题,请在变量之间使用加号,而不是使用逗号。执行此操作时,还需要将变量作为字符串传递到print命令中
如果您使用的是Python3,那么解决方案是删除print中使用的()感谢您的更改。
当从用户处获取降雨时,显示单位也是一个不错的功能
希望这有帮助 最好是你自己尝试一下,但我想在第2行中指出这一点
for years in range(input_years+1):
您不需要添加“+1”,因为它会在包括0在内的范围内迭代,请尝试以下方法:
for x in range(5):
print("Hello World!")
它将打印“Hello World”5次
4号线也有同样的问题
for month in range(13):
您的代码实际上有两个问题:一个是您在范围(13)内的月份在
中额外迭代一次:
,因为范围从0开始。另一个问题是在for循环中,您正在执行total=+input\u month
,因此您只需将total
设置为等于上个月的条目。应该是total+=input\u月
代码问题:
对于循环,每次迭代是否太多
您被要求对整个期间进行计算,而不是每年
您正在混淆变量,例如,input\u month
不是月数
您没有增加总计total=+input\u月
应该是total+=input\u月
建议:
修复循环
有整个期间的总计,而不是每年
仅获取输入并增加循环中的总计
在两个循环之外进行计算
使用期=12*输入年,平均值=总计/期
不,不。但是你应该自己尝试一下,找出问题,然后调试。如果您发现无法解决的特定问题,请创建一个。有关审阅代码的问题应在上询问。StackOverflow适用于具有特定问题/问题的问题。在姐妹网站上发布问题之前,请仔细阅读他们的帮助,他们也有规则。你正在使用python2,这就是为什么你会得到奇怪的打印输出。但是可以假设Alexander使用python3,即使用input和print with()(否则,他使用的是错误的,而不是您)。解决方案是删除print使用的()这个声明是错误的:“您的月份在上一次迭代中增加了1,变成了13,而不是12。”。现在是12点…谢谢你的评论。我已经相应地更新了我的答案。你想知道循环中到底应该修复什么吗?@AlexanderPaul迭代的次数,正如每个答案告诉你的那样