yield表达式 三元表达式

yield表达式

# x=yield 返回值
# def dog(name):
#     print(‘道哥%s准备吃东西啦...‘ %name)
#     while True:
#         # x拿到的是yield接收到的值
#         x = yield # x = ‘肉包子‘
#         print(‘道哥%s吃了 %s‘ %(name,x))
#
#
# g=dog(‘alex‘)
# g.send(None) # 等同于next(g)
#
# g.send([‘一根骨头‘,‘aaa‘])
# # g.send(‘肉包子‘)
# # g.send(‘一同泔水‘)
# # g.close()
# # g.send(‘1111‘) # 关闭之后无法传值

三元表达式

语法格式: 条件成立时要返回的值 if 条件 else 条件不成立时要返回的值

x=1
y=2

# res=x if x > y else y
# print(res)

res=111111 if ‘egon‘ == ‘egon‘ else 2222222222
print(res)

生成式

# 1、列表生成式
l = [‘alex_dsb‘, ‘lxx_dsb‘, ‘wxx_dsb‘, "xxq_dsb", ‘egon‘]
# new_l=[]
# for name in l:
#     if name.endswith(‘dsb‘):
#         new_l.append(name)

# new_l=[name for name in l if name.endswith(‘dsb‘)]
# new_l=[name for name in l]

# print(new_l)

# 把所有小写字母全变成大写
# new_l=[name.upper() for name in l]
# print(new_l)

# 把所有的名字去掉后缀_dsb
# new_l=[name.replace(‘_dsb‘,‘‘) for name in l]
# print(new_l)

# 2、字典生成式
# keys=[‘name‘,‘age‘,‘gender‘]
# dic={key:None for key in keys}
# print(dic)

# items=[(‘name‘,‘egon‘),(‘age‘,18),(‘gender‘,‘male‘)]
# res={k:v for k,v in items if k != ‘gender‘}
# print(res)

# 3、集合生成式
# keys=[‘name‘,‘age‘,‘gender‘]
# set1={key for key in keys}
# print(set1,type(set1))

# 4、生成器表达式
# g=(i for i in range(10) if i > 3)
# !!!!!!!!!!!强调!!!!!!!!!!!!!!!
# 此刻g内部一个值也没有

# print(g,type(g))
# print(next(g))
# print(next(g))

生成器表达式的应用

with open(‘笔记.txt‘, mode=‘rt‘, encoding=‘utf-8‘) as f:
    # 方式一:
    # res=0
    # for line in f:
    #     res+=len(line)
    # print(res)

    # 方式二:
    # res=sum([len(line) for line in f])
    # print(res)

    # 方式三 :效率最高
    # res = sum((len(line) for line in f))
    # 上述可以简写为如下形式
    res = sum(len(line) for line in f)
    print(res)

原文地址:https://www.cnblogs.com/chenyoupan/p/12569268.html

时间: 2024-10-08 07:26:17

yield表达式 三元表达式的相关文章

三元表达式 列表解析

三元表达式 # 三元表达式 # x=2 # y=3 # res=x if x > y else y #判断条件if x > y放中间,如果成立结果放判断条件左边,否则就放在右边 # print(res) #打印结果为y def max2(x,y): # if x > y: # return x # else: # return y return x if x > y else y #三元表达式:条件放中间,True放左边,False右边 print(max2(2,3)) 这,感觉没

三元表达式,递归,

三元表达式 三元表达式仅应用于: 1.条件成立返回一个值 2.条件不成立返回一个值. 若一般函数表达如下 比大小: def max2(x,y): if x>y: returrn x else: return y res=max2(10,11) print(res) 若我们用三元表达式表达: def max2(x,y): return x if x> y else y print(max2(10,11) 由此对比 三元表达式 就会比一般函数表达简单 不复杂, 由之前的几行代码 最后3行代码搞定

Python3 三元表达式、列表推导式、生成器表达式

Python3 三元表达式.列表推导式.生成器表达式 三元表达式 表达式中,有三个元素 name = input("请输入姓名: ")ret = '输入正确' if name == 'aaa' else '输入错误'print(ret)  列表推导式 #1.示例# 方法1egg_list1 = []for i in range(10): egg_list1.append('鸡蛋%s' % i)print(egg_list1) #方法2egg_list2 = ['鸡蛋%s' %i for

算法之二分法和三元表达式

算法之二分法 # 算法:解决问题的高效率方法 # 二分法:容器类型里面的数据必须要有大小顺序 l = [1,2,3,4,5,6,7,8,9,11,22,333,444,55555,666666,999999999999999] def func(l,num): if l == []: print('不在这里面') return length = len(l) middle = length // 2 if num > l[middle]: func(l[middle+1:],num) elif

叠加多个装饰器、yield表达式、三元表达式、生成式、函数的递归

叠加多个装饰器 # 一.叠加多个装饰器的加载.运行分析(了解***) # def deco1(func1): # func1 = wrapper2的内存地址# def wrapper1(*args,**kwargs):# print('正在运行===>deco1.wrapper1')# res1=func1(*args,**kwargs)# return res1# return wrapper1 # def deco2(func2): # func2 = wrapper3的内存地址# def

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

python学习笔记第九节(迭代器,生成器,三元表达式)

for循环相当于自动调动__iter__ for循环相当于上面这样每次__next__再打印一次 while循环的迭代方式,采用try的方式 判断是否为可迭代 判断是否为迭代器对象 加了蓝色段,可以调用原来的函数名 迭代对象 可以__iter__的迭代器 将__iter__之后的结果的迭代器对象 可以直接__next__的 生成器 迭代到yield后停止,相当于__next__函数加上yield后就是迭代器.可以每次__next__显示,每次显示到yield后停止,相当于return,但是下次_

三元表达式、列表解析、生成器

一.三元表达式 格式:result=值1 if x<y else 值2 满足if条件result=值1,否则result=值2 >>> 3 if 3>2 else 10 3 >>> 3 if 3>4 else 10 10 >>> 3+2 if 3>0 else 3-1 5 >>> 3+2 if 3>0 and 3>4 else 3-1 2 二.列表解析 1 s='hello' 2 res=[i.up

Day8:三元表达式、列表解析、生成器

一.三元表达式 格式:result=值1 if x<y else 值2 满足if条件result=值1,否则result=值2 >>> 3 if 3>2 else 10 3 >>> 3 if 3>4 else 10 10 >>> 3+2 if 3>0 else 3-1 5 >>> 3+2 if 3>0 and 3>4 else 3-1 2 二.列表解析 1 s='hello' 2 res=[i.up