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

能否在同一行给变量赋值多个字符串?实现大小写不敏感输入判断

问题解答

问题1:能否在同一行将多个字符串赋值给同一个变量?

你尝试的answer_YES = 'Yes' or "yes"是错误的,这是布尔逻辑运算,Python会返回第一个非空的字符串(也就是'Yes'),根本达不到“绑定多个值”的目的。

如果要让一个变量关联多个字符串,直接用集合或列表存储即可,一行就能完成:

# 集合(推荐,查询速度更快)
answer_YES = {'Yes', 'yes', 'YES'}
# 或者列表
answer_YES = ['Yes', 'yes', 'YES']

问题2:如何让单个变量绑定yes的多种拼写,接受大小写不同的有效回答?

给你两种实用方案:

方案1:统一转换输入的大小写(最简洁)

不需要存储多种拼写,直接把用户输入转成小写(或大写),再和固定的小写(或大写)字符串对比:

answer = input("Answer: ").strip().lower()  # 去除首尾空格+转小写
if answer == 'yes':
    print("Awesome! Thank you", Name)
elif answer == 'no':
    print("Please re-enter your birthday.")

方案2:用集合存储所有有效选项

如果需要严格限定只接受指定的几种拼写(比如只认Yes/yes/YES,不接受y这类简写),用集合存储所有有效取值,判断输入是否在集合内:

answer_YES = {'Yes', 'yes', 'YES'}
answer_NO = {'No', 'no', 'NO'}

answer = input("Answer: ").strip()
if answer in answer_YES:
    print("Awesome! Thank you", Name)
elif answer in answer_NO:
    # 这里可以添加重新输入生日的逻辑
    print("Let's re-enter your birthday.")
else:
    print("Please enter Yes or No.")

修正你的原代码

把错误的赋值语句替换成集合,就能实现需求:

answer_YES = {'Yes', 'yes'}
answer_NO = {'No', 'no'} 

Name = input("What's your name? ")
Last_Name = input("What's your last name? ")
print("\nHello,", Name, Last_Name + "!")

num1 = float(input("Give me one number: "))
num2 = float(input("Give me a better number: "))

print("\nHere is your Summary:")
print(int(num1), '+', int(num2), '=', int(num1 + num2))

BD = input("\nOK, now give me your birthday m/d/y: ")
print("Is this your birthday?", '"' + BD + '"' "\n\nCorrect? (Yes) Incorrect? (No)\n")
answer = input("Answer: ")

if answer in answer_YES:
    print("Awesome! Thank you", Name)
elif answer in answer_NO:
    print("Please re-enter your birthday.")
else:
    print("Invalid input, please enter Yes or No.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:10:23