Python 检查类似可能输入的有效方法?

Python 检查类似可能输入的有效方法?,python,if-statement,Python,If Statement,检查输入的最有效方法是什么?输入可以用不同的方式写入,而不需要重复的“或”函数?(也就是说,写以下内容的较短版本: 如果回答==“是”或回答==“是”或回答==是 谢谢!检查它是否是集合的成员: if answer in {'Yes', 'yes', YES}: ... 对于特定的情况:如果answer.ToUpper()=“YES”或者如果语言支持不区分大小写的字符串比较,您可以使用它们。摘自C#:answer.Equals(“YES”,StringComparison.Ordina

检查输入的最有效方法是什么?输入可以用不同的方式写入,而不需要重复的“或”函数?(也就是说,写以下内容的较短版本:

如果回答==“是”或回答==“是”或回答==是


谢谢!

检查它是否是集合的成员:

if answer in {'Yes', 'yes', YES}:
    ...

对于特定的情况:
如果answer.ToUpper()=“YES”
或者如果语言支持不区分大小写的字符串比较,您可以使用它们。摘自C#:
answer.Equals(“YES”,StringComparison.OrdinalIgnoreCase)
@Etienemahu否!那么answer为null呢?最好是“YES”。Equals(answer.ToUpper())在Java中或显式检查其他languages@kulatamicuda大多数情况下,空值不是一个问题。如果是空值,那么我会选择
answer?.Equals(…)
(再次使用C)或者一些等效的。Yoda条件很难读取,我会不惜一切代价避免它们。我甚至更愿意编写扩展方法来处理这种情况(再次使用C语言):
回答。SelectOrDefault(a=>a.Equals(…)
。不过,这一点很好。空值是一种痛苦。@Etiennemahu永远不会低估这个数十亿美元的错误:)是的,对于初学者来说,更好的解决方案是通过?在C#中或在Java中使用Optionals而不是Yoda表达式。@kulatamicuda我想我的观点更多的是,如果在那里使用null值,则意味着那里发生了严重错误,您可能应该停止正在执行的操作(抛出异常)并首先修复该问题。我看到了一个“十亿美元的错误”,因为有人检查了代码中隐藏了深层次问题多年的所有内容。
valid = ["Yes", "yes", "y", "ok"]

if answer in valid:
    print "You said yes"
else:
    print "You did not say yes"