[Python 公开课] 零基础玩转 Python 基础篇 ---- 第六节:Python 中的函数
📢📢📢📣📣📣🌻🌻🌻Hello 大家好,我叫是 Dream 呀,一个有趣的 Python 博主,多多关照😜😜😜🏅🏅🏅CSDN Python 领域优质创作者,大二在读,欢迎大家找我合作学习(文末有 VX 想进学习交流群 or 学习资料 欢迎+++)💕
入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有 Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈🌟🌟🌟✨✨✨
前言:
📢📢📢【Python 公开课】系列课程是针对 Python 入门 &进阶打造的一全套课程,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘【报团取暖】🆘🆘🆘🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的 VX,我会拉你进学习交流群,我们一起交流学习,报团打卡赶快加入我们吧!🍻🍻🍻
@TOC
1️⃣ 学习目标----提前知💞💞💞
☀️☀️☀️一个崇高的目标,只要不渝地追求,就会成为壮举!
掌握什么是函数的定义调用
了解函数的参数、函数的返回值、函数的嵌套
学习递归函数、匿名函数、日期时间函数和随机数函数
2️⃣ 学习任务----我能行🍻🍻🍻
🏅🏅🏅穷且益坚,不坠青云之志!
🌻 01 什么是函数
什么是函数?
函数
是组织好的,可重复使用的,用来实现单一或相关联功能的代码段
,它能够提高应用的模块性和代码的重复利用率。
如果在一个程序的不同地方需要输出这个图形,每次使用 print 语言输出的做法显然不可取。
🌻 02 函数的定义和调用
Python 定义函数使用def
关键字,格式如下:
这是一个自定义的函数:
定义了函数之后,想要让这些代码能够执行,需要调用函数。通过“函数名()”
即可完成调用。
🌻 03 函数的参数
默认参数
调用函数时,如果没有传递参数,则会使用默认参数
。
带有默认值的参数一定要位于参数列表的最后面
。否则程序会报错。
不定长参数
如果希望定义的函数,可以计算任何两个数和,我们在定义函数的时候,让函数接收数据,这就是函数的参数
。
a 和 b 就是函数的参数,调用的时候,可以传入任何两个数。有时可能需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数
,声明时不会命名。
加了星号(*)的变量 args 会存放所有未命名的变量参数,args 为元组;
加**的变量 kwargs 会存放命名参数,即形如 key=value 的参数, kwargs 为字典。
下面代码的运行结果是怎样的呢?
🌻 04 函数的返回值
函数的返回值是使用return
语句来完成的。
函数 add2num 中包含 return,意味着这个函数有一个返回值,其返回值就是 a 和 b 相加的结果。
🌻 05 函数的四种类型
根据函数的参数和返回值,函数可以分为四种类型:
无参数,无返回值的函数
无参数,有返回值的函数
有参数,无返回值的函数
有参数,有返回值的函数
1.无参数,无返回值的函数
2.无参数,有返回值的函数
3.有参数,无返回值的函数
4.有参数,有返回值的函数
🌻 06 函数的嵌套调用
实例:
🌻 07 变量的作用域
作用域
为了避免变量的名称发生冲突,所以 Python 引入了
命名空间
的概念。命名空间指的是
名称到对象的映射
,类似于字典,键名是变量的名字,值是变量的值。
命名空间是相互独立存在的,而且它们被安排在某个特定的层次,把这些层次结构组合起来就是作用域
。
本地作用域
函数嵌套作用域
文件作用域
内置作用域
局部变量
所谓
局部变量
,就是在函数内部定义的变量。局部变量的作用域是函数内部
,意味着它只在定义它的函数中有效,一旦函数结束就会消失。
全局变量
定义在函数外的拥有
全局作用域
。全局变量可以在
整个程序范围内
访问。如果出现全局变量和局部变量名字相同的情况
,则在函数中访问的是局部变量
。
🌻 08 递归函数和匿名函数
一个函数的内部可以调用其他函数。但是,如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数
。使用递归,实现阶乘 n! = 1 * 2 * 3 * ... * n 的计算。
匿名函数就是没有名称的函数
,也就是不再使用 def 语句定义的函数。如果要声明匿名函数
,则需要使用lambda
关键字,匿名函数的声明格式如下所示:
匿名函数示例代码:
注意:使用 Lambda 声明的匿名函数能接收任何数量的参数,但只能返回一个表达式的值。匿名函数不能直接调用 print,因为 lambda 需要一个表达式。
🌻 09 日期时间函数
时间函数
在 Python 中,通常有如下几种方式表示时间:(1)时间戳;通常来讲,时间戳表示的是从 1970 年 1 月 1 日 00:00:00 开始按秒计算的偏移量。
(2)格式化的时间字符串;我们可以使用time模块的strftime方法
来格式化日期。
(3)时间元组(struct_time)。返回 struct_time 的函数主要有 gmtime()、localtime()和 strptime(),struct_time 元组。
日历函数
1.calendar.calendar(year,w=2,l=1,c=6)返回一个多行字符串格式的 year 年年历,3 个月一行,间隔距离为 c。每日宽度间隔为 w 字符。每行长度为 21* W+18+2* C。l 是每星期行数。
然后就可以得到我们的日期表了,是不是非常的 nice:
2. 返回当前每周起始日期的设置。默认情况下,首次载入 caendar 模块时返回 0,即星期一。
3. 如果是闰年返回 True,否则为 false。
4. 返回在 Y1,Y2 两年之间的闰年总数。
5. 返回一个多行字符串格式的 year 年 month 月日历,两行标题,一周一行。每日宽度间隔为 w 字符。每行的长度为 7* w+6。l 是每星期的行数。
6. 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year 年 month 月外的日期都设为 0;范围内的日子都由该月第几日表示,从 1 开始。
7. 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从 0(星期一)到 6(星期日);月从 1 到 12。
8.calendar.prcal(year,w=2,l=1,c=6)相当于 print(calendar.calendar(year,w,l,c))
🌻 10 随机数函数
1.random.random()
用于生成一个 0 到 1 的随机符点数: 0 <= n < 1.0。
2.random.uniform(a,b)
返回 a,b 之间的随机浮点数,范围[a,b]或[a,b]取决 于四舍五入,a 不一定要比 b 小。3.random.randint(a,b)
返回 a,b 之间的整数,范围[a,b],注意:传入参数必须是整数,a 一定要比 b 小。4.random.randrang([start], stop[, step])
返回有个区间内的整数,可以设置 step。只能传入整数,random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。5.random.choice(sequence)
从 sequence(序列,是有序类型的)中随机获取一个元素,列表、元组、字符串都属于 sequence。
6.random.shuffle(x[,random])
用于将列表中的元素打乱顺序,俗称为洗牌。
7.random.sample(sequence,k)
从指定序列中随机获取 k 个元素作为一个片段返回,
sample 函数不会修改原有序列
3️⃣ 本章小结----知难易🏆🏆🏆
😊😊😊人生是跋涉,也是旅行;是等待,也是重逢;是探险,也是寻宝;是眼泪,也是歌声!
本章主要针对函数进行了讲解,包括函数的定义调用、函数的参数、函数的返回值、函数的嵌套、递归函数、匿名函数、日期时间函数和随机数函数
。函数作为关联功能的代码段,可以很好的提高应用的模块性,希望读者能用好这些函数,并学会查询相关的函数手册。
4️⃣ 小试牛刀----习题讲解🌈🌈🌈
🏃 🏃 🏃本期问题
✍第一题 输入某年某月某日,判断这一天是这一年的第几天?
✍第二题 斐波那契数列
✍第三题 完全平方数
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~
评论