定义函数的三种形式
- 无参数函数,通常无返回值
- 有参数函数,函数的功能执行依赖外部传入的参数,有参数函数通常有返回值
def add(x,y):
sum=x+y
return sum
- 空函数
def insert():
pass
函数返回值
- 返回值为None 没写return return 啥也不接 return None- 一个返回值 def foo(): return x- 多个返回值 return 值1,值2,值3,值4 --->返回结果组成tuple
调用函数
def dog(): print('dog')def cat(cat): print('===>',cat)dog()cat('加菲')
调用函数的三种方式:
- dog() #直接调用- 调用函数的表达式形式 def add(x,y): sum=x+y return res res=add(3,5) * 1000- 把函数调用当中另外一个函数的参数 res=max(max(3,5),7)
函数的参数:
- 形参 定义函数时的参数名称- 实参 调用函数时传入的参数
详细区分函数的参数
- 位置参数 def foo(x,y,z): print(x,y,z) foo(1,2,3) 实参位置和形参位置一一对应- 关键字参数: def foo(x,y,z) print(x,y,z) foo(z=3,y=1,x=4) foo(1,z=3,y=5) 注意点: 1. 关键字实参必须在未知实参后面 2. 不能重复对一个形参传值- 默认参数 def reg(name,age,sex='male'): print(name,age,sex) 注意点: 1. 定义函数时,默认参数必须在非默认参数之后 2. 默认参数在定义阶段智能赋值一次 3. 默认参数通常定义成不可变类型- 可变长参数, 1. *会把溢出的按位置定义的实参都接受,以元组形式赋值给args def foo(x,y,*args): print(x,y) print(args) foo(1,2,3,4,5,6) 输出: 1 2 (3,4,5,6) tuple形式 2. def foo(x,y,**kwargs):**会把溢出的按关键字定义的实参都接收,以字典的形式赋值给kwargs print(x,y) print(kwargs) foo(1,2,c=2,name='lh',age=18) 输出: 1 2 {'c': 2, 'name': 'lh', 'age': 18} 例子: def foo(name,age=10,*args,sex='male',height,**kwargs): print(name) print(age) print(args) print(sex) print(height) print(kwargs) foo('alex',1,2,3,4,5,sex='female',height='150',a=1,b=2,c=3) 输出: alex 1 (2, 3, 4, 5) female 150 {'c': 3, 'a': 1, 'b': 2} def foo(x,y,z): print('from foo',x,y,z) def wrapper(*args,**kwargs): print(args) print(kwargs) foo(*args,**kwargs) # wrapper(1,2,3,a=1,b=2) wrapper(1,z=2,y=3) 输出: (1,) {'z':z,'y':3} from foo 1 3 2
文件操作
f=open('a.txt','r+') 对文件进行读写
f=open('a.txt','w+') 写读
f=open('a.txt','a+') 追加并且读
f=open('a.txt','w') f.write('1111\n') f.close() 关闭以释放内存
上下文管理
with open('a.txt','r',encoding='utf-8') as f: print(f.read())with open('txt','r',encoding='utf-8') as read_f,\ open('aa.txt','w',encoding='utf-8') as write_f: for line in read_f: write_f.write(line) else:#在上面流程执行成功之后,显示写入成功 print('write ok')
-
decode() 解码
with open('b.txt','rb') as f: print(f.read().decode('utf-8'))
-
encode() 编码
with open('c.txt','wb') as data: data.write('工地人'.encode('utf-8'))
本文出自 “11860872” 博客,谢绝转载!