一 .python中函数定义:函数是逻辑结构化和过程化的一种编程方法
python 中函数定义方法:(为了完成某一个特定的功能而存在的) def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点: def:定义函数的关键字 函数名:日后根据函数名调用函数 ():内可定义形参,为函数提供数据 函数体:函数中进行一系列的逻辑运算,如发送邮件;计算出[22,33,44,55,66]中的最大数等... " " :文档描述(非必要,但强烈建议为你的函数添加描述信息)即注释 x+=1:泛指代码块或程序处理逻辑 return:定义返回值,当函数执行完毕后,可以给调用者返回数据 调用运行:可以带参也可以不带 函数名() 使用函数的好处: 1.减少代码重用 2.保持一致性,易维护 3.可扩展性
二.函数和过程
过程定义:过程就是简单特殊没有返回值的函数(python过程也是函数)
def test02(): msg = 'hello DaLang' print(msg) return msg def test03(): msg = 'CongHui' print(msg) return 1, 2, 3, ['dream'], {'name': 'alex'} t1 = test01() t2 = test02() t3 = test03() print(t1) print(t2) print(t3)
总结:
返回值数=0:返回None
返回值数=1:返回oinject
返回值数>1:返回y
三.函数参数
1.形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数的内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2.实参可以是常量/变量/表达式/函数等,无论实参是何种类型的量,在进行函数调用时,他们都必须有确定的值,以便把这些值传给形参。因此应预先用赋值,输入等办法使参数获得确定值。
# 改成用函数写 def calc(x,y): #形参 res = x**y #**表示平方 return res #函数遇到return 结束 c = calc (3,3) #实参 print (c)
3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无须固定)
#位置参数,必须一一对应,缺一不行多一也不行 def test(x,y,z): print(x) print(y) print(z) test (1,3,6)
#关键字参数,无须一一对应,缺一不行多一也不行 def test(x,y,z) print(x) print(y) print(z) test(x=6,y=5,z=7)
#位置参数必须在关键字参数左边 test(1,y=2,3) #报错 test(1,3,y=2) #报错 test(1,3,z=2) test(1,3,z=2,y=4) #报错
4.默认参数:
def handle(x,type=None): print(x) print(type) handle("hello")
5.参数组:*列表 **字典
def test(x,*args): print(x) print(args) print(args[2]) test(1,2,3,4,5,6)
#关键字参数
def test(x,**kwargs):
print(x)
print(kwargs)
test(2,y=2,z=3)
#test(1,y=2,z=3,z=3)#报错:一个参数不能传两个值
def test(x,*args,**kwargs):
print(x)
print(args,args[-1])
print(kwargs,kwargs['y']
test(1,2,3,4,5,y=8,z=7)