一:为什么要有函数?
设置一次,以后调用方便,谁都可以用。
二:函数的由来
s='hello world'count=0for i in s: count+=1print(count)
如果:计算hello China呢,于是就有要定义函数,调用
def func(s): count=0 for i in s: count+=1 return counts='hello world'ff=func(s)print(ff)
注意两点:
1 定义函数时候跟着是形参,调用时候是实参,然后给你要计算东西放在return后面另起一行
2 不写return 返回值是none
写了return 后面什么都没写或者写了个none 返回none,并且后面并排的程序不执行
只有正常书写return count 并且现在调用才有返回值。
return可以返回多个值用元祖将返回值接收
def func1(): return 1,2,3,'alex'def func2(): return '护士','女教师','丝袜'ret=func1()print(ret)ret=func2()print(ret)
打印结果 是元祖
用多个值接收return 返回多个值分别打印
def func1(): return 1,2,3,'alex'def func2(): return '护士','女教师','丝袜'def func(): a,b,c,d=ret print(a,b,c,d)ret=func1()print(ret)ret=func2()print(ret)
三:参数
1 形参和实参
def func(s): 是形参
s='hello world'
ff=func(s) 这个是实参
2 多个参数 三元运算法则
def max(x,y): z=x if x>y else y return zfunc=max(10,20)print(func)
计算结果:
3 位置参数
1 按照位置传参
def max(x,y): z=x if x>y else y return zfunc=max(10,20)print(func)
2 按照关键字传参 可以不按照顺序
def max(x,y): z=x if x>y else y return zfunc=max(y=10,x=20)print(func)
3 混合传参(先按照位置传参,然后按照关键字传参)
def max(a,b,x,y,): z=x if x>y else y return z d=a if a>b else b return dfunc=max(50,40,y=10,x=20)print(func)
打印结果:
为什么是20?
因为return z 之后不走下面a,b
注意注意
位置参数必须在关键字参数的前面
对于一个形参只能赋值一次
站在形参角度:位置参数必须传值
def student_sex(name,sex='male'): print(name,sex)student_sex('alex')student_sex('苍老师','female')