鱼C论坛

 找回密码
 立即注册
查看: 1660|回复: 3

还是函数返回值

[复制链接]
发表于 2023-11-7 01:45:37 | 显示全部楼层 |阅读模式

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

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

x
def a(n):
        print(n)
        return n - 1

>>> a(3)
3
2
>>> print(a(3))
3
2
>>> x = a(3)
3
>>> x
2
>>> print(x)
2
>>> y = print(a(3))
3
2
>>> y
>>> print(y)
None


红色部分没看懂,请大神指点

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-7 01:46:44 | 显示全部楼层
红色部分是关于函数返回值的问题。在Python中,函数可以通过使用 return 语句来返回一个值。当函数执行到 return 语句时,它会立即停止执行,并将返回值返回给调用者。

在给定的代码中,函数 a 打印出了传入的参数 n 的值,然后返回 n - 1 。当调用 a(3) 时,首先会打印出3,然后返回2。由于没有使用 print 语句来输出函数的返回值,所以在交互式环境中,只有最后一个表达式的值会被显示出来。

在第一个例子中, a(3) 的返回值是2,但由于没有使用 print 语句来显示它,所以它只是在交互式环境中被计算出来了。

在第二个例子中, print(a(3)) 首先会计算 a(3) 的返回值,也就是2,然后使用 print 语句来显示它。所以,首先会打印出3,然后会打印出2。

在第三个例子中, x = a(3) 将 a(3) 的返回值2赋给了变量 x 。所以,首先会打印出3,然后将2赋给了变量 x 。

在第四个例子中, y = print(a(3)) 首先会计算 a(3) 的返回值,也就是2。然后, print 函数会打印出2,并返回 None 。最后, None 被赋给了变量 y 。

在最后两个例子中, y 和 print(y) 都会输出 None ,因为 y 的值是 None 。

希望这个解释能够帮助你理解函数返回值的概念。如果你还有其他问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-7 01:47:56 | 显示全部楼层
在Python中,函数可以有返回值,也可以没有返回值。

让我们逐步解释红色部分的输出。

1. 第一次调用 a(3),函数执行了 print(n) 语句,打印出了参数 n 的值 3,然后执行了 return n - 1,返回值为 2。

   输出结果为:
   [/code]
   3
   2
   [/code]

2. 第二次调用 print(a(3)),函数执行了 print(n) 语句,打印出了参数 n 的值 3,然后执行了 return n - 1,返回值为 2。

   但由于此处 print(a(3)) 中的 print() 函数会将函数的返回值作为输出,所以输出结果为函数的返回值,即 2。

   输出结果为:
   [/code]
   3
   2
   [/code]

3. 执行 x = a(3),函数执行了 print(n) 语句,打印出了参数 n 的值 3,然后执行了 return n - 1,返回值为 2。

   此时,函数的返回值 2 被赋给变量 x

   输出结果为:
   [/code]
   3
   [/code]

4. 执行 x,输出变量 x 的值,即 2。

   输出结果为:
   [/code]
   2
   [/code]

5. 执行 y = print(a(3)),函数执行了 print(n) 语句,打印出了参数 n 的值 3,然后执行了 return n - 1,返回值为 2。

   但是由于此处使用了 print() 函数将函数的返回值进行输出,并且 print() 函数本身返回值为 None,所以变量 y 的值为 None

   输出结果为:
   [/code]
   3
   2
   [/code]

6. 执行 y,输出变量 y 的值,即 None

   输出结果为:
   [/code]
   None
   [/code]

希望这个解释能够帮助你理解。如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-7 13:15:29 | 显示全部楼层
y是print的返回结果,print没有返回结果,就是none
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 03:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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