# 資研 4/12 社課講義 [**提問表單**](https://forms.gle/z4dPC1JPV6uA2q9w7) --- ## 模組 Module & 套件 Package [**Python函式庫**](https://docs.python.org/zh-tw/3/library/index.html) ### 模組 一個`Python`檔案就類似於一個模組,當一次需要撰寫大量內容或長時間維護時,有時會將部分定義程式碼分檔案撰寫,而在主模組(main)中就可以透過`import`來引入模組。 >別名可以按照自己的習慣去命名,撰寫程式碼時方便輸入 ``` import 模組名稱 import 模組名稱 as 別名 from 模組名稱 import 函式 ``` ### 套件 若一個模組形似一個檔案,則套件就類似於一個資料夾,包含許多模組,在主模組(main)中可以透過`from`來引入套件中的模組。 ``` from 套件名稱 import 模組名稱 from 套件名稱 import 模組名稱 as 別名 ``` :::warning **import all 的寫法** 可以一次性引入所有在該套件下的模組 ``` from 套件名稱 import * ``` ::: --- ## Dates 模組 模組可以自行定義但`Python`也有很多已經撰寫好的模組可以引用,但在一般電腦內的直譯器內模組需另外下載,不過Colab不需要另外下載,需要注意的是在正規測驗、競賽中(如APCS)是無法適用的 ### 引入模組 ```python= import datetime ``` ### 顯示現在時間 ```python= x = datetime.datetime.now() print(x) ``` 1. 顯示的是**GMT標準時間**也就是英國倫敦格林威治天文臺當下的時間,並非主機所位在地點之當地時間 2. 回傳的資料包含年份 year、月份 month、日期 day、小時 hour、分鐘 minute、秒 second、微秒 microsecond 3. 可以透過`.+需要的資料`來進一步取得時間 >對應的英文在2. ```python= print(x.year) ``` ### 建立時間點 ```python= x = datetime.datetime(2024, 4, 12) ``` 回傳:2024-04-12 00\:00\:00 >沒有給定的會預設為0 ### 轉換 `datetime`模組常被用在計時或轉換日期使用,這裡用轉換日期詳細說明, 利用`日期.strftime(格式符號)`進行轉換成當地時間 ```python= print(x.strftime('%A')) ``` 回傳:Friday :::spoiler 符號 | 符號 | 意義 | 範例 | |:----:|:-------------------------------:|:--------------------------:| | %a | 星期幾的簡稱 | Mon, Tue... | | %A | 星期幾 | Monday, Tuesday... | | %w | 星期幾(0->星期日) | 0, 1, 2..., 6 | | %d | 日期 | 01, 02, 03..., 31 | | %b | 月份縮寫 | Jan, Feb... | | %B | 月份 | January, February... | | %m | 月份 | 01, 02..., 12 | | %y | 年份(後2位) | 00, 01... | | %Y | 年份 | 0001, 0002..., 2024... | | %H | 小時(24小時制) | 00, 01..., 23 | | %I | 小時(12小時制) | 00, 01..., 12 | | %M | 分鐘 | 00, 01..., 59 | | %S | 秒 | 00, 01..., 59 | | %f | 微秒 | 000000, 000001..., 999999 | | %U | 周序號(從0開始, 以周日為開始) | 00, 01..., 53 | | %W | 周序號(從0開始, 以周一為開始) | 00, 01..., 53 | | %c | 日期+時間 | Tue Apr 16 14\:00\:00 2024 | | %x | 日期 | 04/16/24 | | %X | 時間 | 14\:00\:00 | [**其他符號**](https://docs.python.org/zh-tw/3/library/datetime.html#strftime-and-strptime-behavior) ::: --- ## Math 模組 `Python`本身就有內建的數學函式,`Math`模組算是一個擴充,有更多跟數學相關的函式 ```python= import math ``` ### 取最近整數 >類似於[**高斯符號**](https://zh.wikipedia.org/zh-tw/%E5%8F%96%E6%95%B4%E5%87%BD%E6%95%B0) [] ```python= print(math.ceil(13.873096)) print(math.floor(13.873096)) ``` 1. ceil是取大於該數且最相近之整數 2. floor是取小於該數且最相近之整數 ### π ```python= print(math.pi) ``` [**其他函式**](https://www.w3schools.com/python/module_math.asp)