2019年1月6日 没有nainai吃 习题1
1列举布尔值是False的所有值
0,False,'',[],{},(),None
2根据范围获取其中3和7整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和
def func(start,end): a=[] for i in range(start,end): if i%3==0 and i%7==0: a.append(i) return a x=func(1,50) print(x,sum(x),len(x)+1)
递归方法
def func2(s,e,a_num=0,b_sum=0): #如果不用默认参数,则会重新赋值为0 if s==e: return a_num,b_sum if s%3==0 and s%7==0: a_num+=1 #数量 b_sum+=s #求和 res=func2(s+1,e,a_num,b_sum) #s+1不断增加 return res print(func2(1,50))
3.函数的默认返回值 为none
4.break/continue/return的区别
break结束当前循环/continue结束本次循环并进入下一次循环/return结束函数返回结果,默认为none
5.函数传递参数时是引用还是复制:
引用
6.三元运算书写格式
变量=值 ——if条件——else值二
print(2 if 5>3 else 5)
7.lambda 表达式书写格式
函数名=lambda 行参:功能
fuc=lambda x:x+5 print(fuc(4))
8.使用set结合去的两个列表的相同元素集合
l1=[11,22,33] l2=[22,33,44] l1_s=set(l1) l2_s=set(l2) l3=l1_s&l2_s print(l3)
9.定义函数统计一个字符串中大写字母,小写字母,数字的个数,并以字典为结果返回给调用者
def test(shuru): x=0 y=0 z=0 for i in shuru: if i.islower(): x+=1 elif i.isnumeric(): y+=1 else: z+=1 return {'小写含有%s个'%x:x,'数字有%s个'%y:y,'大写有%s个'%z:z} print(test("abc11111ZSFA"))'''
10.位置参数,默认参数,可变长参数的特点
def func(x,*y,**z):#2个*一定要在1个*后面 print(x,y,z) func(1,2,3,4)
输出:1 (2, 3, 4) {}
def func(x,*y,**z): print(x,y,z) func(1,2,3,4,name=2,age=16)
func(1,*[1,2,3],)#中括号变成小括号,就用加*
func(1,*[1,2,3],{'name':1,'age':19})
func(1,[1,2,3],{'name':1,'age':19})
func(1,*[1,2,3],**{'name':1,'age':19}) #dic 前面必须加**
输出:
1 (2, 3, 4) {'name': 2, 'age': 16}
1 (1, 2, 3) {}
1 (1, 2, 3, {'name': 1, 'age': 19}) {}
1 ([1, 2, 3], {'name': 1, 'age': 19}) {}
1 (1, 2, 3) {'name': 1, 'age': 19}