You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

输入"-"时Python的except ValueError语句为何未生效?

问题解析:输入"-"时except ValueError未生效的原因

嘿,这个问题我太熟了——十有八九是缩进问题在搞鬼!

首先咱们理清楚逻辑:当你输入单独的-时,int("-")确实会抛出ValueError,这是完全符合预期的,因为单独的负号并不是有效的整数字面量。你的代码逻辑本身没问题,但Python是一门依赖缩进区分代码块的语言,如果缩进不正确,except语句就无法和try绑定成一个完整的异常处理结构。

常见错误示例(缩进错误)

比如你可能写成了这样(注意缩进问题):

try:
x = int(input(""))
except ValueError:
print("only int")

或者except的缩进和try不一致,导致解释器认为except是独立的代码块,不属于try的异常处理分支。这时当ValueError抛出时,没有对应的捕获逻辑,程序就会直接抛出异常而不执行print语句。

正确的代码写法

只需要保证try、except处于同一缩进层级,并且print语句缩进在except块内部即可:

try:
    x = int(input(""))
except ValueError:
    print("only int")

这样当你输入-时,int()抛出的ValueError会被except块捕获,程序就会输出only int,而不是直接抛出异常。

内容的提问来源于stack exchange,提问作者DoxMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:40:33