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

输入字母时如何触发Python代码中的ValueError异常捕获?

问题原因

你当前的代码里,float(input(...))的类型转换操作是在perform_calculation函数外部执行的。当输入字母这类非数值内容时,转换步骤会直接抛出ValueError,但这个异常不在函数内部的try-except覆盖范围内,所以函数里的except ValueError分支根本没机会触发。

解决方法

有两种简单的修改方式,任选其一即可:

方式一:在输入转换环节添加异常捕获

把输入和类型转换的逻辑放到try-except块中,这样输入非数值时的异常能被直接捕获:

def perform_calculation(number1, number2):
    result = number1 * number2
    print(f"Result: {result}")

# Test case
try:
    number1 = float(input("Enter the first number:-"))
    number2 = float(input("Enter the second number:-"))
    perform_calculation(number1, number2)
except ValueError:
    print("Error: Invalid input! Please enter a number.")

方式二:将输入逻辑整合到函数内部

如果想让函数自己处理输入和异常,可以把输入步骤也放到函数的try块里:

def perform_calculation():
    try:
        number1 = float(input("Enter the first number:-"))
        number2 = float(input("Enter the second number:-"))
        result = number1 * number2
        print(f"Result: {result}")
    except ValueError:
        print("Error: Invalid input! Please enter a number.")

# Test case
perform_calculation()

另外注意:原提示文本写的是"Please enter an integer",但代码用的是float转换(支持小数输入)。如果确实要限制输入整数,把代码里的float换成int即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:33:44