Python條件語句是經過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。python
if expression: statements(s)
這裏要注意的是,Python使用縮進做爲語句分組的方法,因此咱們建議使用4個空格做爲縮進,在同一個縮進裏面的,都屬於同一個代碼塊,固然若是用到編譯器的話,在寫完代碼後,可使用編譯器調整好代碼格式。express
如今咱們寫一個簡單的if條件以下:測試
#!/usr/local/python3/bin/python if 0<1: #若是0小於1,則運行下面縮進裏的代碼塊內容 print("Hello World !") # print("True") print("False")
由於0小於1是正確的,因此該代碼運行後將輸出如下內容:ui
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python 2.py Hello World ! False
如今來個複雜一些的是,加入運算符優先級判斷:spa
#!/usr/local/python3/bin/python if not 0>1 and 1==1: #這裏先判斷邏輯非「not」,而後再判斷「and」,這裏結果爲真,因此將運行縮進代碼塊的內容 print("Hello World !") # print("True") print("False")
咱們寫一個簡單的判斷考試成績的等級的腳本,以下所示:code
#!/usr/locscorel/python3/bin/python score=int(input("Please input score number : ")) #int()是把輸入的str字符串轉換成int數值 if score <= 100: #首先判斷這個數是否小於等於100,符合條件則進入下一個判斷 if score >= 90: #判斷這個數是否大於等於90 print("You got A.") elif score >= 75: #判斷這個數是否大於等於75 print("You got B.") elif score >=60: #判斷這個數是否大於等於60 print("You got C") else: #若是以上條件都不符合,則輸出下面縮進的內容 print("You got D,and not pass.") else: #若是輸入的數大於100的輸出結果 print("Please input a correct score.")
邏輯值(bool)也就是布爾值,包含了兩個值(True or False):orm
True 表示非空的量,好比:string,tuple,list,set,dict等全部非零數字符串
False則表示0,None,空的量等input
while與for相比編譯器
for循環用在有次數的循環上。
while循環用在有條件的控制上,和 if 比較類似。
while循環,直到表達式變爲假(或者有一個break),才退出while循環,表達式是一個邏輯表達式,必須返回一個True或False。語法以下
while expression: statement(s)
如今咱們寫一個while循環,讓用戶輸入指定字符退出,以下所示:
#!/usr/local/python3/bin/python x='' while x != 'q': #當字符串 x 不等於 "q" 時 print('hello') x=input("Please input something like q for quit :") if not x: break if x=='quit': continue print("Please continue.") else: print("world")
運行的測試結果以下:
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python whileE.py hello Please input something like q for quit :e Please continue. hello Please input something like q for quit :re Please continue. hello Please input something like q for quit :quit hello Please input something like q for quit :q Please continue. world [root@izj6cdhdoq5a5z7lfkmaeaz ~]#
循環是一個結構,致使程序要重複必定的次數。
條件循環也是如此,當條件變爲假,循環結束。
for循環能夠用在序列裏,能夠循環遍歷,其語法以下:
for iterating_var in sequence: statements(s)
咱們講過的序列有字符串,元組和列表,好比咱們定義一個字符串a,而後遍歷a的各個字符並打印出來,信息以下:
In [1]: a='ABC' In [2]: a Out[2]: 'ABC' In [3]: for i in a: ...: print(i) ...: A B C
默認狀況下,使用print打印出來會帶有換行符,那麼咱們怎樣讓結果中不帶有換行符呢,以下:
In [6]: for i in a: print i, # 在Python2.7.5中 ...: A B C for i in a: print(i,end='') # 在Python3.6.1中
好比咱們能夠建立一個列表list1:
In [8]: list1=list() # 生成一個空列表 In [9]: list1=[1,2,3,4] In [10]: for i in list1: ....: print i ....: 1 2 3 4
生成一個1-9的列表,默認狀況下步長爲1:
In [11]: range(1,10) Out[11]: [1, 2, 3, 4, 5, 6, 7, 8, 9]
假如設置步長爲二、3分別是:
In [13]: range(1,10,2) Out[13]: [1, 3, 5, 7, 9] In [14]: range(1,10,3) Out[14]: [1, 4, 7]
好比說咱們能夠利用for循環加range打印十個數:
In [15]: for i in range(0,10): ....: print(i) ....: 0 1 2 3 4 5 6 7 8 9
打印一個1-10的列表,咱們也能夠這樣寫:
#!/usr/local/python3/bin/python print([i for i in range(1,11)])
打印的結果以下:
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python a.py [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
咱們也能夠對 i 進行一些操做,代碼以下:
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# cat a.py #!/usr/local/python3/bin/python print([i for i in range(1,11)]) print([i+1 for i in range(1,11)]) # 讓遍歷出來的i都加上1 print([i*2 for i in range(1,11)]) # 讓遍歷出來的i都乘上2 print([i-2 for i in range(1,11)]) # 讓遍歷出來的i都減去2
運行的結果以下:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [2, 3, 4, 5, 6, 7, 8, 9, 10, 11] [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]
好比咱們也能夠寫一個程序,求1-100的數相加的和,以下所示:
#!/usr/local/python3/bin/python sum=0 for i in range(1,101): sum+=i print(sum)
首先生成一個字典:
In [17]: dic={} In [18]: dic.fromkeys('abcde',100) Out[18]: {'a': 100, 'b': 100, 'c': 100, 'd': 100, 'e': 100}
利用for循環遍歷字典的k值:
In [21]: for k in dict1: ....: print(k) ....: a c b e d
利用 for 循環遍歷字典的k值,並打印出 k 值和 values 值:
In [22]: for k in dict1: print(k),dict1[k] ....: a 100 c 100 b 100 e 100 d 100
進行格式化輸出與output美化以後:
In [23]: for k in dict1: print("%s : %s" % (k,dict1[k])) ....: a : 100 c : 100 b : 100 e : 100 d : 100
咱們也可使用items將字典輸出爲列表:
In [24]: dict1.it dict1.items dict1.iteritems dict1.iterkeys dict1.itervalues In [24]: dict1.items() Out[24]: [('a', 100), ('c', 100), ('b', 100), ('e', 100), ('d', 100)]
使用for循環遍歷這個列表爲:
In [25]: for i in dict1.items():print i ('a', 100) ('c', 100) ('b', 100) ('e', 100) ('d', 100)
也能夠指定兩個變量接收值:
In [27]: for i,v in dict1.items():print i,v a 100 c 100 b 100 e 100 d 100
直接對字典進行訪問,不加任何的方法的話,遍歷出來的是字典的 k 值:
In [29]: for i in dict1:print i a c b e d
若是想要輸出values呢,仍是能夠像前面同樣進行取值:
In [30]: for i in dict1:print i,dict1[i] a 100 c 100 b 100 e 100 d 100
小時候背過的乘法口訣,咱們經過Python也能夠寫出來,代碼以下:
#!usr/local/python3/bin/python for i in range(1,10): #指定有多少列 for j in range(1,i+1): #嵌套指定有多少行, print("{0} * {1} = {2}".format(j,i,j*i),end=' ') #格式化輸出,當前循環結束以前以空格分割 print("\n") #循環結束從新進入下一個循環的時候進行換行
最後結果以下:
[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python nine.py 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81