寻找其他可能的方式来检查变量是否有意义

马尔科姆克181

我一直在尝试制作一个可以计算某人年龄的程序,但是有人告诉我我做错了事。本来我有

if monthInput == "january" or "1":
    monthInput = 1
    validMonth = True

但是很显然,即使输入了“ bob”,validateMonth也将变为True。有人告诉我用

if monthInput in ["january", "1"]:

会成功的 但我也可以

if monthInput == "january" or monthInput == "1":

而不是那个?我只是想查看所有选项(我仍在学习,因此这对将来会有所帮助)。

马丁·彼得斯(Martijn Pieters)

是的,您也可以这样做monthInput == "january" or monthInput == "1"从布尔逻辑的角度来看,这与相同monthInput in ["january", "1"]

这些语句之间存在差异,但是它们都将产生TrueFalse,并且对于的完全相同的值都返回相同的输出mothInput

您可以尝试在Python交互式解释器中执行以下类似的语句:

>>> monthInput = "1"
>>> monthInput == "january" or monthInput == "1"
True
>>> monthInput in ["january", "1"]
True

等等。

如果您真的想深入研究这个问题,最好的方法是使用一个集合:

monthInput in {'january', '1'}

因为集合成员资格测试花费恒定的成本(与集合的大小无关),而链接or语句或使用列表进行测试的成本却是线性的(需要测试的元素越多,花费的时间越长)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有一个不使用实例变量的非静态方法是否有意义?

Java模式:何时使用临时变量有意义

使用Zookeeper来存储用户权限是否有意义

goroutine池是否像其他语言中的线程池一样有意义?

我必须将大多数变量定为最终值是否有意义?

函数中的静态constexpr变量有意义吗?

即使没有空检查,使用“ as”代替强制转换是否有意义?

对所有永不更改的变量使用const是否有意义?

空的“ else”子句在C ++中是否有意义?

GADT标头中的类型变量有意义吗?

在shared_ptr的自定义删除器中检查nullptr是否有意义?

在程序中以两种不同的方式导入同一模块是否有意义?

sizeof(function)是否有意义?

需要一个数组来存储具有相同属性的不同对象的不同数据(或其他有意义的策略)

AMP启用桌面站点是否有意义?

以有意义的方式命名定界符`:`

单独或一起检查属性是否有意义?

嵌套setState是否有意义?

如果羽毛文件格式仍然有意义,或者社区是否倾向于使用其他文件格式来存储大文件?

以有意义的方式透视数据

std :: move是否对堆栈变量有意义

寻找其他可能的方式来检查变量是否有意义

将变量定义为受特征保护是否有意义?

这是没有意义的检查吗?

编写伪代码进行赋值,并想再次检查它是否有意义

在 xlwings 中总是使用异步 UDF 来更新单元格是否有意义?

为 python 变量打字是否有意义,因为它们不会捕获错误?

为私有变量设置这个公共是否有意义?

使用具有相同条件变量的不同互斥体是否有意义?