模块相对独立,功能单一,结构清晰,接口简单
减少程序复杂性
提高元器件的可靠性
缩短软件的开发周期
避免程序开发的重复劳动
def 函数名(形参列表):
"""函数注释"""
程序功能段代码
return 表达式
1、def:定义函数的关键字
2、函数名:函数的名称,区别其它函数的标签,也是函数所在内存的入口地址,是一个常量,要见名知意
3、形参:
作用:函数接收数据的变量空间
原则:调用函数时,形参变量分配空间,调用结束空间释放
设计原则:名称、个数
注意:多个形参之间使用逗号分割
4、函数注释:可选,起到增加函数可读性、理解性,推荐书写
5、函数体:程序段,实现函数的功能
PS:函数代码块以def关键字开头,一个空格之后接上函数标识符与园括号,最后有一个冒号,函数体重第一行一般书写函数注释,最后以return结束,默认返回None
表示函数执行到此结束,并且返回return之后的对象,函数若无返回值,则return语句可省略,后台默认返回None
1、但函数执行到return语句,那么之后函数体若还有语句则不会执行,会被忽略掉,直接跳出函数体
2、python中return可以返回任意对象
必需按照正确的顺序传递到函数中,实参与形参按位置对齐,个数相同
使用形参的名字来确定输入参数的值,实参不需要与形参按位置完全对齐一致
调用函数时,如果没有传入参数,会使用默认参数
注意:
默认值参数必须写在形参列表最后,否则报错
默认值形参尽量指向不可变数据类型的对象
每一次递归都是通过栈(stack)这种数据结构实现的,每次进入递归时,栈会增加一层,函数返回时栈会减少一层,由于栈的大小不是无限制的所以递归调用次数过多时可能会出现栈溢出,为了防止溢出,递归深度不要超过1000层
递归必须在内部使用条件判断的方法来退出递归,否则会出现循环无休止的执行
递归虽然使用程序变得简洁一些,增加程序可读性,但这是以牺牲存储空间为代价,由于每一次递归都会存储相关的变量和参数,会增加时间开销
匿名:不再使用def关键字这样标准的形式来定义函数
lambda只是一个表达式,不是一段代码,函数体一般要比传统的函数要简单
只能在lambda表达式中封装有限的功能及逻辑,也拥有自己的命名空间
open()函数返回值为一个file对象,可以赋值给一个变量
filename:访问的文件名称,一般需要增加路径,本质是一个字符串
mode:打开文件的方式
encoding:字符编码,一般为UTF-8
模式 | 操作 | 说明 |
---|---|---|
r | 只读 | 默认方式,如果文件不存在会报错 |
w | 写入 | 若文件不存在则会新建然后写入,若文件已存在则会清空已有内容在写入 |
a | 追加 | 若文件不存在则会新建然后写入,若文件已存在则会追加数据 |
x | 新建 | 若文件已存在则报错,若文件不存在则会新建再写入,比w模式安全 |
b | 二进制模式 | 以bytes类型操作文件,一般与之前的模式结合使用,如:rb、wb |
+ | 读写 | 如:r+ w+ a+ |
例如:打开一个文件
二进制模式:一般用于读取图片、视频等文件
注意:读写时是以bytes类型读写的,因此获得是一个bytes对象而不是字符串,读写时需要指定字符编码
w+模式:在读写之前会清空文件内容
a+模式:永远在文件尾部写入
r+模式:读写模式,配合seek()tell()方法可以实现更多操作
作用:将字符串或bytes类型写入文件中
注意:write()一般都是在内存中执行,并不会立刻写入硬盘,当执行到close()方法后才会将数据写入硬盘,如果需要在内存读写且立刻反应到硬盘上则需要执行f.flush方法
上一篇:C++教学创新大赛信息管理系统[2023-01-08]
下一篇:CSS知识点大全