一、文件操作
文件操作分读写
命令:f=open(path,model)
path是文件路径
model打开模式
r、只读
w、只写,打开时文件清空
a、只写,打开文本不清空,写在末尾
r+、可读可写
a+、可读可写
遍历文件中所有行
f=open("a.txt","r")
for line in f:
print(line)
text=f.read(size)读取一段文本 这是读取文件
写文件使用+f=open(path,"w")或者f=open(path,"a")
前者打开每次清空内容,后者不请空
写入使用f.write(text)
f.tell()返回当前指针
f.seek()移动指针
二、文本编码
我们主要使用的编码有:ascii,unicode,gbk,gb2312、utf-8
各种编码之间可以互相转换,不过都需要通过unicode,
都是通过解码:decode,编码:encode来编码解码
如utf-8转gbk,则需先将utf-8解码到unicode,然后再编码到gbk
同意gbk转utf-8也是先将gbk解码到unicode,然后再编码utf-8
三、函数
定义
def func_name(argums):
pass
函数一般有返回值,通过return来返回,可以返回任何数据,包括函数
如果函数定义时没有返回,那么python会自动加一个none返回
参数
函数可以有参数,也可以没有,数量可多可少
一般情况下,函数定义几个参数,在调用该函数时就要一一对应传入几个参数,传入参数是,可以按位置参数传入,也可以按关键字参数传入,位置参数必须放在关键字参数前面。
如果在定义函数时,使用“ *args”时,也就是参数名字前面加了一个星号,可以传入多个参数,这些参数会在函数中转化为一个元组,如果使用“**kwars”,参数名字前有2个星号,会把函数调用时传入的函数定义是未定义的关键字参数转换成字典。
局部变量和全局变量
一般写在文件开头的变量为全局变量,全局生效,在函数内定义的变量为局部变量,只在函数内生效。
一般来说,在函数内,不能修改全局变量,除非把局部变量转化为全局变量,可以通过global name,来转换
例外情况:全局的列表,字典等比较复杂的数据在函数内可以被修改
递归函数:
def cal(n):
print(n)
if int(n/2)==0:
return 0
return can(n/2)
can(20)
h函数自己调用自己,称为递归调用
递归调用必须满足几个条件:
1、有明确的结束条件
2、函数规模要越来越小
高阶函数
以函数为参数的函数就是高阶函数
def func(x,y,f):
return f(x)+f(y)
func(3,-5,abs)
这个即高阶函数
浙公网安备 33010602011771号