9、python函数(中)

本文深入探讨Python函数的返回值,解释了为何需要return以及返回值的类型,包括数字、None和函数。介绍了return的特性,展示了如何在函数中中断执行。接着讨论了文本字符串、函数作用域和命名空间的概念。文章重点讲解了递归函数,包括基线条件和递归条件,并通过阶乘问题进行实例解析。此外,还布置了判断闰年和猴子吃桃问题的递归实现作业,以及附加的递归应用示例,如斐波那契数列、幂运算和回文字符串检测。
摘要由CSDN通过智能技术生成

在这里插入图片描述

函数(中)

7、函数的返回值

7.1、为什么要返回值?

  函数的返回值是用return来得到的,其实在上期的作业中已经用到了return,但是并没有讲解。
  首先让我们来了解一下为什么需要通过return来获取函数的返回值,有人会说不是有print嘛,通过print不就可以得到我们要的值嘛,但是这么想是错误的,print只是打印出来给我们看,但实质上并没有取到我们要的值
  还要就是我们写函数的目的,就是希望封装好这个程序,然后让我们随时可以使用(调用)函数,但是不用return写函数,就不能得到函数得到返回值,这样我们函数写出来就达不到我们的预期。

7.2、返回值的类型

  • 任何类型的值都可以作为函数的返回值来返回
    包括:常用的数据类型,甚至是函数都可以作为返回值返回

  • 数字作为返回值

def fun1():
    return 1

print(fun1())
运行结果 》》》1
  • None作为返回值
def fun1():
    return None

print(fun1())
运行结果 》》》None
  • 函数作为返回值(这个比较重要)
def fun1():
    def fun2():
        print(123)
        return 456
    return fun2
    
print(fun1())       # fun1()() = fun2()
运行结果 》》》<function fun1.<locals>.fun2 at 0x0000016E1D3D6AE8>

print(fun1()())
运行结果 》》》
123
456

这里讲一下 fun1()() = fun2(),其实很简单的,fun1()的返回值就是函数fun2,稍微转化一下就可以了。如图,也可以这样理解在这里插入图片描述

  • 返回值的结构

写了return xxx(返回的值)的函数,最后返回的值就是 xxx
如果你不写return xxx 和 只写一个return (如下例),返回的结果都是None
函数的调用等于函数的的返回值

# 不写return
def fun1():
    def fun2():
        print(123)
    return fun2

print(fun1()())
运行结果 》》》
123
None

7.3、return的特性

return的特性:
  在函数中,return后面的代码都不会执行, return一旦执行,函数自动结束,个人感觉与break的用法有点相似,但是比break还绝,break只是中断循环,然后循环后的不运行,但是如果是内层循环中的break,还是影响不到外面的代码,但是return不一样,只要看见return,管你在哪,直接弹出。让我们看几个例子,证实一哈!!

  • 首先来个最简单的
def fun3():
    print(1111)
    return
    print(2222)

fun3()
运行结果 》》》1111

运行结果只有1111,说明他确实是中断了

  • 函数循环中
    这里分别用break,continue,以及return来运行,看看结果
# break 运行
def fun4():
    for i in range(5):
        if i == 3:
            break  
            # continue
            # return
        print(i)
    print('循环执行结束')

fun4()

运行结果 》》》
0
1
2
循环执行结束
# continue 运行
def fun4():
    for i in range(5):
        if i == 3:
            # break  
            continue
         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值