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

如何修改Python代码实现浮点数校验并使用while循环?

问题原因

你代码的核心错误是直接把输入的字符串和float类型做比较:input()返回的永远是字符串,而float是Python的类型对象,两者不可能相等,所以循环会一直触发错误提示。

修正方案

正确的浮点数校验应该用异常捕获:尝试把输入字符串转换成浮点数,如果转换失败(比如输入非数字内容),就捕获ValueError异常,提示错误并重新输入,直到转换成功为止。

修正后的代码:

def get_float():
    while True:
        try:
            # 尝试将输入转换为浮点数
            number = float(input('Input a decimal number '))
            return number
        except ValueError:
            # 转换失败时触发,提示错误并重新循环
            print('bad input ')

get_float()
代码说明
  • while True创建无限循环,直到成功返回浮点数才退出
  • try-except块处理转换异常:
    • 输入能转成浮点数时,执行return number跳出循环和函数
    • 输入无法转成浮点数(比如字母、符号)时,触发ValueError,执行提示后回到循环开头重新输入

内容的提问来源于stack exchange,提问作者Z-0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:10:28