python基础_ 函数返回值、文档字符串、函数作用域、递归

1. 函数的返回值

返回值就是返回函数执行的结果,通过return来指定函数的返回值
举例
运行结果为6,没有指定返回值
在这里插入图片描述

下图返回值指定
可以直接使用函数的返回值,另一个方式是通过一个变量来接收函数的返回值。
return后面可以跟任意的对象,甚至是一个函数,函数的话,return不加括号。
运行结果是: 123
在这里插入图片描述
在这里插入图片描述
在函数中,return后的代码都不会执行, return一旦执行,函数结束

在这里插入图片描述

下列运行结果 是 : abc none在这里插入图片描述

下图 break 退出了当前循环,运行结果是: 012 循环完毕
在这里插入图片描述
用上了return ,下方函数直接结束, 运行结果 : 012

在这里插入图片描述

三种区别 注意 continue的运行如下
运行结果是 :0124 执行完毕
在这里插入图片描述
用了return后, 函数为所欲为,看下面代码
在这里插入图片描述

总结函数 括号打印区别
在这里插入图片描述

2. 文档字符串

函数 help() 是python的内置函数,即不想百度装逼的。
@可以查询python中函数的用法。

在定义函数的时候,可以在函数内部编写文档字符串,文档字符串就是函数的说明,
当我们编写了文档字符串时,就可以通过help()函数来产看函数的说明

语法:help(函数对象) #注意别加括号
file ,和 flush 是关键字传参
在这里插入图片描述
在这里插入图片描述

预见性结束偶
在这里插入图片描述

3.函数的作用域(scope)

就是指 变量生效的区域
@@ 在python中函数有两种作用域:
内(函数作用域) :函数调用时创建,调用后销毁;每次调用后…

外(全局):所有函数以外的都属于全局,在程序任意位置可以被访问。

外部看不到了吧!!
在这里插入图片描述
外部可见的区别哦
在这里插入图片描述

总结 两种 作用域
在这里插入图片描述
fn2下面 fn3
都能用
在这里插入图片描述
内部函数功能可以调用全局,但是全局不能看里层的函数作用域
在这里插入图片描述

**在函数内部修改全局变量,需要使用global关键字,来声明局部变量
**

运行结果内部外部都是 123
在这里插入图片描述

4.命名空间

命名空间就是一个字典,是 一个专门用来保存变量的字典。

locals() 用来获取当前作用域的命名空间,返回一个字典。

在这里插入图片描述

用关键字也可以哦
在这里插入图片描述

骚操作 ,有强制报错都能运行,但是不建议这样做;
在这里插入图片描述
运行结果如下
在这里插入图片描述

函数内部没有定义所以只是{}空字典
在这里插入图片描述
在这里插入图片描述

**globals()**可以获取全局的命名空间,哪怕在函数中 也有效

#获取了外部的a=123 b=456
在这里插入图片描述

5.递归函数

递归式的函数 简单理解就是自己引用自己
在函数中自己调用自己。
@@ 是解决问题的一种思想,和循环很像,整体上是将大问题分解为小问题,直到问题无法分解时,再去解决问题。

递归的两个条件:

  1. 基线条件:问题可以被分解为最小的问题,当满足基线条件时,递归就不再执行了。
  2. 递归条件: 将问题继续分解的条件。

在这里插入图片描述

#面试 经常考

举例@ 尝试求10的阶乘(10!)
1!=1
2!=1*2
。。。。
10!=…910
在这里插入图片描述

用循环才正规
在这里插入图片描述

#定义一个函数来实现任意数的阶乘

在这里插入图片描述
## 用递归的思想解决任意数阶乘问题

#10!=109!
#9!=9
8!
。。。
#1!=1
在这里插入图片描述
在这里插入图片描述

递归练习

  1. 定义一个函数,为任意数字做任意的幂运算
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 定义一个函数,用来检查任意一个字符串是否时回文字符串,如是返回True,不是返回False
    .回文 字符串,时从前往后念与从后往前念是一样的,例如 abcba

思路:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值