【问题标题】:How can I get "EOFEroor" in Python while taking multiple inputs from users?在从用户那里获取多个输入的同时,如何在 Python 中获得“EOFeroor”?
【发布时间】:2022-01-10 17:02:29
【问题描述】:

我正在尝试从用户那里获取多个输入并通过文件结束(EOF)错误打破循环。

while True:
try:
    n, l, c = map(int,input().split())

except EOFError:
    break

但是当用户给出多个输入然后按 Enter 时,就会出现 ValuEroor 警告。

ValueError: 没有足够的值来解包(预期 3,得到 0)

在这种情况下,有没有办法让 EOFeroor 打破循环并避免 ValueEoor?

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python eof valueerror try-except multiple-input


【解决方案1】:

如果用户按下 CTRL-D,你只会得到EOFError。只需将ValueError 添加到捕获的异常中即可:

except (EOFError, ValueError):

或者,如果需要以不同方式处理:

except EOFError:
    ...
except ValueError:
    ...

万一用户输入的字符串无法转换为int,您仍然需要它。

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2021-05-04
    相关资源
    最近更新 更多