寫在前面的話數組
在寫代碼的時候,咱們的代碼不可能老是一行一行語句的堆疊,有些時候咱們須要對一個事物進行判斷,或者很大一組數據須要循環挨個處理。這些不可能讓咱們一步一步的去寫。因此有了接下來的分支結構和循環結構。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。
若是真的只講幾種語法,很簡單,結合實例查漏補缺。