草根學Python(五) 條件語句和循環語句
前言
第一次建學習群,而且是 Python 的學習群,雖然之前深入學習和工作都是 Android 相關的,最近學起來 Python ,真的很好玩,所以創了個微信群,希望童鞋們進群學習討論。也可以直接加我微androidwed拉進群。也歡迎大家在 Gitbook 中提出文章的不足。
目錄
一、條件語句
Python 條件語句跟其他語言基本一致的,都是通過一條或多條語句的執行結果( True 或者 False )來決定執行的代碼塊。
Python 程序語言指定任何非 0 和非空(null)值為 True,0 或者 null為 False。
執行的流程圖如下:
1、if 語句的基本形式
Python 中,if 語句的基本形式如下:
if 判斷條件:n 執行語句……nelse:n 執行語句……n
前面也提到過,Python 語言有著嚴格的縮進要求,因此這裡也需要注意縮進,也不要少寫了冒號 : 。
if 語句的判斷條件可以用>(大於)、<(小於)、==(等於)、>=(大於等於)、<=(小於等於)來表示其關係。
例如:
# -*-coding:utf-8-*-nnresults=59nnif results>=60:n print (及格)nelse :n print (不及格)n
輸出的結果為:
不及格n
上面也說道,非零數值、非空字元串、非空 list 等,判斷為True,否則為False。因此也可以這樣寫:
num = 6 nif num :n print(Hello Python)n
2、if 語句多個判斷條件的形式
有些時候,我們的判斷語句不可能只有兩個,有些時候需要多個,比如上面的例子中大於 60 的為及格,那我們還要判斷大於 90 的為優秀,在 80 到 90 之間的良好呢?
這時候需要用到 if 語句多個判斷條件,
用偽代碼來表示:
if 判斷條件1:n 執行語句1……nelif 判斷條件2:n 執行語句2……nelif 判斷條件3:n 執行語句3……nelse:n 執行語句4……n
實例:
# -*-coding:utf-8-*-nnresults = 89nnif results > 90:n print(優秀)nelif results > 80:n print(良好)nelif results > 60:n print (及格)nelse :n print (不及格)n
輸出的結果:
良好n
3、if 語句多個條件同時判斷
Python 不像 Java 有 switch 語句,所以多個條件判斷,只能用 elif 來實現,但是有時候需要多個條件需同時判斷時,可以使用 or (或),表示兩個條件有一個成立時判斷條件成功;使用 and (與)時,表示只有兩個條件同時成立的情況下,判斷條件才成功。
# -*-coding:utf-8-*-nnjava = 86npython = 68nnif java > 80 and python > 80:n print(優秀)nelse :n print(不優秀)nnif ( java >= 80 and java < 90 ) or ( python >= 80 and python < 90):n print(良好)n
輸出結果:
不優秀n良好n
注意:if 有多個條件時可使用括弧來區分判斷的先後順序,括弧中的判斷優先執行,此外 and 和 or 的優先順序低於 >(大於)、<(小於)等判斷符號,即大於和小於在沒有括弧的情況下會比與或要優先判斷。
二、循環語句
一般編程語言都有循環語句,循環語句允許我們執行一個語句或語句組多次。
循環語句的一般形式如下:
Python 提供了 for 循環和 while 循環,當然還有一些控制循環的語句:
循環控制語句描述break在語句塊執行過程中終止循環,並且跳出整個循環continue在語句塊執行過程中終止當前循環,跳出該次循環,執行下一次循環passpass 是空語句,是為了保持程序結構的完整性
1、While 循環語句
count = 1 nsum = 0nwhile (count <= 100):n sum = sum + countn count = count + 1nprint(sum)n
輸出的結果:
5050n
當然 while 語句時還有另外兩個重要的命令 continue,break 來跳過循環,continue 用於跳過該次循環,break 則是用於退出循環
比如,上面的例子是計算 1 到 100 所有整數的和,當我們需要判斷 sum 大於 1000 的時候,不在相加時,可以用到 break ,退出整個循環
count = 1 nsum = 0nwhile (count <= 100):n sum = sum + countn if ( sum > 1000): #當 sum 大於 1000 的時候退出循環n breakn count = count + 1nprint(sum)n
輸出的結果:
1035n
有時候,我們只想統計 1 到 100 之間的奇數和,那麼也就是說當 count 是偶數,也就是雙數的時候,我們需要跳出當次的循環,不想加,這時候可以用到 break
count = 1 nsum = 0nwhile (count <= 100):n if ( count % 2 == 0): # 雙數時跳過輸出n count = count + 1n continuen sum = sum + countn count = count + 1nprint(sum)n
輸出的語句:
2500n
在 Python 的 while 循環中,還可以使用 else 語句,while … else 在循環條件為 false 時執行 else 語句塊
比如:
count = 0nwhile count < 5:n print (count)n count = count + 1nelse:n print (count)n
輸出的結果:
0n1n2n3n4n5n
2、 for 循環語句
for循環可以遍歷任何序列的項目,如一個列表或者一個字元串
它的流程圖基本如下:
基本的語法格式:
for iterating_var in sequence:n statements(s)n
實例:
for letter in Hello 兩點水:n print(letter)n
輸出的結果如下:
Hnenlnlnonn兩n點n水n
有 while … else 語句,當然也有 for … else 語句啦,for 中的語句和普通的沒有區別,else 中的語句會在循環正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。
for num in range(10,20): # 迭代 10 到 20 之間的數字n for i in range(2,num): # 根據因子迭代n if num%i == 0: # 確定第一個因子n j=num/i # 計算第二個因子n print (%d 是一個合數 % num)n break # 跳出當前循環n else: # 循環的 else 部分n print (%d 是一個質數 % num)n
輸出的結果:
10 是一個合數n11 是一個質數n12 是一個合數n13 是一個質數n14 是一個合數n15 是一個合數n16 是一個合數n17 是一個質數n18 是一個合數n19 是一個質數n
3、嵌套循環
Python 語言允許在一個循環體裡面嵌入另一個循環。上面的實例也是使用了嵌套循環的,這裡就不給出實例了。
具體的語法如下:
for 循環嵌套語法
for iterating_var in sequence:n for iterating_var in sequence:n statements(s)n statements(s)n
while 循環嵌套語法
while expression:n while expression:n statement(s)n statement(s)n
除此之外,你也可以在循環體內嵌入其他的循環體,如在 while 循環中可以嵌入 for 循環, 反之,你可以在 for 循環中嵌入 while 循環
三、條件語句和循環語句綜合實例
1、列印九九乘法表
# -*- coding: UTF-8 -*-nn# 列印九九乘法表nfor i in range(1, 10):n for j in range(1, i+1):n # 列印語句中,大括弧及其裡面的字元 (稱作格式化欄位) 將會被 .format() 中的參數替換,注意有個點的n print({}x{}={}t.format(i, j, i*j), end=) n print()n
輸出的結果:
1x1=1 n2x1=2 2x2=4 n3x1=3 3x2=6 3x3=9 n4x1=4 4x2=8 4x3=12 4x4=16 n5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 n6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 n7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 n8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 n9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81n
2、判斷是否是閏年
# 判斷是否是閏年nnyear = int(input("請輸入一個年份: "))nif (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:n print({0} 是閏年 .format(year))nelse:n print({0} 不是閏年 .format(year))n
推薦閱讀:
※如何系統的自學Python?
※Python從零開始系列連載(18)——Python特色數據類型(列表)(中)
※學習筆記四:改善Python程序的91個建議