首页 > 解决方案 > Python:求数字的平均值

问题描述

我的任务是:“编写一个程序,不断向用户询问一些数字。如果用户在没有输入任何内容的情况下按回车键,程序会停止并打印所有给定数字的平均值。应该给出平均值到小数点后 2 位。如果在任何时候输入了 0,则不应将其包括在平均值的计算中”

我已经尝试了一段时间,但我不知道如何让程序在用户点击“输入”或忽略 0 时执行我指示的任何内容。这是我当前的代码:

count = 0
sum = 0
number = 1
while number >= 0:
    number = int(input())
    if number == '\n':
        print ('hey')
        break
    if number > 0:
        sum = sum + number
        count= count + 1
    elif number == 0:
        count= count + 1
    number += 1
avg = str((sum/count))
print('Average is {:.2f}'.format(avg))

标签: python

解决方案


你很亲近!几乎所有的都是完美的!

这是一些更多的pythonic代码,它有效。我已经发表评论解释变化:

count = 0
sum = 0
# no longer need to say number = 1
while True:  # no need to check for input number >= 0 here
    number = input()
    if number = '':  # user just hit enter key, input left blank
        print('hey')
        break
    if number != 0:
        sum += int(number)  # same as sum = sum + number
        count += 1  # same as count = count + 1
    # if number is 0, we don't do anything!
print(f'Average is {count/sum:.2f}')  # same as '... {:.2f} ...'.format(count/sum)

为什么您的代码不起作用:

当用户只是按下回车而不是输入数字时,该input()函数不会返回'\n',而是返回''

我真的希望这可以帮助你学习!


推荐阅读