在循环

时间:2015-08-05 11:50:02

标签: python

编写一个程序,该程序使用while循环重复提示用户输入数字,并将数字添加到运行总计中。输入空白行时,程序应打印输入的所有数字的平均值。 您需要使用break语句退出while循环。 这是我到目前为止所得到的:

number_of_entries = int(input('Please enter the number of numbers: '))
entries = []
count = 0
while count < number_of_entries:
    entry = float(input('Entry:'))
    entries.append(entry)
    count = count + 1
average = sum(entries)/number_of_entries
print(average)

这首先提示用户输入数字,然后提示他们输入条目,while循环继续提示输入数字,直到数字数等于用户输入的数字数。条目将保存到列表中,列表中的数字总和用于获取存储在平​​均变量中的平均值。如果用户没有输入任何内容(只需按回车键),则应该只找到已经输入的数字的平均值而不是导致错误代码。我知道我必须使用break语句,但我无法弄明白。

2 个答案:

答案 0 :(得分:2)

如果用户只按下Enter键,则会中断,然后强制转换

while True:
    entry = input('Entry:')
    if not entry: # catch empty string and break the loop
        break
    entries.append(float(entry)) 

average = sum(entries)/len(entries)

如果您只是在用户点击输入时中断,则number_of_entries无关紧要。如果用户使用原始number_of_entrieswhile count < number_of_entries:输入10,则可以使用列表的长度来获得平均值,然后在输入5个数字average = sum(entries)/number_of_entries后输入Enter将是错误的。< / p>

答案 1 :(得分:0)

可能这段代码会对你有所帮助。这也将检查字符串或字符条目。

entries=[]
while True:
   print "Entry: "
   try:
        entry = float(raw_input())
        entries.append(float(entry))
   except:
       print "Not a Valid Entry"
       break
average = sum(entries)/len(entries)
print average