標籤:blog 常見 ble gpo code class style 執行函數 turn
一: list 產生式
#codeing:UTF-8#__author__:Duke#date:2018/3/9/009# list 產生器a = [x for x in range(10)]print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]a = [x*x for x in range(10)]print(a) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]def f(n): return n**3a = [f(x) for x in range(10)]print(a) #[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
二:產生器
產生器共兩種建立方法# 一: 小括弧法a = (x*2 for x in range(10))print(a) #a 為 generator(產生器) objectprint(next(a)) # == print(a.__next__())print(next(a)) # == print(a.__next__())#genator 只能一個一個的接著讀## #產生器本來就是一個可迭代對象(iterable)for i in a: print(i)#二: 關鍵字法def fun(): print("ok1") yield 1 #這是next 時的傳回值 print("ok2") yield 2a = fun() #此時的fun()是一個產生器對象,不在是一個函數,它不會執行函數中的內容,next(a) # 完成第一個yield 的內容#print(next(a))## 完成第二個yield 的內容 ,先執行next(a)# 會列印OK2 ,並返回2 ,所以列印的 next(a)就是列印傳回值2#什麼是可迭代對象? 對象有 iter 方法的對象就是迭代對象#常見的有 list tuple dict set# a = set("a")# a.__iter__()def fib( num ): n,a,b = 0,0,1 while n<=num: print(b) a,b = b,a+b n= n+1fib(6)
python學習day10