【零基础高效率学Python】第四天 函数
创始人
2024-05-09 21:39:16
0

目录

一、模块化程序设计

二、定义函数

三、函数调用

四、return语句

五、函数参数

六、函数的递归调用

七、匿名函数

八、open()函数

一、模块化程序设计

(一)基本设计思想:将一个大型程序按照功能分割成若干个小型模块

(二)特点

  • 模块相对独立,功能单一,结构清晰,接口简单

  • 减少程序复杂性

  • 提高元器件的可靠性

  • 缩短软件的开发周期

  • 避免程序开发的重复劳动

二、定义函数

(一)格式

def  函数名(形参列表):
    """函数注释"""
    程序功能段代码
    return  表达式

(二)分析

1、def:定义函数的关键字

2、函数名:函数的名称,区别其它函数的标签,也是函数所在内存的入口地址,是一个常量,要见名知意

3、形参:

  • 作用:函数接收数据的变量空间

  • 原则:调用函数时,形参变量分配空间,调用结束空间释放

  • 设计原则:名称、个数

  • 注意:多个形参之间使用逗号分割

4、函数注释:可选,起到增加函数可读性、理解性,推荐书写

5、函数体:程序段,实现函数的功能

PS:函数代码块以def关键字开头,一个空格之后接上函数标识符与园括号,最后有一个冒号,函数体重第一行一般书写函数注释,最后以return结束,默认返回None

三、函数调用

(一)作用:传递参数,使用函数功能

(二)格式:函数名(实参列表)

(三)调用方式

  • fun(m)  : 调用fun函数,传递参数m
  • n=fun(m) : 调用fun函数,返回值赋值给n
  • s=s*fun(m) : 调用fun函数,返回值参与后续运算
  • print(fun(m))  : 调用fun函数,返回值作为另一个函数的参数出现
  • fun() :调用fun函数,无参,无返回值

四、return语句

(一)作用

表示函数执行到此结束,并且返回return之后的对象,函数若无返回值,则return语句可省略,后台默认返回None

(二)注意

1、但函数执行到return语句,那么之后函数体若还有语句则不会执行,会被忽略掉,直接跳出函数体

2、python中return可以返回任意对象

五、函数参数

(一)位置参数(必需参数、必备参数)

必需按照正确的顺序传递到函数中,实参与形参按位置对齐,个数相同

(二)关键字参数

使用形参的名字来确定输入参数的值,实参不需要与形参按位置完全对齐一致

(三)默认参数

调用函数时,如果没有传入参数,会使用默认参数

注意:

  • 默认值参数必须写在形参列表最后,否则报错

  • 默认值形参尽量指向不可变数据类型的对象

(四)不定长参数(可变参数):传入的参数可以是任意多个

  • *形参 :一个星号,可以接收多个参数存储到元组中
  • **形参:两个星号,以关键字参数形式传入,以字典形式存储
  • 单独的*:对应实参必须以关键字参数形式传递

六、函数的递归调用

(一)作用

  • 一个函数在它的函数体内部调用自身称为递归调用

(二)注意

  • 每一次递归都是通过栈(stack)这种数据结构实现的,每次进入递归时,栈会增加一层,函数返回时栈会减少一层,由于栈的大小不是无限制的所以递归调用次数过多时可能会出现栈溢出,为了防止溢出,递归深度不要超过1000层

  • 递归必须在内部使用条件判断的方法来退出递归,否则会出现循环无休止的执行

  • 递归虽然使用程序变得简洁一些,增加程序可读性,但这是以牺牲存储空间为代价,由于每一次递归都会存储相关的变量和参数,会增加时间开销

七、匿名函数

(一)使用lambda关键字创建匿名函数

  • 匿名:不再使用def关键字这样标准的形式来定义函数

  • lambda只是一个表达式,不是一段代码,函数体一般要比传统的函数要简单

  • 只能在lambda表达式中封装有限的功能及逻辑,也拥有自己的命名空间

(二)格式:lambda 参数 :表达式

(三)注意

  • 匿名函数只能有一个表达式,不同也不能书写return语句,表达式的结果就是返回值

八、open()函数

(一)格式:f=open(filename,mode,encoding)

  • open()函数返回值为一个file对象,可以赋值给一个变量

  • filename:访问的文件名称,一般需要增加路径,本质是一个字符串

  • mode:打开文件的方式

  • encoding:字符编码,一般为UTF-8

(二)文件的打开方式

模式操作说明
r只读默认方式,如果文件不存在会报错
w写入若文件不存在则会新建然后写入,若文件已存在则会清空已有内容在写入
a追加若文件不存在则会新建然后写入,若文件已存在则会追加数据
x新建若文件已存在则报错,若文件不存在则会新建再写入,比w模式安全
b二进制模式以bytes类型操作文件,一般与之前的模式结合使用,如:rb、wb
+读写如:r+ w+ a+

