Python核心程式設計 第八章

2021-06-28 12:40:55 字數 2189 閱讀 8070

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

3

x if c else y

2.迭代序列有三種方法。

通過序列項迭代:

>>> namelist=['walter',"nicole",'steven','henry']

>>> for eachname in namelist:

... print eachname, "lim"

...walter lim

nicole lim

steven lim

henry lim

通過序列索引迭代

>>> for nameindex in range(len(namelist)):

... print "liu,",namelist[nameindex]

...liu, walter

liu, nicole

liu, steven

liu, henry

使用項和索引迭代

使用enumerate()函式

>>> for i, eachlee in enumerate(namelist):

... print "%d %s lee" % (i+1, eachlee)

...1 walter lee

2 nicole lee

3 steven lee

4 henry lee

3.如果在需要子句塊的地方不寫任何語句,直譯器會提示你語法錯誤。因此,python提供了pass語句,它不做任何事情——即nop(no operation).

4.在python中,你可以在while和for迴圈中使用else語句。在迴圈中使用時,else子句只會在迴圈完成後執行,也就是說break語句也會跳過else塊。

def showmaxfactor(num):

count = num/2;

while count > 1:

if num %count == 0:

print 'largest factor of %d is %d' % (num, count);

break;

count -= 1;

else:

print num, 'is prime';

for eachnum in range(10,21):

showmaxfactor(eachnum);

5. 列表解析:

[expr  for  iter_var   in   iterable]   //核心是for迴圈,它迭代iterable物件的所有條目,前面的expr應用於序列的每個成員,最後的結果值是該表示式產生的列表。

[expr   for   iter_var  in  iterable  if  cond_expr]  //這個語法會在迭代時過濾/捕獲滿足條件表示式cond_expr的序列成員

6.生成器表示式:

並不是真正建立數字列表,而是返回乙個生成器,這個生成器在每次計算出乙個條目後,把這個條目「產生」出來,生成器表示式使用了「延遲計算」,所以在使用記憶體上更有效。

(expr  for  iter_var  in  iterable  if  cond_expr)

為了避免建立龐大的列表,我們可以使用生成器表示式來操作。

rows = [1,2,3,17];

def cols():

yield 56

yield 2

yield 1

x_product_pairs = ((i, j) for i in rows for j in cols());

for pair in x_product_pairs:

print pair

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....

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...