1.函数定义及其运行特点
函数结构:
函数名(参数):
函数体
return(没有return怎默认return为none)
函数的调用:
函数名(参数)
举例:
def add(x,y):
result=x+y
return result
def print_code(code):
print(code)
a=add(1,2)
b=print_code('python')
print(a,b)
结果为:
pyhon
3 None
解释:先执行add(1,2)将return 赋值给a,然后执行print_code('python'),打印python,因为无return,则默认return为none,赋值给b,然后执行print(a,b)
2.如何让函数返回多个结果
def damage(skill1,skill2):
damage1=skill1*3
damage2=skill2*3
return damage1,damage2
#python是动态返回值(自动匹配返回值类型,所以可直接通过return返回多个值,此时默认返回值是tuple(元组)
#小提醒,return后面的语句不执行
damages=damage(1,2)#damages默认为tuple类型
#也可以通过这样的方式
skill1_damage,skill2_damage=damage(1,2)
#这样两个结果依次返回赋值skill1_damage和skill2_damage
#这种操作叫序列解包
3.序列解包,链式赋值
a=1;b=2;c=3可改写为a,b,c=1,2,3
d=1,2,3等同于d=(1,2,3)
a=1;b=1;c=1可改写为a=b=c=1
4.必须函数和关键字函数
def add(x,y):#x y是形参
result=x+y
return result
a=add(1,2)#1 2是实参
#当def(x,y)设计完成后,add(1,2)也必须给两个参数,这两个参数叫必须参数,不给会报错
b=(y=3,x=1)
#x=1,y=3这个叫关键字参数,可以不用管add(x,y)的顺序,直接指定形参x和y对应的实参是什么。好处是,不管用形参顺序,直接赋值
5.默认参数
def add(x,y=1):#y变成默认参数,如果y没有给出实参,则默认值为1
result=x+y
return result
a=add(1)#x=1,y=1
b=add(1,2)#x=1,y=2
def add(x,y=1,z):#不允许这样写
pass
def add(x,z,y=1):#改写成这样,给默认参数的一起放在后面
pass