定义函数的方式:
def 函数名字(参数):
内容....
#demo
def testDef(x):
print(x)
testDef(2)
#定义返回参数 return,如果没有执行完毕没有 return,则结果为None
def testDef(x):
return x*2
#定义空的函数[必须的写上pass,如果不写则会报错信息]:
def testDef(x):
pass
#,函数预留的时候也可以用pass
def testDef(x):
if x > 0:
return x * 2
else:
pass
#python函数返回的结果可以存在多个结果
def testDef(x, y):
if x > 0 and y > 0:
return 2 *x, 2* y
else:
return x,y
print(testDef(1,2))
#返回的结果为:(2, 4)
当返回多个结果的时候,相当于返回的是一个tupl有序列表
函数的参数:
#带参函数
def power(x):
print(x)
#默认参数函数[如果传递则按照传递算,如果没有传递则算是默认值,默认参数必须的放到传递参数后面]
>>> def power(x,y=5):
>>> print(x,y)
>>> power(2) #结果为 2 5
>>> power(2,3) #结果为:2 3
#如果有多个默认参数,可以选择性的赋值但是要带上参数名和参数值
>>> def enroll(name,age=6,sex='男'):
>>> print(name,age,sex)
>>> enroll('zhangsan') #zhangsan 6 男
>>> enroll('zhangsan',sex='女') #zhangsan 6 女
#默认参数的坑
>>> def add_end(l = []):
>>> l.append('end')
>>> return l
>>> add_end() #['end']
>>> add_end() #['end']
#原因:Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用#该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
#解决办法:
#1、每次都调用的时候都传递参数add_end([])
#2、定义的时候 默认l = None
>>> def add_end(l=None):
>>> if l == None:
>>> l = []
>>> l.append('end')
>>> return l
可变参数。。。未完待续。。。。