0) 引論
前面介紹了基礎資料部分,本節將總結一下python的控制流。有了基礎資料以及控制流,則就可以寫出一些初步的程式。可以說語言通用的部分就是基礎資料和控制流,這兩部分構成了一門語言最最基本的部分。控制流主要有順序結構,if結構,迴圈結構。下面一一介紹。
1)賦值語句
>>> x=1
>>> x
1
除了最基本的賦值語句形式:x=1; python還支援鏈式賦值,如下面所示:
>>> x=y=z=1
>>> x
1>>> y
1>>> z
1>>> x,y,z=1,2,3
>>> x
1>>> y
2>>> z
3
而且python中交換兩個變數的值非常簡單
>>> x,y=4,5
>>> x,y=y,x
>>> x
5>>> y
4
這樣的賦值方式讓python變得簡單明瞭,但是個人覺得這些方式略顯隨意,不見得是很嚴謹的做法。
>>> people=
>>> key,value = people.popitem()
>>> key
'cristina'
>>> value
45>>> people
這是字典的鏈式賦值舉例。
python也有增量賦值的模式,與c是一樣的。
>>> x=1
>>> x+=1
>>> x
2
2) 兩個運算子的比較(is 和 ==)
>>> x=y=[1,2]
>>> z=[1,2]
>>> x is y
true
>>> x==y
true
>>> x is z
false
>>> x==z
true
x is y 表示x,y是同乙個物件。
x==y
表示x,y的數值與順序都相等。
3) 邏輯運算子
and,or,not是通用的3個邏輯運算子。注意一點,邏輯表示式只有在需要求值的時候才會求值。
4) assert語句
assert語句的設計初衷是能夠及時讓程式在錯誤處停止,例如:
>>> x=-1
>>> assert 0", line 1, in assert 0
if語句:
>>> if 1>0:
print('math is true')
math is true
if else語句:
>>> num=10
>>> if num>0:
print(num,'>0')
else:
print(num,'<0')
10 >0
elif語句:
>>> num=10
>>> if num>0:
print(num,'>0')
elif num==0:
print(num,'=0')
else:
print(num,'<0')
10 >0
6) 迴圈語句
while迴圈:
>>> i=1
>>> ans=0
>>> while i<=100:
ans=ans+i
i+=1
>>> ans
5050
用for迴圈:
>>> ans=0
>>> for i in range(0,101):
ans = ans+i
>>> ans
5050
range是內建函式,能夠生成乙個範圍內的序列
>>> range(0,10)
range(0, 10)
>>> list(range(0,10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
跳出迴圈:break以及continue:
>>> ans=0
>>> for i in range(0,101):
ans=ans+i
if i>50:
break
>>> ans
1326
>>> ans=0
>>> for i in range(0,101):
if i==50:
continue
ans=ans+i
>>> ans
5000
7) 遍歷字典
字典是python中比較常見的資料結構,下面來看如何遍歷字典裡所有的鍵:
>>> dic =
>>> for key in dic:
print(key,'is',dic[key])
cristina is 19
bob is 23
arsharm is 42
8) 迭代
並行迭代,假設有兩個序列
>>> name=['arsharm','bob','cristina']
>>> age=[42,23,19]
>>> for i in range(len(name)):
print(name[i],'is',age[i])
arsharm is 42
bob is 23
cristina is 19
利用內建的zip函式進行迭代
>>> name=['arsharm','bob','cristina']
>>> age=[42,23,19]
>>> for name,age in zip(name,age):
print(name,'is',age)
arsharm is 42
bob is 23
cristina is 19
9) list comprehension
不知道為什麼要起這樣乙個名字,大概是說要對列表進行更加深入的理解吧。
書上翻譯說是列表推導式,反正不管他是什麼了, 它的主要目的就是利用列表實現乙個類似於迴圈的東西。
>>> [i*i for i in range(0,10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [n for n in name]
['arsharm', 'bob', 'cristina']
>>> [a for a in age]
[42, 23, 19]
10) 其他的一些有用的語句
pass:什麼都不做。pass語句的初衷是為了提前占用位置,以便後續擴充套件用。
del:刪除。注意del刪除的是名稱,而不是值,在python中時沒有辦法真正刪除值的。
>>> x=[1,2,3]
>>> y=x
>>> del x
>>> x
traceback (most recent call last):
file "", line 1, in x
nameerror: name 'x' is not defined
>>> y
[1, 2, 3]
結果顯示del x後,只是把x這個變數刪除,而沒有真正的刪除值。
exec:執行字串方式書寫
>>> exec("print('hello world!')")
hello world!
eval: 計算字串形式書寫的表示式
>>> eval('1+2')
3
Python基礎學習之IF控制流
判斷,基於一定的條件,決定是否要執行特定的一段 例如判斷乙個數是不是正數 x 0.5if x 0 print hey print x is positive hey x is positive在這裡,如果x 0為false,那麼程式將不會執行兩條print語句。上面例子中的這兩條語句 print h...
Python之 控制流
格式 i1 3 if i1 4 print yes you are right elif 0 i1 4 print im dont konw else print no you are wrong 注意if elif以及else後面的 符號,我們通過它告訴python下面跟著乙個語句塊。number...
Python之四 控制流
1 if 邏輯判斷 if a b elif c d else e 先判斷a語句塊的值是否為真,如果為真,則執行b語句塊,如果不為真則轉到elif判斷c語句塊的值是否為真,如果為真執行d語句塊,如果不為真轉到else,執行e語句塊 例句 2 while迴圈 while a b先判斷語句塊a的值是否為真...