Python中input输入Y/y/N/n在if判断报错的问题排查
Python中if条件字符串比较的错误修复
嘿,这个问题我刚学Python的时候也踩过一模一样的坑!你报错的原因很直接:
- 在Python里,
Y、y这种单字母属于字符串字面量,必须用单引号(')或者双引号(")包裹起来。你直接写Y的话,Python会把它当成一个变量名去查找,但你从来没定义过叫Y的变量,所以编译器才会提示“未定义”。 - 另外,考虑到用户可能输入小写的
y或者带空格的Y,最好把输入做一下标准化处理,比如去除首尾空格并转成统一大小写,这样能避免因为输入格式问题导致判断失败。
修正后的完整代码
print("Main Breakfast Menu") print("1. Pancakes") print("2. Waffles") print("3. Bacon & Eggs") print("4. Omellette") print("5. Oats") print("6. Pizza Slice") MainChoice = int(input("Select a Breakfast meal: ")) SideAns = input("Would you like a side to go with your meal? Y/N ") # 核心修改点:给字符串加引号,同时标准化输入格式 if (MainChoice == 1) and (SideAns.strip().upper() == 'Y'): print("Sides") print("1. Extra Bacon") print("2. Switch Bacon for Turkey Bacon") print("3. Toast") print("4. Syrup for pancakes or waffles") print("5. Drinks")
额外说明
strip():用来去除用户输入前后的空格,避免因为不小心输入空格导致判断失败upper():把输入转成大写,这样不管用户输入Y、y都能匹配成功,同理你也可以用lower()转成小写后和'y'比较
内容的提问来源于stack exchange,提问作者Totalartist
相关产品推荐
相关产品推荐

