python:函数初始
一、函数
1.函数初始:函数就是封装一个功能
2.函数名,函数体,关键字,函数的返回值
def 关键字,定义一个函数
my_len 函数名书写规则和变量一样
def 与函数名中间一个空格
函数名():加冒号
函数体
li= [1,2,'asd'] def my_lens(): count = 0 for i in li: count += 1 print(count) my_lens()
3.函数的返回值
写函数不要在函数中写print()
return
1.在函数中,遇到return结束函数
2.将返回值返回给函数的调用者
1 def re1(): 2 print(111) 3 print(222) 4 return(77) 5 print(555) 6 re1()#结果是111,222 7 s = re1() 8 print(s)#s=111,222, 77
1.无return
def re(): print(111) print(222) print(333) re()
def re2():
print('hah')
return(None)
re2()
s= re2()#s的值是None
print(re2)
2.return None
1 def re3(): 2 print(121) 3 print(re3())#会打印111也会输出none
3.return 一个值 该值是什莫就直接返回给函数的调用者 函数名()
1 def re3(): 2 return (111) 3 s = re3() 4 print(s)
4.return多个值 将多个值放在元祖里然后返回给函数的调用者
1 def re4(): 2 return 1,2,3, 3 return(2220) 4 return(3330) 5 s= re4() 6 print(s)
如果有三个参数对应return也有三个值,return的三个值会自动分别赋值给三个对应参数
1 def re5(): 2 print(111) 3 print(222) 4 print(333) 5 return(1,2,3,) 6 a,b,c = re5()#a,b,c对应return的三个值会自动分别赋值给abc 7 print(a) 8 print(b) 9 print(a,b,c)
4.函数的传参
实参角度:
1,位置传参。按顺序,一一对应
def func(a,b,c): print(a) print(b) print(c) func('sadf',2,3)
1 #写一个函数,功能比较大写 2 def max_min(a,b): 3 if a>b: 4 return a 5 else: 6 return b 7 print(max_min(4,5)) 8 #三元运算 9 def max_min2(a,b): 10 return a if a>b else b 11 print(max_min2(8,9))
2.关键字传参,不按顺序,一一对应
def max_min3(a,b): return a if a>b else b print(max_min3(b= 100,a=200)) print(max_min3(100,b=200)) print(max(min3(a=100,200)))#报错
3.混合传参,关键字参数永远在位置参数后面
def func1(a,b,c,e): print(a) print(b) print(c) print(e) print(func1(1,2,e= 10,c= 200))
形参角度
1.位置传参。按顺序,一一对应
2.默认参数。传参则覆盖,不传则默认,默认参数永远在位置参数后面
def func(a,b= 666): print(a,b) func(1,2) func(1,777) func(1) print(s)
1 def infor_entry(username,sex= '男'): 2 with open('namelist',encoding = 'utf-8',mode = 'a')as f: 3 f.write('{}\t{}\n'.format(username,sex)) 4 5 while True: 6 username = input('姓名:') 7 if '1'in username: 8 username = username[1:] 9 infor_entry(username) 10 else: 11 infor_entry(username,'女')