#函数(上)
def output():
print('yyy')
output()
#想要查看一个函数的文档字符串,则可以通过_doc_,(sum2._doc_)
#将两个实参位置调换发生错误
def indn(school='qianfeng',name='fdd'):
print('姓名:%s\t学校:%s'%(name,school))#错误,顺序不对
indn(score=98,name='xiao')#允许位置不同
#不定长参数
def mySum(a=0,b=0,*args):
print(a,b,args)
sum=a+b
for n in args:
sum+=n
return sum
print(mySum(1,2))
print(mySum(1,2,3))
print(mySum(1,2,3,4))
#*的使用
def mySum(a,b,c):
return a+b+c
tuple1=(1,2,3)
print(mySum(*tuple1))
list1=[1,2,3]
print(mySum(*list1))
#**的使用
def mySum(a,b,c):
return a+b+c
dict={'a':1,'b':2,'c':3}
print(mySum(**dict))
#数字、字符串、与元组是不可变类型,列表、字典是可变类型
#不可变:改变某个变量时,把原来的值复制一份后再改变
#如果函数定义省略return语句或没有返回值默认输出None
#全局变量
def fun():
global x
x=0
print(locals())
#函数的嵌套调用
def fun2():
print('fun2()开始')
fun1()
print('fun2()结束')
fun2()
#函数递归调用
def f(n):
if n==0:
return 1
return n*f(n-1)
print('5!=%d'%f(5))#最好不要用,容易死循环