在这段代码中我用数字做一个循环,直到我写完"完成"在此之后我写的所有数字都会被添加,计算,然后计算出数字的平均值。但是我在这里遇到了一些问题
from types import *
while True:
number = input("Enter a number")
junction=[]
if type(number)is FloatType :
ju.append(number)
continue
elif number=="done":
break
else :
print ("Invalid Input")
continue
print (sum(junction))
print (len(junction))
print (sum(junction)/len(junction))
答案 0 :(得分:3)
您应该考虑改为使用try/except
块(另外:您应该在<{1}}循环之外创建空列表):
while
另请注意,x = []
while True:
a = input("Enter a number: ")
try:
x.append(int(a))
except ValueError:
if a == 'done':
break
else:
print ("Invalid Input")
continue
print ('Results')
print (sum(x))
print (len(x))
print (sum(x)/len(x))
适用于python3,如果您使用的是python2,则应使用input
代替相同的效果。
答案 1 :(得分:1)
非常简单的答案是,您每次都要重置循环中的junction
列表。所以它几乎一直都是空的,特别是当你输入"done"
退出时。
将其移至程序的顶部;在while
语句之上,它应该更适合你。
(另外,您不需要使用continue
,因为循环不的唯一方法是继续使用break
语句。在所有其他情况下,循环将自行继续。)
from types import *
junction=[]
while True:
number = input("Enter a number")
if type(number)is FloatType :
junction.append(number)
elif number=="done":
break
else:
print ("Invalid Input")
print (sum(junction))
print (len(junction))
print (sum(junction)/len(junction))