Python核心程式設計 第八章 條件和迴圈

2021-07-12 04:49:24 字數 1577 閱讀 5459

如果乙個復合語句(if子句,while或for迴圈)的**僅僅包含一行**,可以和前面的語句寫在同一行上:

elif語句(else-if)

條件表示式(三元操作符)

x if c else y

計數迴圈:

count=0

while(count

count +=1

無限迴圈:while true

range()內建函式的完整語法:

range(start, end, step=1)

range()會返回乙個包含所有k的列表,這裡start<=k每次遞增step,step不可以為0,否則將報錯

xrange()類似range(),不過更使用於很大的範圍,

只被用在for迴圈中,在for迴圈外沒有意義

zip函式接受任意多個(包括0個和1個)序列作為引數,返回乙個tuple列表

break語句:用於結束當前迴圈然後跳轉到下條語句

continue語句:

pass語句:它不做任何事情--即nop

迭代器:迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,知道所有的元素被訪問完結束。迭代器只能往前不會後退,不過這也沒什麼,因為人們很少在迭代途中往後退。

迭代器的兩個基本方法:

__iter__()方法:返回迭代器物件本身

可變物件和迭代器:

除列表外的其他序列都是不可變的

建立迭代器:

對乙個物件呼叫iter()就可以得到它的迭代器

生成器:是特定的函式,允許返回乙個值,「暫停」**的執行,帶有 yield 的函式在 python 中被稱之為 generator(生成器)

yield 的作用就是把乙個函式變成乙個 generator,帶有 yield 的函式不再是乙個普通函式,python 直譯器會將其視為乙個 generator,呼叫 fab(5) 不會執行 fab 函式,而是返回乙個iterable 物件!在 for 迴圈執行時,每次迴圈都會執行 fab 函式內部的**,執行到yield b 時,fab 函式就返回乙個迭代值,下次迭代時,**從 yield b 的下一條語句繼續執行,而函式的本地變數看起來和上次中斷執行前是完全一樣的,於是函式繼續執行,直到再次遇到 yield。看起來就好像乙個函式在正常執行的過程中被 yield 中斷了數次,每次中斷都會通過 yield 返回當前的迭代值。

Python核心程式設計 第八章

1.三元操作符 x,y 4,3 if x y smaller x else smaller y smaller 3 smaller 0 smaller x smaller 3 smaller x if x smaller 3x if c else y 2.迭代序列有三種方法。通過序列項迭代 name...

Python核心程式設計 第八章練習

再這個題中,我試圖用xrange代替range來解決問題,但是結果輸出了 xrange 2,26,4 這樣奇怪的答案。然後才理解了書上的 xrange不產生列表 這句話的含義。python ifname main numbers raw input please input from,to,incr...

python核心程式設計 第八章 8 15 練習

usr bin python coding utf 8 8 2.迴圈.編寫乙個程式,讓使用者輸入三個數字 f rom,t o,和 i ncrement 以 i為步長,從 f 計數到 t 包括 f 和 t 例如,如果輸入的是 f 2,t 26,i 4 程式將輸出 2,6,10,14,18,22,26....