高級特性
生成器
讀取生成器元素的兩種方式:
•g.next()
•for循環讀取; (生成器實質上是可迭代對象);
•列表生成式(列表生成式是Python 內置的非常簡單卻強大的可以用來創建 list的生成式), 當生成時元素即打印, 會佔用內存;
[i for i in range(100)]
Fibonacci數列:
1, 1,2, 3, 5,8, 13, 21...
# 生成 fib 數列的函數, x 代表最終生成的數列元素個數;
python中兩值交換
# 先構造右邊的元組(y,x),即(4,3);
# 然後將元組的值依次賦給x,y;
yield關鍵字
# 生成 fib 數列的函數, x 代表最終生成的數列元素個數;
例1
例2
生成器實戰應用: 實現生產者消費者模型(有無緩衝區)
•無緩衝區
•有緩衝區
生成器實戰應用: 迷你聊天機器人
# 函數中 yield , 代表調用函數, 返回值爲生成器;
# 函數中 yield , 代表調用函數, 返回值爲生成器;