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

为何输入整数时代码重复执行而非继续?求解决方案

问题排查:代码持续重复执行的原因

你的代码存在两个核心问题,导致循环无法正常终止:

  • 循环条件逻辑错误:while new_custom !=["y","n"] 是将字符串类型的new_custom与列表["y","n"]做比较,这两者永远不可能相等,所以循环会一直执行。正确写法应该是判断输入是否不在允许的选项范围内:while new_custom not in ["y", "n"]。

  • 字符串方法调用错误:input("are you a new customer y/n \n").lower 里的.lower缺少括号,这会让new_custom存储的是lower方法本身(一个对象),而非输入字符串的小写形式。后续判断new_custom == "y"或"n"永远不成立,循环无法退出。需要改成.lower()来调用方法,得到转换后的小写字符串。

另外还有一个潜在问题:代码中使用的miles变量未定义,运行时会抛出NameError,需要确保在使用前为miles赋值。

修复后的代码示例:

new_custom = ""
miles = float(input("请输入行驶里程: "))  # 先获取里程数值
while new_custom not in ["y", "n"]:
    new_custom = input("are you a new customer y/n \n").lower()
    if new_custom == "y":
        if miles <= 5:
            print(7)
        else:
            print(7 + ((miles - 5) * 2))
    elif new_custom == "n":
        if miles <= 5:
            print(8)
        else:
            print(8 + ((miles - 5) * 2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:20:26