Python常用內置模組:datetime和math
1. datetime模組
# 導入datetime模組
from datetime import datetime, date, timedelta
# 獲取當前日期和時間
now = datetime.now()
print(now) # 2024-01-20 14:30:00
# 創建特定日期
birthday = datetime(2000, 1, 1)
today = date.today()
# 日期格式化
formatted_date = now.strftime("%Y年%m月%d日 %H:%M:%S")
print(formatted_date)
# 日期計算
tomorrow = today + timedelta(days=1)
next_week = today + timedelta(weeks=1)
two_hours_later = now + timedelta(hours=2)
實際應用示例:
# 計算年齡
def calculate_age(birthdate):
today = date.today()
age = today.year - birthdate.year
if today.month < birthdate.month or
(today.month == birthdate.month and today.day < birthdate.day):
age -= 1
return age
# 計算兩個日期之間的工作日
def count_workdays(start_date, end_date):
days = 0
current = start_date
while current <= end_date:
if current.weekday() < 5: # 0-4 表示週一到週五
days += 1
current += timedelta(days=1)
return days
2. math模組
# 導入math模組
import math
# 常用數學常數
print(math.pi) # 圓周率
print(math.e) # 自然對數的底
# 基本數學函數
print(math.sqrt(16)) # 平方根:4.0
print(math.pow(2, 3)) # 冪運算:8.0
print(math.floor(3.7)) # 向下取整:3
print(math.ceil(3.2)) # 向上取整:4
print(math.fabs(-5)) # 絕對值:5.0
# 三角函數
print(math.sin(math.pi/2)) # 正弦
print(math.cos(0)) # 餘弦
print(math.tan(math.pi/4)) # 正切
# 對數運算
print(math.log(100, 10)) # 以10為底的對數
print(math.log2(8)) # 以2為底的對數
print(math.log10(1000)) # 以10為底的對數
練習題
-
使用datetime模組完成以下任務:
- 計算你的確切年齡(年、月、日)
- 找出100天後是星期幾
- 計算兩個日期之間的工作日數量
-
使用math模組完成以下計算:
- 計算圓的面積和周長
- 解決一元二次方程
- 計算三角形面積(已知三邊長)
常見錯誤和注意事項
datetime模組:
- 注意時區問題
- 日期格式化時注意格式字符串的正確性
- 日期計算時考慮閏年
math模組:
- 三角函數使用弧度而非角度
- 注意浮點數精度問題
- 某些函數可能返回複數結果