【零基础高效率学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()或关闭文件且释放系统资源,文件关闭后,数据会同步到磁盘

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

相关内容

热门资讯

茂名市副市长王小慧:十五运群众... 南方财经全媒体记者谭砚文  实习生勇佩言  茂名报道2025年5月8日至11日,第十五届全国运动会首...
关于近日网上“运-20向外方运... “人民空军”微信公众号消息,近日,网络上出现大量关于“运-20向巴基斯坦运送救援物资”的消息。对此,...
2025年世界田径接力赛决赛在... 来源:中国新闻网 中新社广州5月11日电 (记者 王坚)2025年世界田径接力赛决赛11日晚在广州开...
湾区“才引力”:粤港澳50多家... 南方财经全媒体记者江珊   南沙报道今年以来,香港“高才通”计划、广东“百万英才汇南粤”行动计划等一...
军工行情被“点燃” 转折要来了... 近日,在大盘震荡回暖的背景下军工股表现却颇为亮眼,在过去的一周内,中证军工指数涨幅高达5.82%,更...
“汉语桥”中文比赛在多国举行 转自:千龙网新华社北京5月11日电 综合新华社驻外记者报道:“汉语桥”中文比赛近日分别在罗马尼亚、保...
车友求助,外地牌照私家车怎么转... 转自:扬子晚报昨天,有一名车友在网上发帖求助称,自己有一辆连云港牌照的私家车,因为长期在南京,现在部...
从休养生息到生生不息——长江禁... 转自:北京日报客户端2024年涉渔行政案件同比下降24.7%,长江干流监测点单位资源量同比上升9.5...
“海豚音”依旧互动更多,玛丽亚... 5月10日,传奇天后玛丽亚·凯莉(Mariah Carey)在深圳体育中心体育场圆满完成了《Cele...
靴子落地!000656,重整计... 5月11日晚间,金科地产集团股份有限公司(以下简称“*st金科”,证券代码:000656)发布关于公...
20万买合资低配SUV?搭载C... 合资品牌长期以高价低配收割市场,瑞虎9以15万级价格提供40万级配置,以技术平权颠覆合资溢价,让消费...
“微”光暖心 “缘”系母爱 转自:扬子晚报5 月 11 日,在这个被温暖与爱意包裹的母亲节,南京市鼓楼区热河南路街道新和园社区精...
从导弹互袭到全面停火,印巴冲突...   印巴冲突在陡然升级后,又戛然而止。  就在外界担心印度和巴基斯坦爆发全面战争之际,印度和巴基斯坦...
从70元卖到3000元 撕拉片... 【从70元卖到3000元 #撕拉片价格涨超停产前20倍# 】近日,“撕拉片”成为社交平台热门词。在二...
著名学者黄修己去世,享年90岁 5月11日,著名学者、中山大学中文系教授黄修己逝世,享年90岁。黄修己1935年出生于福州,1955...
“险资系”私募 最新持仓动向   备受市场关注的“险资系”私募,最新动向于近期曝光。  上市公司披露完毕的一季报显示,我国首只保险...
节水周上海广泛宣传 生产和工业... 2025年5月11日至5月17日是“全国城市节约用水宣传周”,记者从上海市水务局了解到,在这一周里上...
四川妙手护士丨胡丽:做病房“托... 转自:四川在线四川在线记者 魏冯在四川省第三人民医院的骨科病房里,常常能看到这样一幕:一位护士手持理...
我们为什么如此看好创新药行业? ■普惠金融·农银汇理基金投资视点◎农银汇理基金经理 梦圆 2023年以来,我们持续增配创新药板块。今...
24家中国企业进入全球榜TOP... 每经记者:黄博文 每经编辑:陈俊杰5月9日,第九个中国品牌日前夕,由每日经济新闻主办、清华大学经济管...