函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
任何一个比较牛逼的程序均由多个函数封装而成。
你可以定义一个由自己想要功能的函数,以下是简单的规则:
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体
例如:
def helloworld()
print("hello world")
helloworld()
输出:
hello world
再来个实例:
def fun(a, *hehe, **hahaha):
print("{0}--{1}--{2}".format(a, hehe, hahaha))
fun(1,2,3,4,5,x=1,y=2)
输出:
1--(2, 3, 4, 5)--{'x': 1, 'y': 2}
分析:
我使用了–来分割,可以看出来其中的赋值如下:
a = 1
hehe = 2, 3, 4, 5 list 一一对应过来
hahaha ={"x": 1, "y": 2} dict 一一对应过来
也就是:
*xxx 一个 * 代表 → list
**xxx 两个 ** 代表 → dict
def plus(a,b,c):
return a+b+c
print(plus(1,2,3))
## 匿名函数
aa = lambda x,y,z:x+y+z
print(aa(3,3,3))
输出:
6
9
注意观察上面的Python示例代码,f = lambda x,y,z:x+y+z 中的关键字lambda表示匿名函数,
# 冒号:之前的x,y,z表示它们是这个函数的参数。
# 匿名函数不需要return来返回值,表达式本身结果就是返回值。
t = lambda : True
print (t)
输出:
True
lambda x,y=3: x*y #允许参数存在默认值
a = lambda *z:z #*z返回的是一个元祖
print(a('Testing1','Testing2'))
输出:
('Testing1', 'Testing2')
再次反过来看下之前的阶乘题目:
def jc(n):
sum = 1
if n == 1:
return sum
else:
for i in range(1, int(n)+1):
sum *= i
return sum
def main():
sumt = 0
number = input("pls input a number: ")
for i in range(0, int(number)+1):
sumt += jc(i)
print(sumt)
if __name__ == '__main__':
main()
分析一下:
main()主函数调用 main()函数,main()函数再次调用jc()