1.使用def test(x): (使用def(关键字)定义函数,test是函数对象,x为参数)
‘注释’
2*x
return x
#函数可以传参数也可以不传参数
def test(x):#可以传参数也可以不传参数 ''' 2*x+1 :param x: 整型数字 :return: 返回计算结果 ''' y =2*x+1 return y print(test) a =test(3) print(a) def test():#可以传参数也可以不传参数 ''' 2*x+1 :param x: 整型数字 :return: 返回计算结果 ''' x = 3 y =2*x+1 return y a = test() print(a)2、函数的返回值的多种形态
def test01(): msg = "test01" # print(msg) def test02(): msg = "test02" # print(msg) return msg def test03(): msg = "test03" # print(msg) return 1,2,4,'a',['alex'],{'name':'alex'},None def test04(): msg = "test04" # print(msg) return {'name':'alex'} t1 = test01() #返回值数 =0 :返回None t2 = test02()#返回值数 =1 :返回object t3 = test03()#返回值数>1 :返回tuple(元组) t4 = test04()#返回值数 =1 :返回object print(t1) print(t2) print(t3) print(t4)3.函数的参数分为形参和实参,如:def test(x): #形参
#形参的特点,不占用内存空间,只有在调用时才会分配地址,调用完成之后就会被释放掉‘注释:描述代码功能’
print(x)#代码块
test(1)#实参
4.位置参数
#位置参数 :实参与形参位置一一对应,缺一不可,多一个也不行 def test(x,y,z):#形参 print(x) print(y) print(z) res = test(1,3,4)#实参5.关键字参数
#关键字参数:无需一一对应,缺一不行多一不行 def test(x,y,z):#形参 print(x) print(y) print(z) res = test(x=2,z=5,y=7)#实参6.位置参数必须在关键字参数的左边
#位置参数必须在关键字参数的左边 def test(x,y,z):#形参 print(x) print(y) print(z) # test(2,y=5,7)#报错 # test(2,5,y=7)#报错 test(2,5,z=7)#实参
7.形参的参数默认值
def handle(x,type = 'mysql'):#其中mysql是type的默认值,type是默认参数 print(x) print(type) #handle('hello')#只给x赋值,此时type 取默认值mysql handle('hello',type = 'sqlite')#也可以给默认参数赋值,此时打印type的值就是sqlite #handle('hello','sqlite') #此处type的值使用的是位置参数传值
8.参数组:**字典 *列表
*列表的例子
#参数组:**字典 *列表 def test(x,*args): print(x) print(args) # print(args[0][1]) #test(1,2,3,4,5,6) #args 返回的结果是个元组 #test(1,{'name':'alex'}) # test(1,[2,3,4,5,6]) test(1,*[2,3,4,5,6])**字典的例子
#**字典 def test(x,**kwargs): print(x) print(kwargs) test(1,y = 2,z = 3) # test(1,y = 2,z = 3,z = 4) #会报错,一个参数不能传两个值9.同时使用字典和列表参数
def test(x,*args,**kwargs): print(x) print(args,args[-1]) print(kwargs,kwargs['z']) # test(1, 1, 22, 3, 4,x= 1, y=2, z=3)#报错,传的x值与形参x重复 test(1,1,22,3,4,y = 2,z = 3) def test(x,*args,**kwargs):#同时传列表和字典的形参 print(x) print(args,args[-1]) print(kwargs,kwargs['y']) test(1,*[1,2,3],**{'y':1})
转载于:https://www.cnblogs.com/renzhiqiang/p/10861819.html