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

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

相关内容

热门资讯

皖仪科技跌2.10%,成交额8... 7月4日,皖仪科技盘中下跌2.10%,截至09:44,报22.80元/股,成交845.01万元,换手...
小魔怪牛仔服饰 小魔怪牛仔服饰唉,明大明你直接问我就好了嘛 很多地方的,天洋西厅啊,明珠购物广场 茂业百货地下一层不...
精准医疗板块大涨 中源协和涨幅...   07月04日消息,截止09:45,精准医疗板块大涨,中源协和、贝瑞基因、广生堂、阳普医疗等个股涨...
科兴制药跌4.10%,成交额6... 7月4日,科兴制药盘中下跌4.10%,截至09:35,报46.99元/股,成交6360.44万元,换...
碳中和ETF基金(562300... 7月4日,碳中和ETF基金(562300)开盘跌0.36%,报0.555元。碳中和ETF基金(562...
住房公积金缴存基数调整上限23... 转自:安庆新闻网  7月2日,记者从安庆市住房公积金管理中心获悉,2025年度安庆市住房公积金缴存基...
幽灵人间剧情解析? 幽灵人间剧情解析?十五年前,一个满大汉匆忙的在街上奔跑,却被一辆货车撞到身首异处,但他又突然起身,狂...
正川股份涨2.54%,成交额1... 7月4日,正川股份盘中上涨2.54%,截至09:35,报18.99元/股,成交1932.12万元,换...
退市锦港涨2.13%,成交额1... 7月4日,退市锦港(维权)盘中上涨2.13%,截至09:35,报0.48元/股,成交132.32万元...
诺泰生物7月3日获融资买入29... 7月3日,诺泰生物(维权)涨0.75%,成交额2.32亿元。两融数据显示,当日诺泰生物获融资买入额2...