除了其他答案之外,我还发现了另一个语义错误:第一个if语句的计算结果总是true,因为它将计算“no”的布尔值,如下所示
if yes_no.lower() == 'n' or 'no' == True:
由于非空字符串的计算结果为true,因此将始终执行此语句。你可以添加
yes_no.lower() == 'no'
给你
if yes_no.lower() == "n" or yes_no.lower() == "no":
只有当yes_no.lower是'n'或'no'时,才能使该语句计算为true
如需进一步澄清,请参阅
Why is my python if statement not working?