函数是组织好的,可重复使用,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率,减少代码冗余。python的内置函数如:print()、input()。自定义函数代码如下:
#定义一个简单函数
def sayHello():
print("hello")
sayHello()
def getName(name):
print(name)
getName("pengming")
#计算面积函数
def area(width,height):
return width*height
w=int(input("请输入宽:"))
h=int(input("请输入高:"))
print("面积为:%d"%area(w,h))
def persioinfo(name, age=10):#默认参数必须放在非默认参数之后,有默认值可以不传参数,没有则必须传值
print("年龄:", age)
print("姓名:", name)
return
persioinfo("小明", 18)
persioinfo("小萌")
def personinfo(age,*infos): #参数前加一个*,代表将所有数据放入一个元组
print(age)
for var in infos:
print(var)
return
personinfo(18,"小红","长沙")
personinfo(18,"小明","长沙","python",157.5)
#参数前加**,代表字典
other={"城市":"长沙","爱好":"编程"}
def a1(name,age,**otherInfo):
print("姓名:",name,"年龄",age,"其他",otherInfo)
a1("小明","28",城市=other["城市"],爱好=other["爱好"])
#组合参数函数
def exp(p1,p2,df=0,*vark,**kw):
print("p1=",p1,"p2=",p2,"df=",df,"vark=",vark,"kw=",kw)
exp(1, 2)
exp(1,2,3)
exp(1,2,3,"x","y")
exp(1,2,3,"x","y",c=1,d=2,e=3)
exp(1,2,3,"x","y",5,c=1,d=2,e=3)
递归函数
函数在内部调用自身,这个函数就称作递归函数
#递归函数
def fact(n):
if n==1:
return 1
return n * fact(n-1)
print(fact(5)) #5*4*3*2*1
匿名函数
#使用def定义函数
def func(x,y):
return x+y
a=1
b=3
print("两数之和为:",func(a,b))
#使用lambda定义函数 匿名函数
getSum=lambda p,q:p+q
print("2两数之和为:",getSum(a,b))
局部变量和全局变量
total=0 #全局变量
def sum(arg1,arg2):
# global total 将对局部变量的操作改为对全局变量的操作
total=arg1+arg2 #局部变量
print("局部变量:",total)
return total
def totalPrint():
print("total的值为:",total)
return total
print("和为:",sum(10,20))
totalPrint()
print("全局变量:",total)