【问题标题】:Using a break statement in a loop在循环中使用 break 语句
【发布时间】:2015-08-05 11:50:02
【问题描述】:

编写一个程序,使用 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 语句,但我就是想不通。

【问题讨论】:

  • 您能否使用一个真正反映问题的标题,而不是您提出问题的动机?您的问题标题并没有将它与 Python 新用户提出的所有其他问题区分开来。

标签: python


【解决方案1】:

如果用户只是按回车键或然后强制转换并追加,则中断

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 是无关紧要的。您可以使用列表的长度来获取平均值,如果用户使用您原来的while count &lt; number_of_entries:number_of_entries 输入10,然后在输入5 个数字average = sum(entries)/number_of_entries 后按回车将是错误的。

【讨论】:

  • 我试过了,但我不断得到:来自 MyPyTutor 的 int() 的无效文字,基数为 10:'1.5'。我不知道那是什么意思。
  • 表示你没有使用我的代码,我在哪里使用int?
  • 噢,我真傻。我忘记将 int() 之一切换为 float() 所以我不能使用像 1.5 这样的输入。它有效:D 谢谢。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多