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

Python输入验证程序中While循环条件未生效问题求助

问题分析与解决方案:Python数字范围验证程序的循环条件错误

问题原因

你的while循环条件犯了逻辑错误:用了and运算符判断number<0 and number>100。任何数字都不可能同时满足“小于0”和“大于100”,这个条件永远为False,所以循环根本不会执行。当输入-50这类无效值时,程序直接跳过循环,执行后续的attempts +=1并输出结果,这就是循环没触发的核心原因。

解决方法

1. 快速修复循环条件

把and替换成or,因为无效值的判断逻辑是数字小于0 或者 大于100,满足任意一个条件就需要重新输入:

attempts = 0

number = int(input("Enter a number from a range of 0 to 100: "))

while number < 0 or number > 100:
    attempts += 1
    number = int(input("Number is invalid. Please enter a number from 0 to 100: "))

attempts += 1    
print("Number of attempts for inputting a valid number: ", attempts)

2. 健壮性优化版本(处理非整数输入)

原程序如果输入字母、符号这类非整数内容会直接崩溃,我们可以加入异常处理,覆盖所有无效输入场景:

attempts = 0

while True:
    try:
        number = int(input("Enter a number from 0 to 100: "))
        if 0 <= number <= 100:
            attempts += 1
            break
        else:
            attempts += 1
            print("Number is invalid. Please enter a number from 0 to 100: ")
    except ValueError:
        attempts += 1
        print("Invalid input. Please enter an integer.")

print(f"Number of attempts for inputting a valid number: {attempts}")

这个版本把输入、范围判断、异常处理整合到一个循环里,避免了重复代码,同时能应对所有不合理输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:01:17