我想编写从输入中获取数字直到数字为"-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'
,该功能也无法正常工作
答案 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
进行简单计算。