【03】Python:分支和循環

寫在前面的話數組

 

在寫代碼的時候,咱們的代碼不可能老是一行一行語句的堆疊,有些時候咱們須要對一個事物進行判斷,或者很大一組數據須要循環挨個處理。這些不可能讓咱們一步一步的去寫。因此有了接下來的分支結構和循環結構。dom

 

 

分支結構函數

 

語法格式:spa

if 條件1:
    執行1
elif 條件2:
    執行2
else:
    執行3

 

示例:code

x = 3
y = 2

if x == 1:
    print("這是第一種狀況")
elif x == 2:
    print("這是第二種狀況")
else:
    if y == 1:
        print("這是第三種狀況")
    else:
        print("這是第四種狀況")

固然,elif else 語句都不是必須,在面對複雜的需求的時候,咱們也能進行嵌套。對象

 

實例:blog

1. 判斷成績等級,90 以上 A,80 - 89 爲 B,70 - 79 爲 C,60 - 69 爲 D,60 如下爲 E。索引

# 輸入成績
score = float(input("請輸入成績:"))

# 判斷成績
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "E"

print("成績爲:%s" % grade)

結果:遊戲

 

 

三元運算符input

 

三元運算符其實際就是將簡單的 if 寫成一個語句,如:

x = 3

if x == 1:
    y = 1
else:
    y = 0

咱們可使用三元運算符表示:

x = 3
y = 1 if x == 1 else 0

固然咱們還能夠寫更復雜的邏輯,可是不推薦,由於咱們寫代碼有個前提,那就是便於閱讀,越簡單易讀越好。

 

 

循環結構

 

在循環結構中,主要有兩種,一種是 while,一種是 for in,兩種循環若是要說區別,可能更多的是使用場景的區別,

for in,通常對一個相似數組這樣的集合進行一個一個迭代循環。

while,通常用於某種特殊的循環,帶有判斷的意味,咱們能夠理解爲 當 xxx 的時候怎麼樣

語法格式:

# for 循環
for i in 可迭代對象:
    執行
    
# while 循環
while 條件:
    執行

 

實例:

1. 輸出全部水仙花數:三位數,個位的三次方 + 十位的三次方 + 百位的三次方 = 數字自己

注意:咱們這裏會用到生成連續數字的內置函數 range。

range(101):生成 0 - 100 的數組。

range(100, 1000) :則會生成 100 - 999 的數組。

range(1, 101, 2):獲取 0 - 100 之間的奇數,2 表明跨度。

for num in range(100, 1000):
    if ((num // 100) ** 3 + ((num % 100) // 10) ** 3 + (num % 10) ** 3) == num:
        print(num)

結果:

 

2. 求 0 - 100 的偶數和:

sum = 0

for num in range(0, 101, 2):
    sum += num
print("0 - 100 的偶數和爲:%d" % sum)

結果:

 

3. 猜數字遊戲:用戶有 3 次機會,猜 1 - 10 的隨機數。猜錯會有範圍提示。

注意:這裏會用到一個內置函數 random,生成隨機數。

import random

# 用戶次數
times = 3
# 生成隨機數
random_num = random.randint(1, 10)

# 判斷
while times:
    user_num = int(input("請輸入你的猜測:"))
    if user_num > random_num:
        print("你猜大了")
    elif user_num < random_num:
        print("你猜小了")
    else:
        print("你猜對了")
        break
    times -= 1
    print("你還有 %s 次機會!" % times)

結果:

 

4. 打印 99 乘法表:

for x in range(1, 10):
    for y in range(x, 10):
        print("%sx%s=%s" % (x, y, x*y), end="\t")
    print("")

結果:

這裏有個知識點,print 結束默認的符號是換行,咱們可使用 end= 指定結尾的符號。

 

 

break 和 continue

 

這二者都用於循環中,可是二者有着明顯的差異:

break,直接結束當前層級的循環,無論你執行到那裏。

continue,結束本輪循環,進入下一輪。

看個示例:

for i in (1, 2, 3, 4, 5):
    if i == 2:
        continue
    if i == 4:
        break
    print(i)

結果如圖:

能夠明顯看到,當 i == 2 的時候,這一輪循環被跳過了,因此沒有打印 i 的值,當 i == 4 的時候,整個循環都被結束了,因此後面的都再也不打印。

 

 

enumerate

 

枚舉,對一個可迭代對象將其組成索引加數據的序列。

示例:

L = ['a', 'b', 'c']

for i in enumerate(L, 1):
    print(i)

結果:

 

 

小結 

 

本節其實主要是邏輯處理語句,包括判斷,循環等。其中包括了兩個內置函數:range 和 random。

若是真的只講幾種語法,很簡單,結合實例查漏補缺。 

相關文章
相關標籤/搜索