一、函数
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.将返回值返回给函数的调用者
def re1():
print(111)
print(222)
return(77)
print(555)
re1()#结果是111,222
s = re1()
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
def re3():
print(121)
print(re3())#会打印111也会输出none
3.return 一个值 该值是什莫就直接返回给函数的调用者 函数名()
def re3():
return (111)
s = re3()
print(s)
4.return多个值 将多个值放在元祖里然后返回给函数的调用者
def re4():
return 1,2,3,
return(2220)
return(3330)
s= re4()
print(s)
如果有三个参数对应return也有三个值,return的三个值会自动分别赋值给三个对应参数
def re5():
print(111)
print(222)
print(333)
return(1,2,3,)
a,b,c = re5()#a,b,c对应return的三个值会自动分别赋值给abc
print(a)
print(b)
print(a,b,c)
4.函数的传参
实参角度:
1,位置传参。按顺序,一一对应
def func(a,b,c):
print(a)
print(b)
print(c)
func('sadf',2,3)
#写一个函数,功能比较大写
def max_min(a,b):
if a>b:
return a
else:
return b
print(max_min(4,5))
#三元运算
def max_min2(a,b):
return a if a>b else b
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)
def infor_entry(username,sex= '男'):
with open('namelist',encoding = 'utf-8',mode = 'a')as f:
f.write('{}\t{}\n'.format(username,sex)) while True:
username = input('姓名:')
if ''in username:
username = username[1:]
infor_entry(username)
else:
infor_entry(username,'女')