def 默认参数,默认参数可以多个,一定要放在参数尾部
def driver(t,name='默认值'): temp=name+'还是个孩子 ' return temp print(driver('mornezh','budong '))#budong 还是个孩子 ,前面没啥用,t布鞋,函数可为空,默认后面参数
def 动态参数 *,**
def driver(*t): print(t,type(t)) print(driver(1,(1,2,3),[2,4,5],{'2':2,"32":'24'})) #(1, (1, 2, 3), [2, 4, 5], {'32': '24', '2': 2}) <class 'tuple'>,将字典和列表放入一个元祖里面 ====两星============================ def driver(**t): print(t,type(t)) print(driver(k1=123,k2=456))#{'k1': 123, 'k2': 456} <class 'dict'>
动态参数实例
def driver(p,*y,**t): print(p,type(t)) print(y, type(t)) print(t, type(t)) print(driver(123,243,5353,k1=123,k2=456))# '''123 <class 'dict'> (243, 5353) <class 'dict'> {'k2': 456, 'k1': 123} <class 'dict'> 默认第一个参数放在第一个位置,后面两个参数放在第二个位置,带有等于的分别列入字典里'''
局部变量和全局变量
在函数里面的变量叫局部变量和外面没有任何关系
global
x=50 def func(): global x print ('x is', x) x = 2 print ('Changed local x to', x) func() print ('Value of x is', x) #x is 50 调用函数 传入50,然后全局变量设置为2 #Changed local x to 2 #Value of x is 2
========
计算字母数字空格出现的次数
def fun(q): a1=0 apance=0 dight=0 othat=0 for i in q: if i.isdigit(): #字数出现的次数 dight+=1 elif i.isspace():#空格出现的次数 apance+=1 elif i.isalpha(): #字母出现的次数 a1 += 1 else: othat+=1 return (a1,apance,dight,othat) print(fun('a sd98 12@'))#(3, 2, 4, 1) 字母出现3词,空格出现两次,数字出现3词,其它出现0词
判断文中有没有空格,如果有返回False
1 def has(args): 2 ret=True 3 for i in args: 4 if i.isspace(): 5 ret=False 6 return ret 7 8 result=has("sad12_ daf") 9 print(result)
判断一个列表长度 如果大于2,返回前两个
def fun(arg): if len(arg)>2: r=arg[0:2] return r return arg li=[123,122,52] #[123, 122] print(fun(li))
参数传递,列表变化
def fun(arg): ret=[] for i in range(len(arg)): if i%2==1: ret.append(arg[i]) else: pass return ret li=[11,22,33,44,55,66,77,88,99] r=fun(li) print(r) #传参数,索引会变动,需要重新建立列表,加入
lambda表达式
def fun(a1,a2): return a1+a2 fun1= lambda a1,a2:a1+a2 print(fun(4,5),fun1(4,5))##9 9