鱼C论坛

 找回密码
 立即注册
查看: 998|回复: 7

[已解决]小白求助,print()返回值是None么

[复制链接]
发表于 2021-9-15 17:08:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 李二蛋 于 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
这里并没有返回结果,而是打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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
这里并没有返回结果,而是打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-15 17:24:56 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-9-15 17:29 编辑

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

  1. def func():
  2.     print("Hello World")
  3.     return 13

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

  5. A = func # A 指向和 func 一樣的對象,但沒有執行函數 (做 1 件事)
  6. B = func() # 賦值 B = 13,同時執行函數 (做 2 件事)
复制代码
  1. Hello World
复制代码
print() 函數本身用意為打印,不會返回任何東西(也就是返回類型 None 值),布林值是 False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

你最后的这个问题输出A也是第一个的问题,你可以尝试and前面换成0你就能发现后面就不在执行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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')  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")#a<b为假  而and的判断是有假 则返回假 <=>False  or  print('B')
B
如果没有区别,那么这个为什么就对腻?
#你这种用法看起来比较绕  建议少用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢您的帮忙,您是我前进路上的星辰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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 在一起使用是按顺序执行的  属 ...

谢谢您的帮忙,您是我前进路上的星辰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-15 21:58:44 | 显示全部楼层
2242253525 发表于 2021-9-15 17:34
print的返回值是none,你的这句话整个返回的是none,但是打印依旧在执行,所以最后输出的是A B

if……el ...

谢谢您的帮忙,您是我前进路上的星辰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 20:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表