# 內建函數 Bulit-in Functions 請參考[官方文件](https://docs.python.org/3/library/functions.html)。 以下我整理幾個常用。 最後更新 2022/9/5。 ## 幫幫我 `help()` 遇到不會用的東西就`help`一下: ```python= help(str) help(list) ``` ## 寫題目常用-輸入 用到的有 `input`、`eval`、`map`、`list`,並配合`str`的函數`split`。 舉例來說,使用者輸入一串用空格隔開的數字,此時因為 Python3 預設 `input` 是字串,因此你想把輸入變成數字,並放入一個串列(list)裡面: 1. 輸入字串 2. 分割字串 3. 逐一變成數字 4. 放入串列 ```python= user_input = input() user_input = user_input.split(' ') result = [] for number in user_input: result.append(eval(number)) ``` 我們可以把它簡化為一句話: ```python= user_input = list(map(eval, input().split(' '))) ``` 我們由內往外看, `input().split(' ')`是把輸入以空格隔開,並且變成list; `map(函數, 容器)`,是把容器內的每個元素,放進函數裡面, 此時他會變成一個 map 的class; `list()` 把剛剛的 map 結果變成一個 list。 ## 進位換算 `bin`:二進位 `oct`:八進位 `hex`:十六進位 三種函數都是回傳字串,以`0b`、`0o`、`0x`開頭。 ```python= bin(10) # '0b1010' oct(10) # '0o12' hex(10) # '0xa' ``` 直接打`0b 0o 0x`開頭的,會自動轉成十進位。 當然你也可以用`eval` ```python= 0b1010 # 10 0o12 # 10 0xa # 10 eval('0b1010') # 10 ``` ## ASCII轉換 `chr()`把數字變成字元; `ord()`把字元變成數字。 ```python= chr(97) # 'a' ord('a') # 97 ``` ## 數字相關 `int`、`float`、`complex`:變成該型態 `abs(數字)`:絕對值 `min(一堆數字的容器)`:找最小 `max(一堆數字的容器)`:找最大 `sum(一堆數字的容器)`:加總 `round(數字,小數幾位)`:四捨五入 `eval(字串)`:把引號拿掉,變int或fioot ## 排序 `sorted(容器)`:把容器內的東西排序後回傳,不影響原容器。 `list.sort()`:容器內東西排序,原容器改變。 註:如果是字串,字典排序;如果是數字,大小排序。