李二蛋 发表于 2021-9-15 17:08:40

小白求助,print()返回值是None么

本帖最后由 李二蛋 于 2021-9-15 17:10 编辑

>>> a = 1
>>> b = 2
>>> a < b and print("A") or print("B")
A
B
请问为什么返回的是这样,不应该是A嘛?
这和
if a < b :
        print("A")
else:
        print("B")
有什么区别呐?

>>> a = 2
>>> b = 1
>>> a < b and print("A") or print("B")
B
如果没有区别,那么这个为什么就对腻?

小甲鱼老师说print()返回值是None,如果是None,
为啥a < b and print("A")可以输出A腻?
>>> a < b and print("A")
A
求求各位前辈,求求各位前辈,求求各位前辈

逃兵 发表于 2021-9-15 17:22:11

print()是个执行函数,作用是打印,返回值是None
a < b and print("A") or print("B")
等价于
True and None or None
返回的是个None
print()会执行打印
所以就出现了打印A打印B
这里并没有返回结果,而是打印

傻眼貓咪 发表于 2021-9-15 17:24:56

本帖最后由 傻眼貓咪 于 2021-9-15 17:29 编辑

a < b and print("A") or print("B") 這行除了判斷語句真假之外,另外執行了函數 print()(同一行代碼做 2 件事)

def func():
    print("Hello World")
    return 13

# 當函數有括號 () 和沒有 () 的區別

A = func # A 指向和 func 一樣的對象,但沒有執行函數 (做 1 件事)
B = func() # 賦值 B = 13,同時執行函數 (做 2 件事)Hello Worldprint() 函數本身用意為打印,不會返回任何東西(也就是返回類型 None 值),布林值是 False

2242253525 发表于 2021-9-15 17:34:55

print的返回值是none,你的这句话整个返回的是none,但是打印依旧在执行,所以最后输出的是A B

if……else语句是判断嘛,你问这两个有什么区别我觉得你是把and和or的理解有点偏差

你最后的这个问题输出A也是第一个的问题,你可以尝试and前面换成0你就能发现后面就不在执行了

Angelina_Jolie 发表于 2021-9-15 18:20:51

本帖最后由 Angelina_Jolie 于 2021-9-15 18:26 编辑

>>> a = 1
>>> b = 2
>>> a < b and print("A") or print("B") #and 和 or 在一起使用是按顺序执行的属于同一级《=》 ((a < b) and print("A") )or (print("B"))   这里导致你输出二个结果的原因是print函数 --》 a<b为真而and的判断是同时为真返回第二个即 <=>print('A')orprint('B')
A
B
请问为什么返回的是这样,不应该是A嘛?
这和
if a < b :
      print("A")
else:
      print("B")
有什么区别呐?#这个就比较好理解   

>>> a = 2
>>> b = 1
>>> a < b and print("A") or print("B")#a<b为假而and的判断是有假 则返回假 <=>Falseorprint('B')
B
如果没有区别,那么这个为什么就对腻?
#你这种用法看起来比较绕建议少用

李二蛋 发表于 2021-9-15 21:56:13

傻眼貓咪 发表于 2021-9-15 17:24
a < b and print("A") or print("B") 這行除了判斷語句真假之外,另外執行了函數 print()(同一行代碼做 2...

谢谢您的帮忙,您是我前进路上的星辰{:9_228:}

李二蛋 发表于 2021-9-15 21:58:13

Angelina_Jolie 发表于 2021-9-15 18:20
>>> a = 1
>>> b = 2
>>> a < b and print("A") or print("B") #and 和 or 在一起使用是按顺序执行的属 ...

谢谢您的帮忙,您是我前进路上的星辰{:9_228:}

李二蛋 发表于 2021-9-15 21:58:44

2242253525 发表于 2021-9-15 17:34
print的返回值是none,你的这句话整个返回的是none,但是打印依旧在执行,所以最后输出的是A B

if……el ...

谢谢您的帮忙,您是我前进路上的星辰{:9_228:}
页: [1]
查看完整版本: 小白求助,print()返回值是None么