例如:打开一个文件

  • f = open('t1.txt', 'w')
  • f.write('python 是一种非常好用的语言!')
  • f.close()

(三)b模式

  • 二进制模式:一般用于读取图片、视频等文件

  • 注意:读写时是以bytes类型读写的,因此获得是一个bytes对象而不是字符串,读写时需要指定字符编码

(四)+ 模式

  • w+模式:在读写之前会清空文件内容

  • a+模式:永远在文件尾部写入

  • r+模式:读写模式,配合seek()tell()方法可以实现更多操作

(五)文件写入方法:write()

  • 作用:将字符串或bytes类型写入文件中

  • 注意:write()一般都是在内存中执行,并不会立刻写入硬盘,当执行到close()方法后才会将数据写入硬盘,如果需要在内存读写且立刻反应到硬盘上则需要执行f.flush方法

(六)关闭文件对象:close()

  • 当处理完一个文件后,调用f.close()或关闭文件且释放系统资源,文件关闭后,数据会同步到磁盘

都看到这里了,创作不易,大家点个赞再走呗!!!( ˃̶̤́ ꒳ ˂̶̤̀ )

相关内容

热门资讯

虞书欣谈成名的代价令人心疼,如... 虞书欣谈成名的代价令人心疼,如今她在圈内的前景如何?虞书欣在圈内前景是很不错的,大家都很喜欢她,也有...
最有效的减肥食谱 最有效的减肥食谱谁有最有效的减肥食谱呢?麻烦给一个吧?急求最有效的减肥食谱,听说有一个什么汤的可以很...
关晓彤鹿晗被曝月底会分手,你对... 关晓彤鹿晗被曝月底会分手,你对于他们两个的爱情有什么看法?当初我也觉得他们俩的感情肯定不会长久的,但...
她曾在家中喂猪,却被张艺谋相中... 她曾在家中喂猪,却被张艺谋相中一夜成名,魏敏芝如今过得怎样?魏敏芝过得非常不错啊,而且当地的头衔也是...
电影《中邪》主要讲了什么? 电影《中邪》主要讲了什么?中邪的剧情简介 · · · · · ·大学生丁鑫和刘梦为拍摄农村风俗纪录片...
可以在营业厅查到短信的内容吗? 可以在营业厅查到短信的内容吗?查自己的短信==如果你是本人应该可以…不是本人是不可以的那是别人的隐私...
春日时雨时晴,杏花开时,小雨落... 春日时雨时晴,杏花开时,小雨落在身上,衣服欲湿未湿;杨柳风最柔,吹到脸上也下觉其寒。是什么诗句沾衣欲...
低学历的女人真的不能娶吗? 低学历的女人真的不能娶吗?我觉得不是的,娶妻子还是主要看对方的品性如何,而不是在意对方的学历。不一定...
电影配音问题 懂的进来 不是很... 电影配音问题 懂的进来 不是很难我想知道一个问题 比如说 一个电影 演员是 X 那他的说...可以是...
关于大蒜的谜语有哪些 关于大蒜的谜语有哪些有关蒜的谜语有:两二小,头长草 (打字一)谜底:蒜弟兄七八个,围着柱子坐,只要一...
怎么夸老师漂亮 怎么夸老师漂亮老师您长得太有气质了,非常出众,我身为一个女孩子都快要把持不住了。就直接一点说:老师你...
一般怎么钢琴即兴伴奏,一拿到简... 一般怎么钢琴即兴伴奏,一拿到简谱就能伴奏的和弦 天空之城简易般的可一参考 摸摸就出来的 弹一个音 ...
我对异地女友说,异地太苦了我真... 我对异地女友说,异地太苦了我真心问你,你和我一起内心快乐吗?她说,不管日子再苦,有你就是甜的?你一个...
为什么叫镇江 为什么叫镇江为什么叫镇江意义为"Garrison of the Yangtze River"
在足球历史上,阿贾克斯都获得过... 在足球历史上,阿贾克斯都获得过多少次欧冠?一共应该是获得过4次冠军,而且他真的是特别厉害,很少有人可...
时间简史是谁写的? 时间简史是谁写的?史蒂芬·威廉·霍金
我爱她,但她爱他。 我爱她,但她爱他。如果换了我是你!我会一直的爱着她!她爱着他,你又爱着他!她知道爱一个不爱自己人的资...
歌词:我是你的月亮,是你夜里的... 歌词:我是你的月亮,是你夜里的光芒。叫月光曲,嘿嘿
枪神纪里面的英文歌曲叫什么? 枪神纪里面的英文歌曲叫什么?枪神纪里面的英文歌曲叫什么?一首是男的一首是女的,女的那首好像有一句是,...
中外小朋友 大家手拉手 来自五... 中外小朋友 大家手拉手 来自五大洲 是什么歌名?中外小朋友 大家手拉手 来自五大洲 是什么歌名?《庆...