【发布时间】:2024-01-22 14:00:01
【问题描述】:
我正在尝试将用户的 get 输入仅转换为整数,并提供错误检查以确保用户的输入有效。在检查用户是否输入了字符串时,如果用户输入的不是整数,程序应该显示错误。但是,无论我如何构造这个 try/except,它都不会显示错误消息,而是将我弹回到 Visual Studio 编辑器并抛出异常“invalid literal for int() with base 10”。我已经在这个网站和其他网站上进行了搜索和搜索,其他所有遇到此问题的人都可以使用此代码使其正常工作,但由于某种原因,它无法正常工作。有人可以帮我找出问题所在,或者如果有另一种检查整数输入的方法,请指出我的方向。感谢您提供任何帮助,如果此站点上已经存在类似问题,我深表歉意,但我无法找到与我的具体案例有关的问题。我正在使用 Python 3.7 解释器(虽然我已经安装了 3.8,但 VS 还不支持它)。这是我的代码:
try:
a = int(input("Input: "))
except ValueError:
print(a)
【问题讨论】:
-
您不是在打印错误消息,您只是在打印他们输入的任何内容。
-
但这不起作用,因为如果转换失败,则不会分配变量。
-
这是验证输入的正确方法。如果您从终端窗口而不是 VS 运行脚本,它会起作用吗?
-
如果用户输入了一个数字,但它不是整数怎么办?这可以接受吗?在这种情况下,您应该使用@gelonida 答案,但将其修改为
a = int(float(inp))。 -
@Barmar,我从终端尝试过,它成功了。感谢您的反馈!看来我将切换回 PyCharm,因为 Visual Studio 并不真正适合 Python 开发。
标签: python python-3.x try-catch valueerror