Python基礎之控制結構

Python基礎之控制結構

Python中控制結構分爲分支結構與循環結構。


1.分支結構

(1) if 結構

適用於只有一種選擇的時候
語法結構

if 條件 :
    代碼操作

例:

# 定義一個變量,存儲一個數據,判斷該數據是否爲偶數,如果是則輸出該變量
num = int(input("輸入整數:"))
if num & 1 == 0:
    print("num =", num)

# 定義一個變量,存儲一個數據,判斷該數據是否在區間[3,6]中,如果在則輸出該變量
num = int(input("輸入整數:"))
if 3 <= num <= 6:
    print("num =", num)
"""
注意:在Python中,通過代碼之間的縮進來表示程序的層級關係,因此在代碼書寫時,必須嚴格按照縮進執行代碼
pass Python內置關鍵字,代表空語句,一般用來充當程序的結構
"""

(2) if-else結構

該分支結構用於兩種選擇情況
語法結構

if 條件:
    執行語句
else:
    執行語句
# 注意:else是對if條件的否定,即當if條件不成立時執行

例:

# 用戶通過控制檯輸入數字A、B,請輸出A佔B的百分比
A = int(input("輸入整數A:"))
B = int(input("輸入整數B:"))
if A <= B:
    print("A佔B的%.2f%%" % (A/B*100))
else:
    # print("輸入錯誤:要求A不大於B!")
    raise ValueError("輸入錯誤:要求A不大於B!")
    # raise 拋出異常  

# 定義三個變量,存儲三個整數,求三個整數的中間值
A = int(input("輸入整數A:"))
B = int(input("輸入整數B:"))
C = int(input("輸入整數C:"))
if (A >= B >= C) or (C >= B >= A):
    print("中間值B=%d" % B)
else:
    if (A >= C >= B) or (B >= C >= A):
        print("中間值C=%d" % C)
    else:
        print("中間值A=%d" % A)
        
# 在開發中,很多時候需要使用if-else 的嵌套操作

(3)if-elif-else結構

用於計算機需要從多於兩個的條件結果中做出選擇
語法結構

if 條件1:
    執行語句1
elif 條件2:
    執行語句2
elif ...:
    執行語句...
else
    執行語句n

例:

# 輸入月份,判斷該月份屬於哪個季節
month = int(input("輸入月份:"))
if 3 <= month <= 5:
    print("%d月是春天" % month)
elif 6 <= month <= 8:
    print("%d月是夏天" % month)
elif 9 <= month <= 11:
    print("%d月是秋天" % month)
elif month == 12 or 1 <= month <= 2:
    print("%d月是冬天" % month)
else:
    print("輸入不合法")
注意:Python注重精簡,所以不支持Switch操作!!!同時也不支持do-while循環!!!

2.循環結構

循環:程序對某一段相同代碼執行連續不停的重複執行(兩次執行)多次操作
Python中的循環分爲while循環和for循環,其中for循環成爲了迭代操作
迭代:從一個可迭代容器中重複不停的取值運算

###(1) range()方法

range():Python內置操作,用來生成指定範圍的一串連續數字
注意:range()最終返回的是一個可以迭代的容器
range(num):此過程生成一個區間爲[0,num)的一串連續數字
range(num1,num2):此過程生成一個區間爲[num1,num)的一串連續數字
range(num1,num2,step):生成從[num1,num2)的間隔爲step的一串連續數字

例:

nums = range(10)
print(list(nums))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

nums = range(2, 10)
print(list(nums))
# [2, 3, 4, 5, 6, 7, 8, 9]

nums = range(2, 10, 3)
print(list(nums))
# [2, 5, 8]

###(2)for循環結構

僅適用於有限循環
語法結構

for variable in Iterator:
    循環體
variable:變量,用來存儲每一次迭代所取出的數據
Iterator:迭代對象,用來存儲數據的迭代容器
循環體:每一次迭代之後需要做的具體操作

例:

# 求[1-100]所有數的階乘
for item in range(1, 101):
    mul = 1
    for i in range(1, (item+1)):
        mul *= i
    print("!%d=%d" % (item, mul))

# 求[1-100]第一個7的倍數
for item in range(1,101):
    if item % 7 == 0:
        print(item)
        break
else:
    print("循環正常結束")

# 求兩個數的最大公約數
num1 = int(input("num1="))
num2 = int(input("num2="))
if num1 > num2:
    for item in range(num2, 0, -1):
        if num1 % item == 0 and num2 % item == 0:
            print("最大公約數爲", item)
            break
else:
    for item in range(num1, 0, -1):
        if num1 % item == 0 and num2 % item == 0:
            print("最大公約數爲", item)
            break
"""
break:強制結束break所在的循環,即使該層循環後面還有需要執行的循環,該層循環也不再執行
else:for循環,while循環可以和else綁定,else中的代碼會在循環正常結束之後執行。如果循環在執行過程中被break意外中斷,則else中的代碼不再執行
"""

(3)while循環結構

適用於有限循環及無限循環

語法格式

while 循環條件:
    循環體

while循環執行原理:首先程序會判斷循環條件是否成立,如果成立則執行循環體,當循環體執行完畢,程序會自動跳轉到條件判斷,如果條件判斷成立,則繼續執行下一次循環,否則while循環結束
continue:結束本次循環,當程序執行過程中遇到continue關鍵字,則本次循環結束,程序直接跳轉到條件判斷
break:結束本層循環,當程序執行過程中遇到break關鍵字,此時break所在的循環會被強制終止

例:

# 死循環
index = 1
while index <= 10:
    if index == 5:
        # index += 1
        continue
    print(index)
    index += 1

# 有一個正整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,問該數(需手動分析)
for i in range(2, 85, 2):
    if 168 % i == 0:
        j = 168 // i
        if i > j and j & 1 == 0:
            n = (i - j) // 2
            x = n ** 2 - 100
            if x > 0:
                print(x)
i = 2
while i <= 84:
    if 168 % i == 0:
        j = 168 // i
        if i > j and j & 1 == 0:
            n = (i - j) // 2
            x = n ** 2 - 100
            if x > 0:
                print(x)
    i += 2

(4)循環嵌套

循環嵌套:在for或while循環的循環體中存在另一個for循環或while循環,構成嵌套關係的現象。開發中常用的是雙重for循環。

例:

# 空心菱形

row = int(input("輸入數字:"))
for x in range(-row, row +1):
    string = ""
    for y in range(-row, row +1):
        if abs(x)+abs(y) == row:
            string += "*"
        else:
            string += " "
    print(string)
#    *   
#   * *  
#  *   * 
# *     *
#  *   * 
#   * *  
#    *   

# 不完美,如果有更好的方法請告訴我
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章