Python 带有关键字and、or的Return语句

Python 带有关键字and、or的Return语句,python,Python,从f1,f2,f3返回非零值。但是在f4和f5的情况下,它会在return关键字之后立即返回值。但是在f6的情况下,它返回-1。我不明白这是怎么回事 感谢您的解释:)或返回第一个值(如果该值等于True),否则返回第二个值 在Python中,任何非0的整数在布尔上下文中都是真的。因此,1和-1都为True,如果另一个值为0,则返回该值 和则相反:如果不正确,则返回第一个值,否则返回第二个值 或如果第一个值等于True,则返回第一个值,否则返回第二个值 在Python中,任何非0的整数在布尔上下文

f1
f2
f3
返回非零值。但是在
f4
f5
的情况下,它会在
return
关键字之后立即返回值。但是在
f6
的情况下,它返回-1。我不明白这是怎么回事


感谢您的解释:)

返回第一个值(如果该值等于True),否则返回第二个值

在Python中,任何非0的整数在布尔上下文中都是真的。因此,1和-1都为True,如果另一个值为0,则返回该值


则相反:如果不正确,则返回第一个值,否则返回第二个值

如果第一个值等于True,则返回第一个值,否则返回第二个值

在Python中,任何非0的整数在布尔上下文中都是真的。因此,1和-1都为True,如果另一个值为0,则返回该值


则相反:如果不正确,则返回第一个值,否则返回第二个值

如果第一个值等于True,则返回第一个值,否则返回第二个值

在Python中,任何非0的整数在布尔上下文中都是真的。因此,1和-1都为True,如果另一个值为0,则返回该值


则相反:如果不正确,则返回第一个值,否则返回第二个值

如果第一个值等于True,则返回第一个值,否则返回第二个值

在Python中,任何非0的整数在布尔上下文中都是真的。因此,1和-1都为True,如果另一个值为0,则返回该值

则相反:如果不正确,则返回第一个值,否则返回第二个值

这将有助于您:

def myfunc():    #f1
    return 0 or 1

#The above returns 1

def myfunc():    #f2
    return 1 or 0

#The above also returns 1

def myfunc():    #f3
    return 0 or -1

#The above returns -1

def myfunc():    #f4
    return -1 or 1

#The above returns -1

def myfunc():    #f5
    return 1 or -1
#The above returns 1

def myfunc():    #f6
    return 1 and -1
#The above returns 1
请记住真相表:

>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
这将有助于您:

def myfunc():    #f1
    return 0 or 1

#The above returns 1

def myfunc():    #f2
    return 1 or 0

#The above also returns 1

def myfunc():    #f3
    return 0 or -1

#The above returns -1

def myfunc():    #f4
    return -1 or 1

#The above returns -1

def myfunc():    #f5
    return 1 or -1
#The above returns 1

def myfunc():    #f6
    return 1 and -1
#The above returns 1
请记住真相表:

>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
这将有助于您:

def myfunc():    #f1
    return 0 or 1

#The above returns 1

def myfunc():    #f2
    return 1 or 0

#The above also returns 1

def myfunc():    #f3
    return 0 or -1

#The above returns -1

def myfunc():    #f4
    return -1 or 1

#The above returns -1

def myfunc():    #f5
    return 1 or -1
#The above returns 1

def myfunc():    #f6
    return 1 and -1
#The above returns 1
请记住真相表:

>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
这将有助于您:

def myfunc():    #f1
    return 0 or 1

#The above returns 1

def myfunc():    #f2
    return 1 or 0

#The above also returns 1

def myfunc():    #f3
    return 0 or -1

#The above returns -1

def myfunc():    #f4
    return -1 or 1

#The above returns -1

def myfunc():    #f5
    return 1 or -1
#The above returns 1

def myfunc():    #f6
    return 1 and -1
#The above returns 1
请记住真相表:

>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True

这称为短路,即
工作的方式。
你可以在这里看到关于它的文档:

因此,在函数#f6中,第一个操作数
1
的计算结果为
True
,但存在
,因此python还必须计算以下
-1

如果您直接从文档中获取适用于您的案例的
x和y
的定义
1和-1
,它会显示:

如果1为false,则为1,否则为-1

由于
1
不是
False
,因此进入
else
部分,然后返回
-1


这就是为什么第六个函数返回
-1

这称为短路,这就是
工作的原因。
你可以在这里看到关于它的文档:

因此,在函数#f6中,第一个操作数
1
的计算结果为
True
,但存在
,因此python还必须计算以下
-1

如果您直接从文档中获取适用于您的案例的
x和y
的定义
1和-1
,它会显示:

如果1为false,则为1,否则为-1

由于
1
不是
False
,因此进入
else
部分,然后返回
-1


这就是为什么第六个函数返回
-1

这称为短路,这就是
工作的原因。
你可以在这里看到关于它的文档:

因此,在函数#f6中,第一个操作数
1
的计算结果为
True
,但存在
,因此python还必须计算以下
-1

如果您直接从文档中获取适用于您的案例的
x和y
的定义
1和-1
,它会显示:

如果1为false,则为1,否则为-1

由于
1
不是
False
,因此进入
else
部分,然后返回
-1


这就是为什么第六个函数返回
-1

这称为短路,这就是
工作的原因。
你可以在这里看到关于它的文档:

因此,在函数#f6中,第一个操作数
1
的计算结果为
True
,但存在
,因此python还必须计算以下
-1

如果您直接从文档中获取适用于您的案例的
x和y
的定义
1和-1
,它会显示:

如果1为false,则为1,否则为-1

由于
1
不是
False
,因此进入
else
部分,然后返回
-1


这就是为什么将
-1
作为第六个函数的返回。

我认为它在非零值上短路为真,因此您观察到的输出
-1
1
都是“thuthy”值(
bool(-1)为真是bool(1)
)。布尔语句短路,不检查第二个参数。是否确实要返回2个值?在这种情况下,请尝试例如
返回(1,-1)
我认为它在非零值上短路为True,因此您观察到的输出
-1
1
都是“thuthy”值(
bool(-1)为True是bool(1)
)。布尔语句短路,不检查第二个参数。是否确实要返回2个值?在这种情况下,尝试例如
返回(1,-1)
我认为它在非零值上短路为真,因此您观察到的输出
-1
1
都是“thuthy”值(
bo