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

Python中如何让if语句独立判断两个字符串?

问题分析与解决

你写的elif careful != "yes" "no"之所以无效,是因为Python里相邻的字符串会自动拼接,这行代码实际是在判断careful != "yesno",完全不是你想要的“输入不是yes也不是no”的逻辑。另外|和&是位运算符,用来处理数字的二进制位操作,不能用来判断字符串的逻辑关系,得用and/or这类逻辑运算符。

同时你的代码结构有问题:当careful == "yes"时才会进入第一个if块,里面再判断careful != "yes"根本不可能成立,所以那个elif分支永远不会触发。正确逻辑应该先检查输入是否合法,再处理年龄相关内容。

修正后的代码

careful = input("Are you Careful?").strip()  # 去除输入前后空格,兼容用户误输入的带空格情况

# 先校验输入合法性
if careful not in ["yes", "no"]:
    print("nonsense, say yes or no")
elif careful == "yes":
    print("ok good, what is your age?")
    age = int(input("Your age?"))
    if age <= 13:
        print("sorry, paws is hiding")
    else:
        print("Be careful! she nibbles, with no teeth")
else:  # 对应careful == "no"的情况
    print("you have to be careful!")

关键改动说明

  • 用careful not in ["yes", "no"]直接判断输入是否不在合法选项内,比careful != "yes" and careful != "no"更简洁易读。
  • 调整代码结构:先做输入合法性校验,再处理不同输入对应的逻辑,避免原代码分支位置错误导致的逻辑失效。
  • 给input添加.strip(),可以兼容用户不小心输入的前后空格(比如输入" yes "也能被识别为"yes")。

如果偏好使用!=和and的写法,判断条件可以写成:

if careful != "yes" and careful != "no":

效果和not in完全一致。

内容的提问来源于stack exchange,提问作者robertpaws

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:25:30