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

Python循环中条件与输入未被正确读取的问题排查

代码问题排查与修复

存在的问题及修复方案

  • 未显示提示文本:第一个while循环的elif var1 ==1和else分支中,仅写了字符串字面量但未用print()输出,用户无法看到对应提示。需给这些字符串添加print()包裹。
  • 条件判断逻辑错误:第二个while循环里的输入校验条件if var2 != 1 or var2 != 0:永远为真——无论输入1还是0,总有一个不等式成立,导致合法输入也会触发错误提示。应改为if var2 != 1 and var2 != 0:,仅当输入既不是1也不是0时才提示错误。
  • 可选优化(非必需):若用户输入非整数内容,int(input(...))会抛出ValueError使程序崩溃,可添加try-except块处理该异常,提升程序稳定性。

修正后的代码

var1 = 1
var2 = 1
while True:
    var1 = int(input('''
            Hola!, responda utilizando lo que esta dentro del parentesis.
            si usted es:
            Adulto (1)
            Nino (0)
            '''))
    print(var1)
    if var1 == 0:
        print('Perfecto eres un nino')
    elif var1 == 1:
        print('Cuentanos tu estado acutal:')
    else:
        print('Elige un numero que sea 1 o 0')
        continue
    break

while var1 == 1:
    var2 = int(input('''
                    Casado (1)
                    Soltero (0)
                    '''))
    if var2 != 1 and var2 != 0:
        print('Como en la anterior pregunta, porfavor contesta con 0 o 1')
        continue
    break

if var2 == 1:
    print('Ustes es un adulto y espero que muy felizmente casado')
else:
    print('Ustes es un adulto y soltero')

带异常处理的优化版本(可选)

var1 = 1
var2 = 1
while True:
    try:
        var1 = int(input('''
                Hola!, responda utilizando lo que esta dentro del parentesis.
                si usted es:
                Adulto (1)
                Nino (0)
                '''))
    except ValueError:
        print('Por favor ingrese un numero entero valido')
        continue
    print(var1)
    if var1 == 0:
        print('Perfecto eres un nino')
    elif var1 == 1:
        print('Cuentanos tu estado acutal:')
    else:
        print('Elige un numero que sea 1 o 0')
        continue
    break

while var1 == 1:
    try:
        var2 = int(input('''
                        Casado (1)
                        Soltero (0)
                        '''))
    except ValueError:
        print('Por favor ingrese un numero entero valido')
        continue
    if var2 != 1 and var2 != 0:
        print('Como en la anterior pregunta, porfavor contesta con 0 o 1')
        continue
    break

if var2 == 1:
    print('Ustes es un adulto y espero que muy felizmente casado')
else:
    print('Ustes es un adulto y soltero')

内容的提问来源于stack exchange,提问作者Jeison Sang Wu Mitre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:48:19