Python多IF与ELSE搭配逻辑错误修正求助
问题分析与修正
你的问题出在第二个if是独立判断,和第一个if没有关联。当输入是Spathiphyllum时,第一个if条件成立,输出预期内容;但第二个if条件不成立,所以会执行它对应的else分支,导致额外输出。
正确的做法是用elif(else if)把第二个判断和第一个关联起来,这样整个条件分支是互斥的:只有当前面的if/elif都不满足时,才会执行最后的else。
修正后的代码:
name = input('What is the name?') if name == 'Spathiphyllum': print('Spathiphyllum is the best plant ever!') elif name == 'spathiphyllum': print('No, I want a big Spathiphyllum!') else: print('Spathiphyllum! Not', name, '!')
如果想简化大小写判断逻辑,也可以先将输入转为统一格式(比如小写),再做匹配:
name_input = input('What is the name?') name_lower = name_input.lower() if name_lower == 'spathiphyllum': if name_input == 'Spathiphyllum': print('Spathiphyllum is the best plant ever!') else: print('No, I want a big Spathiphyllum!') else: print('Spathiphyllum! Not', name_input, '!')
内容的提问来源于stack exchange,提问作者moon light
相关产品推荐
相关产品推荐

