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
相关产品推荐
相关产品推荐

