函数从没有极限的输入中求平均数

2024-09-26 18:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个代码,从输入中获取数字,直到数字变成"-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',这个函数也不起作用


Tags: 代码number编码inputif数字quit平均值
2条回答
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类型,因此您应该在比较if i==-1之前将其转换为int。 在while循环中,它继续使用用户输入,直到用户输入-1。 可以通过内置函数sum简单地计算列表的总和

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

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

而且,你的平均值比需要的要复杂一些。试试这个:

b = sum(a) / len(a)

当然,如果不输入任何数字来求平均值,也就是除以0,就会遇到麻烦

相关问题 更多 >

    热门问题