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}

 

posted @ 2019-01-06 16:41  小圣庄  阅读(131)  评论(0编辑  收藏  举报