iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
Python

python介紹系列 第 21

Python進階語法(四)

  • 分享至 

  • xImage
  •  

functools.lru_cache 優化重複計算
它可以幫你把函數的運算結果暫存起來,避免重複計算。
import functools

@functools.lru_cache(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(50)) # 計算速度大幅提升
使用這個裝飾器後,重複計算的部分會自動被快取起來。

asyncio 非同步程式設計
非同步程式可以同時處理多個任務,提升效率。
import asyncio

async def print_delayed(message, delay):
await asyncio.sleep(delay)
print(message)

async def main():
await asyncio.gather(
print_delayed("First", 1),
print_delayed("Second", 2),
print_delayed("Third", 3),
)

asyncio.run(main())
async 和 await 關鍵字讓你可以寫出非同步的代碼,處理多個任務時不用等待每個任務完成後才執行下一個。

星號運算符 (Star Operator)
星號 * 可以在多種情況下使用,比如將列表的元素作為函數參數,或者用來接收多個參數。
def sum_all(*args):
return sum(args)

print(sum_all(1, 2, 3, 4)) # 輸出 10
這讓函數更靈活,能處理不確定數量的參數。

any() 和 all() 函數
any() 和 all() 是非常實用的內建函數,用來判斷序列中的元素是否符合條件。
numbers = [1, 2, 3, 4]

print(any(x > 3 for x in numbers)) # True, 因為有元素大於 3
print(all(x > 0 for x in numbers)) # True, 因為所有元素都大於 0
any() 只要有一個元素為真就返回 True,all() 則要求所有元素都為真。


上一篇
Python進階語法(三)
下一篇
Python進階語法(五)
系列文
python介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言