python 第四部分函数(学习笔记)

一、推导式
1.列表推导式
作用:用一个表达式创建一个有规律的列表或控制一个有规律的列表
list=[i for i in range(10)]
print(list)

list=[i for i in range(10) if i % 2 == 0]
print(list)

list=[(i,j) for i in range(1,3) for j in range(3)]
print(list)

2.字典推导式
{xx1:xx2 for ... in....}

3.集合推导式
{xx for xx in ....}


二、函数的使用步骤
1.定义函数
def 函数名(参数):
    代码1
    代码2
    代码3
2.调用函数
函数名(参数)

注:参数可有可无,函数必须先定义后使用

3.函数的返回值
return 表达式

4.函数的说明文档
语法:def 函数名(参数):
      """说明文档的位置"""
      代码
查看函数的说明文档
help(函数名)

5.函数嵌套调用:是一个函数里面调用了另外一个函数

三、函数
1.变量作用域:变量生效的范围,主要分为两类:局部变量和全局变量
局部变量:是定义在函数体内部的变量,只在函数体内部生效
全局变量:指的是在函数体内和外都生效的变量。global info 声称info是全局变量

四、函数的参数
1.位置参数:调用函数时根据函数定义的参数位置来传递参数
2.关键字参数:通过键=值的形式加以指定
注:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
3.缺省参数(默认参数):用于定义函数,为参数提供默认值,调用函数时可不传默认参数的值
注:所有位置参数必须出现在默认参数前,包括函数定义和调用
4.不定长参数(可变参数):用于不确定调用的时候会传递多少个参数(不传参也可以)
包裹位置传递
def a(*args):
   print(args)
包裹关键字传递
def a(*kwargs):
   print(kwargs)
注:包裹位置传递和包裹关键字传递都是一个组包的过程

五、拆包和交换变量值
1.拆包:元组
def are():
   return 10,20
a,b=are()
print(a)
print(b)

2.拆包:字典
dict1={"name":"tom","age":18}
a,b=dict1
print(a) 
> name
print(dict1[a])
> tom
print(b) 
> age
print(dict1[b])
> 18

3.交换变量值
借助第三变量存储数据
c=0
c=a
a=b
b=c

a,b=1,2
a,b=b,a

六、引用
用id可以判断两个变量是否为同一个值的引用

七、可变和不可变类型
可变:列表、字典、集合
不可变:整型、浮点型、字符串、元组

八、递归:函数内部自己调用自己,必须有出口

九、lambda表达式:若一个函数有一个返回值,并且只有一句代码,可使用lambda简化
语法:lambda 参数列表:表达式
注:lambda表达式的参数可有可无,函数的参数在lambda中完全适用
   lambda表达式能接收任何数量的参数但只能返回一个表达式
fn1=lambda:100
fn2=lambda a,b :a+b


1.lambda参数形式
无参数:lambda:100
一个参数:lambda a:a
默认参数:lambda a,b,c=100:a+b+c
可变参数:lambda *args:args
可变参数传入到lambda之后,返回值元组

2.lambda的应用
带判断的lambda:fn1=lambda a,b:a if a>b else b
列表数据按字典key值排序

十、高阶函数:把函数作为参数传入
1.绝对值 abs()
2.对数字的四舍五入计算round()
3.map(func,lst):将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表返回
4.reduce(func,lst):其中func必须有两个参数,每次func计算的结果继续和序列的下一个元素做累积计算。
5.filter(func,lst):用于过滤不符合条件的元素,返回一个filter对象。若要转换为列表可以使用list()来转换

十一、文件操作
1.打开文件:open(name,mode)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读、写入、追加等
2.文件对象方法
写:对象.write(‘内容’)
例子:
f = open("test.txt","w")
f.write("hello")
f.close()
注:w和a模式:若文件不存在则创建该文件,若存在,w模式先清空再写入,a模式直接末尾追加。
   r模式:若文件不存在则报错

读:文件对象.read(num)
num:表示要从文件中读取的数据长度(单位字节),若没有传入num,则读取全部文件中所有的数据
readlines():按照行的方式把整个文件的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据作为一个元素
readline():一次性读取一行内容

3.seek()
作用:用来移动文件指针
语法:文件对象.seek(偏移量,起始位置)
0:文件开头
1:当前位置
2:文件结尾

4.关闭
文件对象.close()

5.文件备份:备份文件名[备份]后缀
test[备份].txt

6.文件和文件夹的操作
导入os模块 import os
使用os模块相关功能 os.函数名()
文件重命名:os.rename(目标文件名,新文件名)
删除文件:os.remove(目标文件名)
创建文件夹:os.mkdir(文件夹名字)
删除文件夹:os.rmdir(文件夹名字)
获取当前目录:os.getcwd()
改变默认目录:os.chdir(目录)
获取目录列表:os.listdir(目录)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值