输入'Masculino'或'Feminino'仍返回'Sexo invalido'的问题排查与修复
问题原因及修复方案
核心错误:逻辑判断条件逻辑错误
你写的if a2 != 'Masculino' or a2 != 'Feminino':存在逻辑漏洞——无论输入什么值,这个条件永远为真:
- 当输入
Masculino时,a2 != 'Feminino'成立,整个条件触发退出 - 当输入
Feminino时,a2 != 'Masculino'成立,同样触发退出
正确逻辑应该是:只有当输入既不是Masculino也不是Feminino时,才执行退出。
次要错误:输入提示的类型转换错误
input(int('Quantos anos você tem: '))写法错误,input()的参数需要是字符串类型,不需要用int()包裹。如果要将输入的年龄转为整数,应该先获取输入字符串,再做类型转换。
修复后的代码
import sys a1 = input('Digite o seu nome ') a2 = input('Sexo: ') # 方案1:用and修正逻辑判断 if a2 != 'Masculino' and a2 != 'Feminino': sys.exit('Sexo invalido') # 方案2:用not in简化判断(推荐) # if a2 not in ('Masculino', 'Feminino'): # sys.exit('Sexo invalido') # 修正年龄输入的类型转换 a3 = int(input('Quantos anos você tem: '))
内容的提问来源于stack exchange,提问作者Igor Germann
相关产品推荐
相关产品推荐

