函数
一、函数是什么?
1.一个程序由一个个任务组成,函数代表一个任务或者功能
2.函数是代码复用的通用机制
二、函数的分类
1.内置函数:str()、list()、len()等函数
2.标准库函数:通过import语句导入库,使用其中定义的函数
3.第三方库函数
4.用户自定义函数
三、自定义函数
1.语法:
def 函数名 ([参数列表]):
"'文档字符串"' #函数的注释
函数体/若干语句
例:
def test1 ():
print("***********")
for x in range(5):
test1()
运行结果:
***********
***********
***********
***********
***********
2.注意:1、圆括号内有多个形参用逗号隔开
2、形参不用声明类型,也不用指定函数返回值类型
3、无参数,也必须保留圆括号
4、实参必须与形参一一对应
3.利用help(函数名.__doc__)可以打印函数的文档字符串
def print_star(n):
'''根据输入的n,,打印星号'''
prinnt("*"*n)
help(print_star.__doc__)
No Python documentation found for '根据输入的n,,打印星号'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.
4.自定义函数中return语句结束函数,并返回值,如果不包含return语句,返回None值
def print_ave(a,b):
return(a+b)/2
print(print_ave(3,5))
4.0
四、lambda表达式与匿名函数
1.lambda表达式可以用来声明匿名函数,只允许包含一个表达式
语法:
lambda arg1,arg2,arg3...:<表达式>
f=lambda a,b,c:a+b+c
print(f)
print(f(1,2,3))
lambda在列表中的用法
g=[lambda a:a*2,lambda b:b*3,lambda c:c*4]
print(g[0](6))
结果为12
五、eval()函数
1.功能:将字符串str当成有效表达式求值并返回结果
2.语法:
eval(source[,globals[,locals]])其中source是Python表达式,globals是字典,locals是任意映射对象
a=10
b=30
dict1=dict(a=100,b=300)
c=eval("a+b")
d=eval("a+b",dict1)
print(c)
print(d)
结果:
40
400
六、嵌套函数(封装隐藏,避免重复代码)
1.语法:
def f1():
函数体
def f2():
函数体
f2()
f1()
2.打印姓名练习
原代码
def printChineseName(name,familyname):
print("{0},{1}".format(familyname,name))
def printEnglishName(name,familyname):
print("{0},{1}".format(name,familyname))
利用嵌套函数
def printName(isChinese,name,familyname):
def inner_print(a,b):
print("{0},{1}".format(a,b))
if isChinese:
inner_print(familyname,name)
else:
inner_print(name,familyname)
printName(True,"三岁","易")
printName(False,"Lily","Brown")