“ if var”在python中是什么意思?

Alcides

这是python中的一项用于验证日期输入的函数。

def valid_day(day):
    if day and day.isdigit():#if day
        day = int(day)
        if day > 0 and day <= 31:
            return day

我想知道该表达的if day含义(就语义而言)。

我只知道if布尔表达式的作用,而不是整数或数组之类的变量。

格雷戈

用python编写

if var:

与写作具有相同的效果

if bool(var):

(哪里bool是内置bool类型,它也可以作为bool对象的构造函数)。

如果该值已经是布尔值(值为True或False),则含义很清楚-bool(var)返回相同的值。对于其他类型,几乎总是有转换为bool可用的转换,具体取决于类型。对于整数(如C语言),它与var!= 0相同;对于列表,字典或字符串,它与len(var)!= 0相同,依此类推。您可以在python文档中找到它。

当定义自己的类时,您可以通过定义一个方法def __nonzero__(self):,该方法将在此上下文中被调用(当您的对象被bool显式传递或隐式传递给if-或while为此)。

一个值得注意的例外:numpy数组对象不会转换为bool(它们会引发异常)。它们需要使用类似(arr!=0).any()或的结构进行显式转换(arr>0).all()

在类似的方面:不要养成写任何

if x == True:     # This only works as expected when x is a bool
if x is True:     # Can be useful but you need to understand what it really means.
if x == None:     # Often works as expected, except when it doesn't

与None的比较应始终与

if x is None: (要么) if x is not None:

只有一个None对象,并且x is None会告诉您x是否指向该对象,并且始终会给您一个布尔值(如果是,则为True,对于其他任何对象,则为False)。比较x==None(通常是我在开始使用Python时常犯的错误)通常可以解决,但它会激活Python的通用比较机制,这可能不是您想要的。如果x是类的实例,则比较可能会引发异常。is非常简单快捷,只需进行身份测试即可-不能重载。

同样的if x is True意思是“如果x是布尔对象,则表示true,根本没有其他对象”,这很有用,但对于您测试真值时的情况来说太狭窄了。某人可能最终通过1,这将使“ is True”测试失败,但在其他方面的行为与True非常相似。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“ $ {var ,,}”中的逗号是什么意思?

来自分类Dev

@($ {VAR})是什么意思?

来自分类Dev

(+ var)是什么意思

来自分类Dev

| =在python中是什么意思?

来自分类Dev

在Python中,=是什么意思?

来自分类Dev

* =在python中是什么意思?

来自分类Dev

在Python示例中,“ >>>”是什么意思?

来自分类Dev

“ Bucket”在python中是什么意思?

来自分类Dev

[[...]]在python中是什么意思?

来自分类Dev

python中的&\是什么意思

来自分类Dev

在NumPy Python中是什么意思?

来自分类Dev

* map在python中是什么意思?

来自分类Dev

“ >>”和“ <<”在python中是什么意思?

来自分类Dev

python中的<-、、>-、、 <+ 、、 >>是什么意思?

来自分类Dev

asterix *在Python中是什么意思

来自分类Dev

Python 中的“a==('a' or 'b')”是什么意思?

来自分类Dev

“”在python中是什么意思?

来自分类Dev

Shell脚本中的'$ {var // / ++''是什么意思?

来自分类Dev

$$$ var是什么意思。它在php中工作吗

来自分类Dev

/ var / log / messages中的错误号是什么意思?

来自分类Dev

$ {MY_VAR:-1}在bash中是什么意思?

来自分类Dev

(* var)[n]在C ++中是什么意思

来自分类Dev

批处理脚本中的 {{var}} 是什么意思

来自分类Dev

(int *)&var是什么意思?

来自分类Dev

$ {var / a / b / \ c}是什么意思?

来自分类Dev

python [...]是什么意思?

来自分类Dev

* on python是什么意思?

来自分类Dev

* on python是什么意思?

来自分类Dev

“ !!”是什么意思 在haskell中是什么意思?