1、三元運算式
作用:可以將if...else...分支編程一行來寫
if判斷的語法:
if 判斷條件: 執行 else: 執行
三元運算式語法:
條件成立回傳左邊的值 if 判斷條件 else 條件不成立回傳右邊的值
例子1:求兩個值的大小
# 例:求兩個值的大小 # 使用if判斷實作 def max(x, y): if x > y: return x else: return y res = max(2, 3) print(res) # 使用三元運算式實作 def max(x, y): res = x if x > y else y return res res = max(10, 100) print(res)
例子2:讓用戶輸入用戶名,輸入的用戶如果不是tank,為其后綴添加_DSB(大帥哥)
username = input("請輸入用戶名:").strip() new_username = username if username == "tank" else f"{username}_DSB" print(new_username)
2、串列生成式
作用:可以一行代碼實作生成串列
串列生成式語法:
list = [去除的每一個值添加到當前串列中/也可以取任意值 for 可迭代物件中取出的每一個值i in 可迭代物件] # for的右邊是回圈次數,也可以取出可迭代物件中的每一個值 # for的左邊可以為當前串列添加值 list = [值 for 可迭代物件中取出的每一個值i in 可迭代物件 if 判斷]
例:
list2 = ["1" for i in range(1, 101)] print(list2) # 生成一個有100個"1"的串列
例題1:生成一個1-100的串列
# 通過for回圈添加值,生成一個1-100的串列 list1 = [] for line in range(1, 101): list1.append(line) print(list1) # 通過串列生成式生成一個1-100的串列 list = [i for i in range(1, 101)] print(list)
例題2:將name_list串列中的每一個元素的后綴都添加上_DSB
list1 = ['bear', 'banana', 'apple', "orange"] new_list1 = [i + "_DSB" for i in list1] print(new_list1)
例題3:在例題2的基礎上,將apple過濾掉,其他元素后綴都添加_DSB
list1 = ['bear', 'banana', 'apple', "orange"] new_list1 = [i + "_DSB" for i in list1 if not i == "apple"] print(new_list1)
3、生成器運算式
生成器運算式也叫作生成器生成式
串列生成式: 若資料量小時采用 [i for i in range(1, 6)] --> [1, 2, 3, 4, 5] 優點: 可以依賴于索引取值,取值方便 缺點: 浪費資源 生成器生成式: 若資料量大時采用 () --> 生成器 (i for i in range(1, 6)) --> g生成器(1, 2, 3, 4, 5) # 生成器使用小括號(),自定義用g表示 優點: 節省資源 缺點: 取值不方便
例題:生成一個有50個值的生成器
# 串列生成時實作:生成一個有1000個值的生成器 g = [i for i in range(1, 51)] print(g) # 列印出一個串列 # 生成器生成式:生成一個有1000個值的生成器 g = (i for i in range(1, 51)) # <generator object <genexpr> at 0x000002462EF79570> print(g) # 列印出一個生成器物件 print(g.__next__()) # 列印出第一個值 1 print(g.__next__()) # 列印出第二個值 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/169923.html
標籤:其他
上一篇:面對編程程序的例題
下一篇:匿名函式
