09-09-周二_16-00-25
This commit is contained in:
@@ -157,6 +157,30 @@ ret = g.send('hello')
|
|||||||
print('***',ret)
|
print('***',ret)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- 生产包子的send版本
|
||||||
|
|
||||||
|
```python
|
||||||
|
# produce函数,实现生成器获取包子数组,使用send()函数,指定获取的数量,比如produce.send(2),得到['包子1','包子2']
|
||||||
|
# 反复使用send()可以获得包子序号是和前面连续的
|
||||||
|
def produce(prefix="包子", start=1):
|
||||||
|
cur = start
|
||||||
|
qty = yield # 预激活用的第一个 yield(接收第一次 send 的数量)
|
||||||
|
while True:
|
||||||
|
if qty is None:
|
||||||
|
qty = 1 # 如果传 None,就默认取 1 个
|
||||||
|
if qty < 0:
|
||||||
|
raise ValueError("数量必须是非负整数") # 主动抛出异常,直接让程序报错退出
|
||||||
|
res = [f"{prefix}{i}" for i in range(cur, cur + qty)]
|
||||||
|
cur += qty
|
||||||
|
qty = yield res
|
||||||
|
|
||||||
|
|
||||||
|
produce = produce()
|
||||||
|
next(produce)
|
||||||
|
print(produce.send(20))
|
||||||
|
print(produce.send(10))
|
||||||
|
```
|
||||||
|
|
||||||
## 列表推导式和生成器表达式
|
## 列表推导式和生成器表达式
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
@@ -68,6 +68,23 @@ print(squared)
|
|||||||
1. 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
|
1. 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
|
||||||
2. 求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
|
2. 求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
|
||||||
3. 将1000以内的素数放入一个列表中
|
3. 将1000以内的素数放入一个列表中
|
||||||
|
4. 推导式实现九九乘法表
|
||||||
|
|
||||||
|
```python
|
||||||
|
print("\n".join(["\t".join([f"{i}x{j}={i*j}" for j in range(1, i+1)]) for i in range(1,10)]))
|
||||||
|
|
||||||
|
# 1x1=1
|
||||||
|
# 2x1=2 2x2=4
|
||||||
|
# 3x1=3 3x2=6 3x3=9
|
||||||
|
# 4x1=4 4x2=8 4x3=12 4x4=16
|
||||||
|
# 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
|
||||||
|
# 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
|
||||||
|
# 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
|
||||||
|
# 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
|
||||||
|
# 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user