如何在Python3中用if和else区分yes/no输入并输出对应内容
修正后的Python代码及问题说明
完整可运行代码
# 先获取用户名(原代码用到了name变量,需先收集输入) name = input("Please enter your name: ") # 获取用户的yes/no回答 answer = input("Do you like it? Yes/No ") # 统一转成小写,兼容不同大小写的输入 if answer.lower() == "yes": print(f"That's great!\nThank You {name}.") elif answer.lower() == "no": print("Sorry to hear that\nPerhaps we could use other names?") else: print("Please enter 'yes' or 'no' to answer.")
原代码存在的问题
- 变量
name未定义:原代码直接使用name但未添加输入语句,需先获取用户名 - 运算符使用错误:判断相等要用
==,原代码误用了赋值运算符= - 字符串未加引号:
yes和no是字符串字面量,必须用引号包裹,否则会被当作未定义变量 - 语句结尾缺少冒号:
if/elif/else语句结尾必须加:,用于标记代码块的起始 - 缩进混乱:
if和分支内的代码需要统一缩进(通常为4个空格),原代码缩进不符合Python语法规范 else语法错误:else不能直接跟条件,需要多分支判断时要用elif,else用于处理剩余所有情况- 字符串格式错误:
Thats应改为That's`,避免单引号冲突 - 未兼容大小写:用户可能输入
Yes/NO等格式,转成小写后判断更严谨
内容的提问来源于stack exchange,提问作者Giix
相关产品推荐
相关产品推荐

