python中return怎么用打印出来是None

1 打印函数名和打印函数的执行过程的区别

print(a) # 打印a函数的内存地址不会对a函数有影响,a函数不会执行 print(a()) # 打印a函数的打印部分并打印a函数的返回值

打印函数名print(a),结果是把该函数的内存地址打印出来了。

打印函数的执行:print(a( )),打印该函数的执行程序中的print的部分最后把return的内容也打印出来,没有定义return的函数打印None

return a() # 打印a函数中打印的部分,返回a函数的返回值打印:111,返回None print(b()) # 打印b函数中打印的部分打印b函数的返回值

 print(b) 打印变量b(函数)的内存地址,不会对b函数有任何的影响b函数不会执行。

   《1》先执行b 函数由于b函数没有定义主体内容,返回空

   《2》打印b函数的返回值:return a() 由于此時的b函数在运行的,所以return里面的函数也会运行

2,函数内容主体中执行:

3在函数的return中执行:

总结:当一个函数执行的时候,若该函数的return內容是一个可执行的程序的时候该程序也会正常的执行。不过此时的返回值的概念是:打印该程序中的print部分并返回该函数的返回值,若没有定义返回值就返回None

 4打印函数名(本质就是打印变量名对应的内存地址:也就是该函数对应的内容主体的内存地址)

return  a() 的情况: 尽管這次return的是a() ,但由于b()函数并没有调用,仍然还是打印两个函数的内存地址

 5函数中的 return中的内容是常量和变量(可执行的函数)的情况下的函数执行问题

return中为一个常量时: 因为b()函数里面是空的。而return的a是个常量就是一个内存地址

return中是一个变量(可执行的函数),则当b函数运行时b函数的主体和return里面的程序都会运行,效果如下: 

return a() # 打印a函数中打印的部分,返回a函数的返回值

 6打印传递参数的高阶函数的返回值,一定要悝解a(f)就是在执行a函数

print(a(f)) # 打印a函数中打印的部分打印a函数的返回值。打印a函数中的打印部分:222222打印a函数的返回值也就是打印f函数的内存地址

解析:打印 a (f)函数的整个过程相当于打印不带参数的 print(a())的过程!!!!,即a(b)函数会被执行并且打印返回值

同理:给一个高阶函數传参后赋值也会执行该函数,例如:

leetcode 上一道题目求数组中能组成的朂大周长三角形,代码如下:

# 给定由一些正数(代表长度)组成的数组 A返回由其中三个长度组成的、

# 面积不为零的三角形的最大周长。洳果不能形成任何面积不为零的三角形返回 0。

# 三角形要求两边之和大于第三边两边之差小于第三边

# 先排序,之后取末尾三个数字若 n-2 + n-1 < n,则递归 n-1若满足就是最大边长三角形

求数组 A 中能组成的最大周长三角形

判断传入的 a、b、c 能否组成三角形

问题:如上,我用[3,6,2,3]列表进行测试返回值应该是 8.

我要回帖

更多关于 python中return 的文章

 

随机推荐