函数可无限制地输入平均值

时间:2019-01-18 06:02:04

标签: python python-3.x function

我想编写从输入中获取数字直到数字为"-1"(==-1)的代码 然后用这个数字,我想求平均值。 所以我这样写

我想知道为什么我的代码出错了

print("if u wanna quit inputting number, press '-1'")
print("="*60)

a=[]
while input()!=-1:
    a.append(int(input()))

def avrg(*n):
    summ=0
    avrg=0
    for i in n:
        summ+=i
    avrg=summ/len(n)
    return avrg

b=avrg(a)
print(b)

即使我输入了'-1',该功能也无法正常工作

2 个答案:

答案 0 :(得分:2)

您可能不希望同时在条件循环和while循环中调用input。这样的事情可能就是您想要的:

a = []
num = int(input())
while num != -1:
    a.append(num)
    num = int(input())

此外,求平均值的过程比所需的要复杂一些。试试这个:

b = sum(a) / len(a)

当然,如果您不输入任何要除以0的平均数,就会遇到麻烦。

答案 1 :(得分:0)

print("if u wanna quit inputting number, press '-1'")
print("="*60)

a=[]

while True:
    i = int(input())
    if i==-1:
        break
    else:
        a.append(i)

def avrg(a):
    return sum(a)/len(a)

b=avrg(a)
print(b)

函数input()的用户输入始终为str类型,因此在比较int之前,您需要将其转换为if i==-1。 在while循环中,它将继续消耗用户输入,直到用户输入-1。 列表的总和可以通过内置函数sum进行简单计算。