第4章 控制語句
if<條件1>:
?? <語句1>
elif<條件2>:
?? <語句2>
elif<條件3>:
?? <語句3>
......
else:
?? <語句n>
說明:elif語句,只要有一個條件成立,就會將其后的一個部分語句執行后推出整個if語句
if三元運算符
<表達式1> if <條件> else <表達式2>
a=None
b=3
x=b if a is not None else 0?? #x 的值為 0
if語句嵌套
if<條件>:
??? if<條件>:
??????? <語句1>
??? else<條件>:
??????? <語句2>
else:
?? <語句3>
for循環執行語句,else中的<語句2>只有在循環正常退出時執行
for <循環變量> in <遍歷對象>:
??? <語句1>
else:
??? <語句2>
break和continue
例:
for i in [1,2,3,4,5]:
??? print(i)
??? if i==2:
??????? continue
??? print(i,"的平方是:",i*i)
??? if i==4
??????? break
else:
??? print('循環結束!')
》》》
1
1的平方是:1
2
3
3的平方是:9
4
4的平方是:16
for語句與range()函數
for i in range(4)
range([start,] stop[,step])
start默認為0
for 語句使用range函數可以構建基于循環次數的循環程序,也可以義range()生成的數字作為索引來訪問列表、元組、字符串中的值,還可以對遍歷的序列實行處理,得到相關的數據
for語句與內置迭代函數(seq為序列)
enumerate(seq)? 編號迭代?? for i,item in enumerate('abcd'): print('第%d個字符是:%s'%(i,item))
sorted(seq)???? 排序迭代?? for i in sorted([3,1,6,0])
reversed(seq)?? 翻轉迭代
zip(seq1,seq2,....)?? 并行迭代? for i,j,k in zip(lsta,lstb,lstc):print('%d:%d:%d'%(i,j,k))? 只遍歷到最短的序列長度
while循環:Python中while循環不如for循環簡單明了,因此主要用在構建不確定運行次數的循環,一般情況下,遍歷序列都采用for語句
增量賦值運算符
+=,-=,*=,/=,//=,**=,%=,&=。。。。。。。
推導:對序列或一系列的元素進行處理,處理結果仍被放到一個列表、字典等序列之中
基本形式:[<i相關表達式> for i in aiterator]??? #在for語句前加了對循環變量處理的表達式,最外層使用序列符號
[i**i for i in range(1,11)]?? #獲得1~10的平方數存入列表之中
{k:v for k,v in zip(keys,values)}? #使用并行迭代將兩個列表組成字典
推導進階:
使用if語句實現有選擇地處理遍歷序列中的元素
[i**i for i in range(1,11) if i**i%2==1]
轉載于:https://www.cnblogs.com/MUMO/p/5707953.html