全桥整流 发表于 2021-8-16 15:22:37

小甲鱼课后作业疑问

def gcd(x, y):
    while y:
      t = x % y
      x = y
      y = t

    print(x)
   
print(gcd(4, 6))



====== RESTART: C:/Users/lyl/AppData/Local/Programs/Python/Python39/19.py ======
2
None
>>>


为什么会打印None?

全桥整流 发表于 2021-8-16 15:25:19

另外,print和return有什么区别,都是打印东西(呈现所需东西)

大马强 发表于 2021-8-16 15:32:40

1.第一个2是函数的print输出的,none 是因为你没有返回 return, return本意就是返回给上一层接受
2.不一样哦,在idle里 这两个print和return会返回,但在vscode里去不行啦,

全桥整流 发表于 2021-8-16 16:23:38

大马强 发表于 2021-8-16 15:32
1.第一个2是函数的print输出的,none 是因为你没有返回 return, return本意就是返回给上一层接受
2.不一 ...

return是不是类似于赋值给上一层

Twilight6 发表于 2021-8-16 16:40:28

为什么会打印None?

第一个 2 是 print(x) 打印的,而你的 None 是 print(gcd(4, 6))

print 函数这打印的是调用函数的返回值结果,这里函数中的 return 就是设置函数返回值,而在 Python 中函数没有设置 return 返回值,那么就会默认返回 None

print和return有什么区别?

print 是一个函数,将参数打印到屏幕上

而 return 是 Python 的一个关键字,用于设置函数的返回值

在交互界面,函数不需要 print 也能将 return 的内容自动打印在交互界面中

而在编辑器中执行代码,就不会自动打印到屏幕上,用户需要配合 print 函数才能将函数返回的内容打印到屏幕中去

全桥整流 发表于 2021-8-16 17:28:47

本帖最后由 全桥整流 于 2021-8-16 17:30 编辑

例如
a=1
print(print('a')) #从左往右数
第二个print的输出是a,那上式变成print(a)
那继续print,那不就是输出1,了吗
但实际不是这样
为什么会这样?

sxfxtf 发表于 2021-8-16 20:53:10

你有没return,所以就输出None了啊
页: [1]
查看完整版本: 小甲鱼课后作业疑问