我一直在尝试制作一个可以计算某人年龄的程序,但是有人告诉我我做错了事。本来我有
if monthInput == "january" or "1":
monthInput = 1
validMonth = True
但是很显然,即使输入了“ bob”,validateMonth也将变为True。有人告诉我用
if monthInput in ["january", "1"]:
会成功的 但我也可以
if monthInput == "january" or monthInput == "1":
而不是那个?我只是想查看所有选项(我仍在学习,因此这对将来会有所帮助)。
是的,您也可以这样做monthInput == "january" or monthInput == "1"
。从布尔逻辑的角度来看,这与相同monthInput in ["january", "1"]
。
这些语句之间存在差异,但是它们都将产生True
或False
,并且对于的完全相同的值都返回相同的输出mothInput
。
您可以尝试在Python交互式解释器中执行以下类似的语句:
>>> monthInput = "1"
>>> monthInput == "january" or monthInput == "1"
True
>>> monthInput in ["january", "1"]
True
等等。
如果您真的想深入研究这个问题,最好的方法是使用一个集合:
monthInput in {'january', '1'}
因为集合成员资格测试花费恒定的成本(与集合的大小无关),而链接or
语句或使用列表进行测试的成本却是线性的(需要测试的元素越多,花费的时间越长)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句