python入门15 函数
函数的主要作用是实现代码复用
1 python内置函数
2 匿名函数lambda
3 自定义函数 def functionname(arg):...
#coding:utf-8 #/usr/bin/python """ 2018-11-11 dinghanhua 函数 """ '''内置函数''' print(round(2.345,2)) #四舍五入,保留2位小数;绝对值 print(abs(-23.333)) #绝对值 '''匿名函数 lambda''' lambda x: x**2 #匿名函数 print(list(map(lambda x:x**3,(1,2,3)))) #x的3次方 print(list(filter(lambda x:x%2==0 , [1,2,33,44]))) #取偶数
'''自定义函数''' '''函数定义''' def funcname(arg,sign): '''函数说明''' print('arg=%s,sign=%s'%(arg,sign)) return '''带缺省值的函数''' def funcname2(name,nation = 'china'): #第二个参数带缺省值,缺省参数放到最后 print('name is %s,nation is %s'%(name,nation)) return name,nation '''函数调用''' #不带参数名,按顺序赋值 res = funcname('wegjoweg','no sign') print('没有返回值,返回:',res) #指定参数名,顺序可打乱 funcname(sign = 2,arg = 'ok') #缺省参数未传参 res = funcname2('小明') print(res) #缺省参数传参 res = funcname2('peter','Americia') print('返回多个值,返回的是一个tuple:',res)
'''缺省参数=list 出现的异常''' def func(val,list=[]): list.append(val) return list list1 = func(10) list2 = func('abc',[]) list3 = func('2') print(list1,list2,list3) #[10, '2'] ['abc'] [10, '2'] list1和list3同一个地址,均指向缺省参数的内存地址 #规避以上问题,list=None def func(val,list=None): if list is None: list = [] #每次创建一个 list.append(val) return list list1 = func(10) list2 = func('abc',[]) list3 = func('2') print(list1,list2,list3) #[10] ['abc'] ['2']
'''可变参数*arg,取出来是元组''' def func(name,*other): print('name=%s,other=%s'%(name,other)) func('john',18,'一年级') func('peter',20) '''可变参数**arg,取出来是字典''' def func(name,**other): print('name=%s,other=%s'%(name,other)) func('john',age=18,grade='一年级') other = {'age':18,'grade':'grade 1'} func('peter',**other)
the end!
当情绪低落,烦躁的时候,学技术并整理成博客能忘却所有烦恼。技术改变心境。