生成器,set,参数,lambda,练习 内置函数all和any的区别

# ******** 用生成器计算,起始数字到结束,返回符合条件的
def func(start, end):  # 传入开始结束的值
    a = []             # 定义一个空列表,用于储存返回值
    if start == end:   # 判断开始数字和结束数字是否相同 
        print(a)

    for i in range(end): # 从0到结束
        if i > start:    # 判断如果i大于开始执行计算判断
            if i % 3 == 0 or i % 7 == 0:   # 判断条件
                a.append(i)     # 添加到列表中
    print(a)


func(1, 9)
 
 
# ****************用set找出 两个列表中同时拥有的数字
s1 = [11,2,22,3,4]
s2 = [11,2,33,4,5]
p = set(s1) & set(s2)  # 交集(&) 并集(|)补集:两个互补的(^)
print(p)

 
 
# ****** *args和**kwargs 的使用 不定长参数的使用
def func(*y,**z):
    print(y,z)
func(*[1,2,3],**{"name":"a"})   # 列表带有*执行时会去掉变为小括号,如果没有*会按照一个元素传给元组
# 带**会传给字典,没有会按照一个元素传给元组
# ********** return 的使用,没有return,结果为None
def func1(x=1, *y, **z):
    print(x, y, z) # 执行结果: 1 () {"name":"fuck"}
    return y
def func2(arg):
    ret = func1(name=arg)
    print(ret)     # 执行结果: ()
r = func2("fuck")
print(r)     # 执行结果:None

# ******* lambda 表达式
def func(a):
    return a + 100
func = lambda a:a+200   # 会执行这个函数
ret = func(10)
print(ret)             # 结果为210

内置函数all和any的区别:

all 如果为空返回True,如果非空,全真为真 否则为假

any 有一个真为真

猜你喜欢

转载自blog.csdn.net/weixin_42100915/article/details/80223529