一、python生成器
python生成器另乙個重要特性,就是能夠利用next函式與呼叫的**進行互動。yield變成了乙個表示式,而值可以通過名為send的新方法來傳遞:
def psychologist():
print('please tell me your problems')
while true:
answer = (yield)
if answer is not none:
if answer.endswith('?'):
print("don't ask yourself too much questions")
elif 'good' in answer:
print("ahh that's good, go on")
elif 'bad' in answer:
print("don't be so negative")
elif answer in ('q', 'quit'):
print("goodbye")
yield
return
else:
print("please continue")
if __name__ == "__main__":
print("starting psychologist session, type 'q' or 'quit' to end session")
freud = psychologist()
for phrase in freud:
problem = input("> ")
freud.send(problem)
二、for...else...語句
在for迴圈之後使用else子句,可以在迴圈「自然」結束而不是被break語句終止時執行乙個**塊。這一語法在某些情況下很有用,因為它有助於刪除一些「哨兵」變數,如果for語句自然結束時使用者想要儲存資訊,可能會需要這些變數。
for number in range(1):
break
else:
print("this will not be printed")
上面這段**無列印輸出,因為是被break語句終止的。
for number in range(1):
pass
else:
print("this will be printed")
該段**將輸出列印輸出,因為for語句是自然結束的。
Python高階語法
函式式 程式設計概念 要了解什麼是函式式程式設計 什麼是函式 這兩者的區別 高階函式的特點 能接收函式作為引數 注意 map 是 python 內建的高階函式,它接收乙個函式 f和乙個list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。reduce 函式也...
Python高階語法
最近重新看了網上的python教程,補充學習了一些之前用的較少的用法 字典 注意字典中 key 是亂序的,也就是說和插入 的順序是不一致的。如果想要使用順序一致的字典,請使用 collections 模組 中的 ordereddict 物件 迭代器 python 中的 for 句法實際上實現了設計模...
Python高階語法 函式
所謂函式就是乙個 塊,函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。二.匿名函式 三.map函式 四.reduce函式 五.filter函式 六.sort函式 七.幾種函式的舉例 def 函式名 引數 函式體 任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數 傳的...