虽然(!EOF())等效于Python

时间:2018-05-19 18:46:16

标签: python loops

我正在研究一个学校项目,它特意要求一段时间而不是文件结束循环,我不知道如何用Python做。我正在接受用户输入(不是来自外部文件)并在这个无限循环中计算一些数学,直到他们按CTRL + C来打破循环。任何想法都会帮助我。如果这有助于澄清,我已添加了部分说明。感谢。

enter image description here

2 个答案:

答案 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