1. 程式人生 > 其它 >Python基礎-5-條件分支與迴圈

Python基礎-5-條件分支與迴圈

條件分支(程式設計中的邏輯)

條件分支是計算機程式設計領域中的一個重要組成部分,不論哪種程式語言都存在分支機構。

  • 通俗的來說就是滿足某種條件的時候去幹某事,而不滿足的時候幹另外一件事。
    在程式碼裡面來說就是,滿足 if 關鍵字後面的條件時就執行 if 下面的程式碼塊,不滿足就執行 else 下面的程式碼。
  • 在Python中使用空白(空格/製表符-Tab)來標識程式碼塊,所有縮緊在同一層級的程式碼被看作是同一個程式碼塊。利用程式碼塊和if組合起來,使Python清楚的知道條件滿足需要執行哪些程式碼,而條件不滿足的時候要從哪開始執行程式碼。
num = 5
if num == 5:
    print(num)
else:
	  print("test")
  • 這會可能有任會問了,如果有多個條件呢,總不能一直if-else去寫吧。
    當然不需要了,請看下面示例
num = 5
if num == 1:
    pring("num = 1")
elif num == 5:
    pring("num = 5")
else:
    pring("num不是數字")

在Python 中條件通常是通過對值進行比較的方式而構建出來的。使用比較運算子即可對值進行比較。而比較的結果不是真(True)就時假(False),正好符合了bool(布林型別);
例如上述程式碼中的 num = 5 就會返回True,num = 1. 返回False。
在Python中對每種資料型別也給出了為假(False)的方式,如下圖:

迴圈

迴圈的作用就是讓指定的程式碼重複的執行,而在Python中有兩種常用的迴圈,分別時while和for,下面分別介紹兩種迴圈

whlie
while 條件():    
    條件滿足時,做的事情1    
    條件滿足時,做的事情2
    ......
  • 基本用法
# 定義一個整數變數,記錄迴圈的次數
i=1
# 開始迴圈
while i <= 3:    
# 希望迴圈內執行的程式碼    
    print('hello python')    
    # 處理計數器
    i+=1

需要注意的是,使用while迴圈時,一定要給出迴圈結束的條件,不然就成死迴圈了,例如:

while True:
    print('hello python')

具體用法:

# 大家可以通過下面的猜數字遊戲體會:
"""
猜數字遊戲:
1.系統隨機生成一個1~100的數字;
2.使用者共有5次機會猜;
3.如果使用者猜測數字大於系統給出的數字,列印"too big"
4.如果使用者猜測數字小於系統給出的數字,列印"too small"
5.如果使用者猜測的數字等於系統給出的數字,列印"恭喜中獎",並退出迴圈
"""

import random

num = random.randint(1,100)
print(num)

i = 1
while i <= 5:
    ans = int(input("請猜數:"))
    if ans > num:
        print("too big,還剩%d次機會"%(5-i))
    elif ans < num:
        print("too small,還剩%d次機會"%(5-i))
    else:
        print("恭喜中獎!!!")
        break
    i += 1
for

Python中的for迴圈是通過遍歷某一序列物件的來構建迴圈,結束條件就是隊形被遍歷完成/或者滿足某種條件以後使用break關鍵字

for i in [1, 2, 3, 4]:
	  # 如果不新增if語句,會將列表中的所有元素全部遍歷一遍,新增以後,當i=3的時候就會執行break,然後結束迴圈
    if i == 3:		
        break
	  print(i)
>>> 1 2 

還有一種是結合range() 函式去使用的

list_1 = [1, 2, 3, 4]
for index in range(list_1):
    # 現在的index是沒次獲取的列表元素中的下標
    print(index)
>>> 0 1 2 3

在for迴圈中,還有一個關鍵字可以結合使用,那就是continue ,作用是跳過檔次迴圈

for i in [1, 2, 3, 4]:
    if i == 3:		
        continue
    print(i)
>>> 1 2 4

還有一種複雜一點的操作,就是巢狀for迴圈

例如:9 9乘法表
for i in range(1,10):
    for j in range(1,i+1):
         print('%d * %d = %d\t' %(i,j,i*j),end='')
    print()