我正在研究一个学校项目,它特意要求一段时间而不是文件结束循环,我不知道如何用Python做。我正在接受用户输入(不是来自外部文件)并在这个无限循环中计算一些数学,直到他们按CTRL + C来打破循环。任何想法都会帮助我。如果这有助于澄清,我已添加了部分说明。感谢。
答案 0 :(得分:1)
你的循环应该在两个条件下停止:
输入了非法值,即某些无法转换为float
的值。在这种情况下,将引发ValueError
。
您输入ctrl-Z
,表示EOF。 (对不起,这里没有Windows,我只是在Linux上测试过,我认为ctrl-D
相当于Windows ctrl-Z
)。将引发EOFError
。
因此,您应该创建一个无限循环,并在发生其中一个异常时突破它。
我将异常的处理分开,以便您可以看到发生的情况并打印一些有意义的错误消息:
while True:
try:
amount = float(input())
print(amount) # do your stuff here
except ValueError as err:
print('Terminating because', err)
break
except EOFError:
print('EOF!')
break
如果你只想退出而不做更多的事情,你可以用同样的方式处理这两个例外:
while True:
try:
amount = float(input())
print(amount) # do your stuff here
except (ValueError, EOFError):
break
答案 1 :(得分:0)
使用以下内容: -
while True:
amount = raw_input("Dollar Amount: ")
try:
amount = float(amount)
# do your calculation with amount
# as per your needs here
except ValueError:
print 'Cannot parse'
break