1. 程式人生 > >Python系列:三、流程控制迴圈語句--技術流ken

Python系列:三、流程控制迴圈語句--技術流ken

 

Python條件語句

 

Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的程式碼塊。

可以通過下圖來簡單瞭解條件語句的執行過程:

 

Python程式語言指定任何非0和非空(null)值為true,0 或者 null為false。

Python 程式設計中 if 語句用於控制程式的執行,基本形式為:

if 判斷條件:
    執行語句…… else 執行語句……

其中"判斷條件"成立時(非零),則執行後面的語句,而執行內容可以多行,以縮排來區分表示同一範圍。

else 為可選語句,當需要在條件不成立時執行內容則可以執行相關語句

 

if條件語句演示

 

一、簡單例子

name = 'ken'
if name == 'python':         # 判斷變數否為'python'
    print ('welcome man')    # 輸出歡迎資訊
else:
    print (name)              # 條件不成立時輸出變數名稱

輸出結果為:

ken

注意:

  • 1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。
  • 2、使用縮排來劃分語句塊,相同縮排數的語句在一起組成一個語句塊。
  • 3、在Python中沒有switch – case語句

 

二、以下例子演示了elif的用法

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 鍵退出
")

執行:

請輸入你家狗狗的年齡: 22

對應人類年齡:  122
點選 enter 鍵退出

 

三、以下為if中常用的操作運算子:

操作符 描述
<                          小於                                                     
<= 小於或等於
> 大於
>= 大於或等於
== 等於,比較物件是否相等
!= 不等於

猜數字遊戲舉例:

number = 7
guess = 10
print("數字猜謎遊戲!")
while guess != number:
    guess = int(input("請輸入你猜的數字:"))

    if guess == number:
        print("恭喜,你猜對了!")
    elif guess < number:
        print("猜的數字小了...")
    elif guess > number:
        print("猜的數字大了...")

輸出結果為:

數字猜謎遊戲!
請輸入你猜的數字:6
猜的數字小了...
請輸入你猜的數字:7
恭喜,你猜對了!

 

四、if 巢狀

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

if 表示式1:
    語句
    if 表示式2:
        語句
    elif 表示式3:
        語句
    else:
        語句
elif 表示式4:
    語句
else:
    語句

例項

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")

輸出結果

輸入一個數字:4
你輸入的數字可以整除 2,但不能整除 3

 

Python3 迴圈語句

 

Python中的迴圈語句有 for 和 while。

Python迴圈語句的控制結構圖如下所示:

 

while 迴圈

 

Python中while語句的一般形式:

while 判斷條件:
    語句

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

以下例項使用了 while 來計算 1 到 100 的總和:

num1=1
num2=0
while num1<=100:
    num2+=num1
    num1+=1
print(num2)

執行結果如下:

5050

 

無限迴圈

我們可以通過設定條件表示式永遠不為 false 來實現無限迴圈,例項如下:

while True:
    num=input('pls enter a num:')
    print(num)
print('good bye')

執行結果如下:

pls enter a num:3
3
pls enter a num:0
0

 

while 迴圈使用 else 語句

在 while … else 在條件語句為 false 時執行 else 的語句塊:

num=int(input('enter a num:'))
while num<10:
    print('the num is less then 10')
else:
    print('the num is more then or equal 10')

執行結果如下:

enter a num:10
the num is more then 10

 

for 語句

 

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

for迴圈的一般格式如下:

for <variable> in <sequence>:      <statements> else:      <statements>

Python 迴圈例項:

num=[1,2,3,4,5]
for i in num:
    print(i)

執行結果如下

1
2
3
4
5

 

range()函式

 

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

for i in range(5):
    print(i)

執行結果如下

0
1
2
3
4

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

for i in range(5,10):
    print(i)

執行結果如下

5
6
7
8
9

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

for i in range(5,10,2):
    print(i)

執行結果如下

5
7
9

 

break和continue語句及迴圈中的else子句

 

break語句

break 語句可以跳出 for 和 while 的迴圈體。如果你從 for 或 while 迴圈中終止,任何對應的迴圈 else 塊將不執行。 例項如下:

for letter in 'kenclass':     # 第一個例項
   if letter == 'c':
      break
   print ('當前字母為 :', letter)
var = 10                    # 第二個例項
while var > 0:
   print ('當期變數值為 :', var)
   var = var -1
   if var == 5:
      break

print ("Good bye!")

執行結果如下

當前字母為 : k
當前字母為 : e
當前字母為 : n
當期變數值為 : 10
當期變數值為 : 9
當期變數值為 : 8
當期變數值為 : 7
當期變數值為 : 6
Good bye!

 

continue語句

被用來告訴Python跳過當前迴圈塊中的剩餘語句,然後繼續進行下一輪迴圈

for letter in 'kenclass':     # 第一個例項
   if letter == 'c':        # 字母為 c 時跳過輸出
      continue
   print ('當前字母 :', letter)
var = 10                    # 第二個例項
while var > 0:
   var = var -1
   if var == 5:             # 變數為 5 時跳過輸出
      continue
   print ('當前變數值 :', var)
print ("Good bye!")

執行結果如下

當前字母 : k
當前字母 : e
當前字母 : n
當前字母 : l
當前字母 : a
當前字母 : s
當前字母 : s
當前變數值 : 9
當前變數值 : 8
當前變數值 : 7
當前變數值 : 6
當前變數值 : 4
當前變數值 : 3
當前變數值 : 2
當前變數值 : 1
當前變數值 : 0
Good bye!

 

迴圈中的else子句

迴圈語句可以有 else 子句,它在窮盡列表(以for迴圈)或條件變為 false (以while迴圈)導致迴圈終止時被執行,但迴圈被break終止時不執行。

如下例項用於查詢質數的迴圈例子:

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等於', x, '*', n//x)
            break
    else:
        # 迴圈中沒有找到元素
        print(n, ' 是質數')

執行結果如下

2  是質數
3  是質數
4 等於 2 * 2
5  是質數
6 等於 2 * 3
7  是質數
8 等於 2 * 4
9 等於 3 * 3

 

pass 語句

 

Python pass是空語句,是為了保持程式結構的完整性。

pass 不做任何事情,一般用做佔位語句,如下例項

for letter in 'kenclass':
   if letter == 'c':
      pass
      print ('執行 pass 塊')
   print ('當前字母 :', letter)
 
print ("Good bye!")

執行結果如下

當前字母 : k
當前字母 : e
當前字母 : n
執行 pass 塊
當前字母 : c
當前字母 : l
當前字母 : a
當前字母 : s
當前字母 : s
Good bye!