1)if條件測試
python的比較操作
所有的python物件都支援比較操作
測試操作符('=='操作符測試值的相等性; 'is'表示式測試物件的一致性)
python中不同型別的比較方法
數字:通過相對大小進行比較
字串:按照字典次序逐字元進行比較
列表和元組:自左至右比較各部分內容
字典:對排序之後的(鍵、值)列表進行比較
python中的真假:
1、任何非0數字和非空物件都為真;
2、數字0、空物件和特殊物件none均為假;
3、比較和相等測試會遞迴地應用於資料結構中;
4、返回值為true或false;
組合條件測試:
x and y: 與運算
x or y: 或運算
not x: 非運算
注意: and或or運算會返回真或假的物件,而不是true或者false
and和or是短路操作符
例: >>>a = true
>>>print a and 'a = t' or 'a = f'
'a=t' 會返回『a = t』,若不理解自行補充布林運算
if測試的語法控制結構
if boolean_expression1:
suite1
elif boolean_expression2:
suite2
...else:
else_suite
注意:elif、else語句均是可選的
僅用於佔位,而後填充相關語句時,可以使用pass
if/else三元表示式
if x :
a = y
else :
a = z
可以改寫成 a = y if x else z
語法格式:
expression1 if boolean_expression else expression2
(如果boolean_expression的值為true,則條件表示式的結果為expression1,否則為expression2)
2)while迴圈
用於編寫通用迭代結構
頂端測試為真即會執行迴圈體,並重複多次直到為假後執行迴圈後的其他語句
語法格式:
while bool_expression:
while_suite
else:
else_suite
注意:else分支為可選部分
只要boolean_expression的結果為true,迴圈就會執行
boolean_expression的結果為false時終止迴圈,如果有else分支,則會執行
break: 跳出最內層的迴圈;
continue: 跳到所處的最近層迴圈的開始處;
pass: 佔位語句
else**塊:迴圈正常終止才會執行;如果迴圈終止是由break跳出導致的,則else不會執行;
while迴圈語法格式擴充套件
while bool_expression1:
while_suite
if boolean_expression2:
break
if boolean_expression3:
continue
else:
else_suite
例: 使用鍵盤輸入資料到列表內,直到輸入q或quit時停止
>>>test = [ ]
>>>while true:
x = raw_input('enter an entry: ')
if x == 'q' or x == 'quit':
break
else:
3)for迴圈
用於遍歷任何有序的序列物件內的元素
可用於字串、元組、列表和其它的內建可迭代物件,以及通過類所建立的新物件
語法格式:
for expression1 in iterable:
for_suite
else:
else_suite
注意: expression或是乙個單獨的變數,或是乙個變數序列,一般以元組的形式給出
例:>>> t = [(1,2),(3,4),(5,6),(7,8)]
>>> for (a,b) in t:
print a,b
1 23 4
5 67 8
for迴圈形式擴充套件
語法格式:
for expression in iterable:
for_suite
if boolean_expression2:
break
if boolean_expression3:
continue
else:
else_suite
for迴圈比while迴圈執行速度快
python中提供了兩個內建函式,用於在for迴圈中定製特殊的迴圈(range或xrange 與zip)
4)range函式與zip
range:一次性地返回連續的整數列表
xrange:一次產生乙個資料元素,相較於range更節約空間
zip:返回並行的元素元組的列表,常用於在for迴圈中遍歷數個序列
range函式:
非完備遍歷(用於每隔一定的個數元素挑選乙個元素)
>>> range(0,10,2)
[0,2,4,6,8,10]
>>> s = 'how are you ?'
>>> for i in range(0,len(s),2):
print s[i]
h w a e y u ?
修改列表
>>> l = [1,2,3,4,5]
>>> for i in range(len(l)):
l[i]+=1
>>> print l
[2,3,4,5,6]
zip實現並行迭代
例1:>>> l1 = [ 1,2,3,4,5 ]
>>> l2 = ['a','b','c','d','e']
>>> zip(l1,l2)
[(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e')]
動態構造字典
例2: 已有 keys = [ 'x','y','z'] values = [1,2,3] 使用迴圈生成字典使其一一對應
>>> dict1 = {}
>>> keys = [ 'x','y','z']
>>> values = [1,2,3]
>>> for (k,v) in zip(keys,values):
dict1[k] = v
>>> print dict1
python流程控制 python之流程控制
電腦程式在解決某個具體問題時,包括三種情形,即順序執行所有的語句 選擇執行部分的語句和迴圈執行部分語句,這正好對應著程式設計中的三種程式執行結構流程 順序結構 選擇結構和迴圈結構。事實證明,任何乙個能用計算機解決的問題,只要應用這三種基本結構來寫出的程式都能解決。python語言當然也具有這三種基本...
mysql流程控制 MySQL 流程控制
流程控制 1 順序結構 程式從上往下依次執行 2 分支結構 多條路徑選擇一條 3 迴圈結構 在規定範圍內重複執行 一 分支結構 1 if函式 功能 實現分支流 語法 if 表示式1,表示式2,表示式3 執行順序 執行表示式1,成立返回表示式2的值,不成立則返回表示式3的值 應用 任何地方 例 if ...
Python程式控制流程
從左向右,從上到下執行。1 單分支 age int input 請輸出您的年齡 if age 18 print 你可以上網了 輸出結果 單分支僅能處理一種條件 注意 1 四個空格不等於乙個tab 2 python通過縮排判斷語句之間的層次關係 2 雙分支 請輸出您的年齡 if age 18 prin...