首頁  >  文章  >  資料庫  >  《python基礎教程》筆記之條件語句與迴圈語句

《python基礎教程》筆記之條件語句與迴圈語句

黄舟
黄舟原創
2016-12-20 17:23:051054瀏覽

布林變數

下面的值會被解釋器看做假(false):

False None 0 "" () {} []

其它的一切都被解釋為真。

>>> True
True
>>> False
False
>>> True == 1
True
>>> False == 0
True
>> True + False +42
-- 用來轉換其它值,如

>>> bool([])

False

>>> bool('hello,world')
True

條件語句

if else elif -- 判斷兩個變數是同一個物件

>>> x=y=[1,2,3]

>>> z=[1,2,3]

>>> x == y

True

>>> x == z
True
>>> x is y
True
>>> x is z
False

上例中可見,因為is運算子是判定同一性的。變數x和y都被綁定在同一個列表上,而變數z被綁定在另一個具有相同數值和順序的列表上。它們的值可能相同,但是卻不是同一個物件。

in 和not in -- 成員資格運算符

assert -- 當條件不為真時,程式崩潰

>>> x = 5

>>> assert 0>>> assert 5

Traceback (most recent call last):
  File "", line 1, in
    assert 5AssertionError

範圍函數,它包含下限,但不包含上限,如

>>> range(0,10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for num in range(0, 10):    PRint num,

結果如下


>>> 

0 1 2 3 4 5 6 7 8 9


循環字典,可以使用序列來解包,

= 'x':1, 'y':2}for key, value in d.items():    print key, 'corresponds to', value

結果

>>> 

y correspon

結果


>>> 

y 1

 zip -- 可以將任意多個序列「壓縮」在一起,然後返回一個元組的列表,同時他可以應付不等長的序列,當最短的序列「用完」時就會停止,如


>>> zip(range(5), xrange(10000))
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]

>>> names=['a', 'b', 'c']

>>> ages = [45, 23 ,98]

>>> zip(names, ages)

[('a', 45) , ('b', 23), ('c', 98)]

並行迭代,如

names=['a', 'b', 'c']
ages = [45, 23 ,98] for name, age in zip(names, ages):    print name, 'is', age, 'old'

結果


>>> 
a is 45 old

b

>>> 

a is 45 old

b
>>> 
a is 45 old
b

>>編號迭代-- 迭代序列中的對象,同時也要取得目前物件的索引,如

names=['Mr.a', 'Ms.b', 'Mr.c']for index, name in enumerate( names):    if 'Mr' in name:

       names[index] = 'nan'for name in names:    print name,

結果

>> reversed) -- 作用域任何序列或可迭代對像上,不是原地修改對象,而是返回翻轉或排序後的版本,但是返回對像不能直接對它使用索引、分片以及調用list方法,可以使用 list類型轉換回傳的對象,如

>>> sorted([4,3,8,6,3,])

[3, 3, 4, 6, 8]

>>> sorted('hello, world! ')

[' ', '!', ',', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r' , 'w']

>>> list(reversed('hello, world!'))
['!', 'd', 'l', 'r', 'o', 'w', ' ', ',', 'o', 'l', 'l', 'e', 'h']
>>> ''.join(reversed('hello, world!'))
'!dlrow ,olleh'

break/continue -- 跳出循環/繼續下一輪循環

循環中的else子句-- 如果循環中沒有呼叫break時,else子句執行,如

from math import sqrtfor n in range(99 , 81, -1):

   root = sqrt(n)    if root == int(root):        print n        breakelse :    print n        breakelse :  

Didn't dind it!

列表推導式--輕量級循環

列表推導式是利用其它列表創建新列表的一種方法,如

>>> [(x,y) for x in range(3) for y in range(3)]
[(0, 0) , (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
>>> girls = ['alice', 'bernice', 'clarice']
>>> boys = ['chris', 'arnold', 'bob']
>>> [b+'+'+g for b in boys for g in girls if b[0] == g[0]]
['chris+clarice', 'arnold+alice', 'bob+bernice']

 以上就是《python教學基礎》筆記之條件語句和循環語句的內容,更多相關內容請關注PHP中文網(www.php.cn)! 


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn