一、昨日内容回顾
文件操作
流程
1打开文件创建文件句柄
2对文件句柄进行操作
3关闭文件句柄
读
r r+ rb r+b
写
w w+ wb w+b
追加
a a+ ab a+b
其他骚操作:
readable() writable() seek() tell() flush() truncate()
readable() writable() seek() tell() flush() truncate()
文件的修改:略
二、函数
函数的初识
函数是个什么玩意儿?
一个函数封装一个功能,其实就是给代码“打包”。 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
def func_name():
一堆代码
一堆代码
一堆代码
一堆代码
return 返回值,默认是None
func_name() # 是调用这个函数执行他内部的代码
关于return
return的功能:
1返回一个值给调用者(func_name())单个返回值返回单个值,多个返回值返回一个tuple(元组)
2结束函数
return关键字的作用
return 是一个关键字,这个词翻译过来就是“返回”,所以我们管写在return后面的值叫“返回值”。
要研究返回值,我们还要知道返回值有几种情况:分别是没有返回值、返回一个值、返回多个值
没有返回值
不写return的情况下,会默认返回一个None:我们写的第一个函数,就没有写return,这就是没有返回值的一种情况。
#函数定义 def mylen(): """计算s1的长度""" s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) #函数调用 str_len = mylen() #因为没有返回值,此时的str_len为None print('str_len : %s'%str_len) 没有return
只写return,后面不写其他内容,也会返回None,有的同学会奇怪,既然没有要返回的值,完全可以不写return,为什么还要写个return呢?这里我们要说一下return的其他用法,就是一旦遇到return,结束整个函数。
def ret_demo(): print(111) return print(222) ret = ret_demo() print(ret) 只写return
return None:和上面情况一样,我们一般不这么写。
返回一个值
刚刚我们已经写过一个返回一个值的情况,只需在return后面写上要返回的内容即可。
#函数定义 def mylen(): """计算s1的长度""" s1 = "hello world" length = 0 for i in s1: length = length+1 return length #函数调用 str_len = mylen() print('str_len : %s'%str_len) return返回一个值
返回多个值
可以返回任意多个、任意数据类型的值
def ret_demo1(): '''返回多个值''' return 1,2,3,4 def ret_demo2(): '''返回多个任意类型的值''' return 1,['a','b'],3,4 ret1 = ret_demo1() print(ret1) ret2 = ret_demo2() print(ret2) 返回多个值 return返回多个值
返回的多个值会被组织成元组被返回,也可以用多个值来接收
def ret_demo2(): return 1,['a','b'],3,4 #返回多个值,用一个变量接收 ret2 = ret_demo2() print(ret2) #返回多个值,用多个变量接收 a,b,c,d = ret_demo2() print(a,b,c,d) #用多个值接收返回值:返回几个值,就用几个变量接收 a,b,c,d = ret_demo2() print(a,b,c,d) 多个返回值的接收 多个值接收
关于参数
实际参数传参 | 位置参数 |
def max_num(x,y): return x if x > y else y ma = max_num(10,20) print(ma) |
关键字参数 |
def max_num(x,y): return x if x > y else y ma = max_num(x=10,y=20) print(ma) |
|
混合传参 | def max_num(x,y): return x if x > y else y ma = max_num(10,y=20) print(ma) |
形参角度传参 | 位置参数 |
def max_num(x,y): # 形参x,y与实参一一对应 return x if x > y else y ma = max_num(10,20) print(ma) |
默认参数 |
def stu_info(name,sex = "male"): # 默认sex='male'可修改 print(name,sex) stu_info('Andy') stu_info('Tom','girl') |
|
动态参数 |
def trans_para(*args, **kwargs):
|
动态参数,也叫不定长传参,就是你需要传给函数的参数很多,不定个数,那这种情况下,
你就用*args,**kwargs接收,args是元祖形式,接收除去键值对以外的所有参数,
kwargs接收的只是键值对的参数,
并保存在字典中。