如何根据用户输入执行不同print函数?Python新手技术求助
问题分析与解决
你的代码存在几个关键问题:
- 二次输入未保存到变量,无法获取用户的选择内容
- 判断逻辑错误:
if yes:实际是判断字符串"welcome"是否为真,非空字符串永远为True,所以不管用户输入什么都会输出welcome - 输入提示里的
{ans}未正确格式化,无法显示预期的选项
修正后的代码:
age = input("enter your age: ") yes_msg = "welcome" no_msg = "too bad then" if age == "18": print(yes_msg) else: # 保存用户的二次选择,同时明确提示输入选项 user_choice = input("you're not old enough, would you like to enter anyways? (yes/no): ") # 转为小写兼容不同输入格式,比如Yes、YES都能识别 if user_choice.lower() == "yes": print(yes_msg) elif user_choice.lower() == "no": print(no_msg) else: print("invalid input, please enter yes or no")
关键修改说明:
- 给提示信息变量重命名(yes_msg/no_msg),避免和用户输入的"yes"字符串混淆
- 将二次输入赋值给
user_choice变量,这样才能基于用户的实际输入做判断 - 使用
lower()方法统一输入格式,提升程序的容错性 - 增加无效输入的处理,引导用户输入正确内容
- 移除了无用的
ans列表,直接在输入提示里明确给出可选值,更直观
内容的提问来源于stack exchange,提问作者Bama
相关产品推荐
相关产品推荐

