1. 程式人生 > 實用技巧 >第四章---控制語句和迴圈語句

第四章---控制語句和迴圈語句

目錄:

(一)條件控制

(1)if 語句

(2)if 巢狀

(二)迴圈語句

(1)while 迴圈

(2)while 迴圈使用 else 語句

(3)for 迴圈

(4)range()函式

(4.1)range(N)形式

(4.2)range(M,N)形式

(4.3)range(M,N,step)

(5)break 語句, continue 語句和pass語句

正文:

(一)條件控制

(1)if 語句

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

Python 中用elif代替了else if,所以if語句的關鍵字為:if – elif – else

注意:

  • 1、每個條件後面要使用冒號:,表示接下來是滿足條件後要執行的語句塊。
  • 2、使用縮排來劃分語句塊,相同縮排數的語句在一起組成一個語句塊。
  • 3、在Python中沒有switch – case語句。
#!/usr/bin/python3
 
age = int(input("請輸入你家狗狗的年齡: "))
print("")
if age <= 0:
    print("你是在逗我吧!")
elif age == 1:
    print("相當於 14 歲的人。")
elif
age == 2: print("相當於 22 歲的人。") elif age > 2: human = 22 + (age -2)*5 print("對應人類年齡: ", human) ### 退出提示 input("點選 enter 鍵退出")
$ python3 dog.py 
請輸入你家狗狗的年齡: 1

相當於 14 歲的人。
點選 enter 鍵退出

(2)if 巢狀

在巢狀 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。

if 表示式1:
    語句
    if
表示式2: 語句 elif 表示式3: 語句 else: 語句 elif 表示式4: 語句 else: 語句
# !/usr/bin/python3
 
num=int(input("輸入一個數字:"))
if num%2==0:
    if num%3==0:
        print ("你輸入的數字可以整除 2 和 3")
    else:
        print ("你輸入的數字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你輸入的數字可以整除 3,但不能整除 2")
    else:
        print  ("你輸入的數字不能整除 2 和 3")
將以上程式儲存到 test_if.py 檔案中,執行後輸出結果為: $ python3 test.py 輸入一個數字:
6 你輸入的數字可以整除 2 和 3

(二)迴圈語句

(1)while 迴圈

同樣需要注意冒號和縮排。另外,在 Python 中沒有 do..while 迴圈。

Python 中 while 語句的一般形式:

while 判斷條件(condition):
    執行語句(statements)……
#!/usr/bin/env python3
 
n = 100
 
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
 
print("1 到 %d 之和為: %d" % (n,sum))
執行結果如下:

1 到 100 之和為: 5050

(2)while 迴圈使用 else 語句

whileelse 在條件語句為 false 時執行 else 的語句塊。

語法格式如下:
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
#!/usr/bin/python3
 
count = 0
while count < 5:
   print (count, " 小於 5")
   count = count + 1
else:
   print (count, " 大於或等於 5")
執行以上指令碼,輸出結果如下:

0  小於 5
1  小於 5
2  小於 5
3  小於 5
4  小於 5
5  大於或等於 5
類似if語句的語法,如果你的while迴圈體中只有一條語句,你可以將該語句與while寫在同一行中, 如下所示:

例項
#!/usr/bin/python
 
flag = 1
 
while (flag): print ('歡迎訪問菜鳥教程!')
 
print ("Good bye!")


注意:以上的無限迴圈你可以使用 CTRL+C 來中斷迴圈。
執行以上指令碼,輸出結果如下:
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
……

(3)for 迴圈

Python for迴圈可以遍歷任何序列的專案,如一個列表或者一個字串。

for迴圈的一般格式如下:
for <variable> in <sequence>: <statements>
else: <statements>

#!/usr/bin/python3
 
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鳥教程!")
        break
    print("迴圈資料 " + site)
else:
    print("沒有迴圈資料!")
print("完成迴圈!")
執行指令碼後,在迴圈到 "Runoob"時會跳出迴圈體:

迴圈資料 Baidu
迴圈資料 Google
菜鳥教程!
完成迴圈!

(4)range()函式

(4.1) range(N)形式

如果你需要遍歷數字序列,可以使用內建range()函式。它會生成數列,例如:

>>>for i in range(5):
...     print(i)
...
0
1
2
3
4

(4.2)range(M,N)形式

你也可以使用range指定區間的值:

例項
>>>for i in range(5,9) :
    print(i)
 
    
5
6
7
8
>>>

(4.3)range(M,N,step)

也可以使range以指定數字開始並指定不同的增量(甚至可以是負數,有時這也叫做'步長'):

例項:
>>>for i in range(0, 10, 3) :
    print(i)   
輸出:
0
3
6
9

負數
例項:
>>>for i in range(-10, -100, -30) :
    print(i)
 輸出 
-10
-40
-70

您可以結合range()和len()函式以遍歷一個序列的索引,如下所示:
例項
>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>

還可以使用range()函式來建立一個列表:
例項
>>>list(range(5))
[0, 1, 2, 3, 4]
>>>

(5)break 語句, continue 語句和pass語句