Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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_Average - Fatal编程技术网

python新手。我想知道是否有人可以检查我的代码是否解决了这个问题

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

编写一个程序,使用嵌套循环来收集数据并计算一段时间内的平均降雨量。该计划应首先询问年数。外部循环将每年迭代一次。内部循环将迭代12次,每月一次。内部循环的每次迭代都会询问用户该月的降雨量。在所有迭代之后,程序应显示整个期间的月数、总降雨量和每月平均降雨量

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迭代的次数,正如每个答案告诉你的那样