lzb1001 发表于 2023-11-7 01:45:37

还是函数返回值

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

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

isdkz 发表于 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 。

希望这个解释能够帮助你理解函数返回值的概念。如果你还有其他问题,请随时提问。

Mike_python小 发表于 2023-11-7 01:47:56

在Python中,函数可以有返回值,也可以没有返回值。

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

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

   输出结果为:
   
   3
   2
   

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

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

   输出结果为:
   
   3
   2
   

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

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

   输出结果为:
   
   3
   

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

   输出结果为:
   
   2
   

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

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

   输出结果为:
   
   3
   2
   

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

   输出结果为:
   
   None
   

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

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

poly 发表于 2023-11-7 13:15:29

y是print的返回结果,print没有返回结果,就是none
页: [1]
查看完整版本: 还是函数返回值