iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
AI/ ML & Data

From Python Beginner To AI Engineer系列 第 10

這些小括號是什麼?

  • 分享至 

  • xImage
  •  

函式

上一篇文章提到了 range() 的用法,這種一串英文配一組小括號的語法,稱作函式 (Function)。不同的函式有不同的作用,在 Python 裡面有許多內建函式 (Built-in Functions)可以使用,除了 range() 可以用來列舉數字以外,還有像是 abs() 可以對數字取絕對值:

>>> abs(-3)
3

透過 abs(-3) 這行程式碼,我們呼叫 (Call) abs 這個函式,並且把 -3 當作參數 (Argument)傳進去,並且得到 3 這個回傳值 (Return Value),這就是構成函式使用的三大要素。

其他也有 round() 函式用來對浮點數進行四捨五入:

>>> round(3.14)
3
>>> round(1.57)
2

divmod()

筆者覺得最方便的內建函式是 divmod(),這個函式可以同時進行整數除法與餘數除法:

>>> divmod(7, 3)
(2, 1)

咦,這個 divmod() 看起來是回傳了兩個數字欸?這樣的回傳,要怎麼放在變數裡面呢?既然有兩個回傳值,那就給他兩個變數來放:

>>> a, b = divmod(7, 3)
>>> a
2
>>> b
1

其中 a 存放的是商數,而 b 存放的就是餘數。運用這個函式,就能輕鬆改寫之前計算時間的程式囉!讓我們將 16521 秒換算成小時分鐘:

>>> s = 16521
>>> m, s = divmod(s, 60)
>>> h, m = divmod(m, 60)
>>> h, m, s
(4, 35, 21)

這樣寫是不是變得輕鬆又簡潔呢!

函式也能當成參數

函式與函式之間也能組合在一起,例如 sum() 可以用來加總,那就可以把 sum()range() 結合在一起:

>>> sum(range(100))
4950

這樣不用 For 迴圈也能算出 0 到 99 的總和囉!

自我練習

  1. a = -34.56,取絕對值並四捨五入,然後計算從 1 加到該數值的總和。
  2. 令總秒數 s = 2309011,使用 divmod() 計算這是幾週幾天幾時幾分幾秒。

完整的程式碼放在此 Colab 裡面供各位參考。


上一篇
如何重複做一件事情?
下一篇
有沒有更漂亮的輸出方式?
系列文
From Python Beginner To AI Engineer31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言