ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Python math モジュールとは
math は Python 標準ライブラリに含まれる数学関数集です。C 言語の math.h をベースにしており、切り上げ / 切り捨て / 三角関数 / 対数 / 数学定数などを利用できます。
import math
print(math.pi) # 3.141592653589793
print(math.sqrt(2)) # 1.4142135623730951
print(math.ceil(3.2)) # 4
主要な関数を分野別に整理
1. 切り上げ・切り捨て・丸め
| 関数 | 意味 | 例 |
|---|---|---|
math.ceil(x) | x 以上で最小の整数 | ceil(3.2) → 4 / ceil(-3.2) → -3 |
math.floor(x) | x 以下で最大の整数 | floor(3.7) → 3 / floor(-3.7) → -4 |
math.trunc(x) | 小数部を切り捨てて整数化 | trunc(3.7) → 3 / trunc(-3.7) → -3 |
round(x) (組込) | 四捨五入 (バンカーズ丸め) | round(2.5) → 2 / round(3.5) → 4 |
import math
print(math.ceil(3.2)) # 4
print(math.ceil(-3.2)) # -3 (絶対値ではなく数直線上で上)
print(math.floor(3.7)) # 3
print(math.floor(-3.7)) # -4
print(math.trunc(-3.7)) # -3 (0 方向)
2. 絶対値・累乗・平方根
| 関数 | 意味 | 例 |
|---|---|---|
math.fabs(x) | 絶対値(float) | fabs(-3.5) → 3.5 |
math.pow(x, y) | x の y 乗(float) | pow(2, 10) → 1024.0 |
math.sqrt(x) | 平方根 | sqrt(16) → 4.0 |
math.cbrt(x) (3.11+) | 立方根 | cbrt(27) → 3.0 |
math.hypot(*args) | ユークリッド距離 | hypot(3, 4) → 5.0 |
math.gcd(*ints) | 最大公約数 | gcd(12, 18) → 6 |
math.lcm(*ints) (3.9+) | 最小公倍数 | lcm(4, 6) → 12 |
math.factorial(n) | 階乗 | factorial(5) → 120 |
3. 三角関数
引数はラジアン。度数法と相互変換できます。
import math
# 度 → ラジアン
print(math.radians(180)) # 3.141592653589793
# ラジアン → 度
print(math.degrees(math.pi)) # 180.0
# 三角関数
print(math.sin(math.pi / 2)) # 1.0
print(math.cos(0)) # 1.0
print(math.tan(math.pi / 4)) # 0.999... ≒ 1
# 逆三角
print(math.asin(1)) # 1.5707... (π/2)
print(math.atan2(1, 1)) # 0.7853... (π/4)
| 関数 | 意味 |
|---|---|
sin / cos / tan | 三角関数(引数: ラジアン) |
asin / acos / atan | 逆三角関数(戻り値: ラジアン) |
atan2(y, x) | 4 象限の逆正接(直交→極座標で頻出) |
sinh / cosh / tanh | 双曲線関数 |
radians(x) | 度 → ラジアン変換 |
degrees(x) | ラジアン → 度変換 |
4. 対数・指数
import math
print(math.log(math.e)) # 1.0 (自然対数 ln)
print(math.log(100, 10)) # 2.0 (底指定)
print(math.log2(8)) # 3.0
print(math.log10(1000)) # 3.0
print(math.exp(1)) # 2.718... (e^1)
print(math.exp(2)) # 7.389... (e^2)
5. 数学定数
| 定数 | 値 | 意味 |
|---|---|---|
math.pi | 3.141592653589793 | 円周率 π |
math.e | 2.718281828459045 | 自然対数の底 e |
math.tau | 6.283185307179586 | 2π(円一周) |
math.inf | 無限大 | float のオーバーフロー判定用 |
math.nan | NaN (Not a Number) | 無効な数値表現 |
6. 特殊な判定関数
import math
math.isnan(float("nan")) # True
math.isinf(float("inf")) # True
math.isfinite(1.0) # True
# 浮動小数点の近似比較(誤差を許容)
math.isclose(0.1 + 0.2, 0.3) # True
math.isclose(1.0, 1.0001, rel_tol=1e-3) # True
使い分け Tips
| 場面 | 選ぶもの |
|---|---|
| 整数のべき乗 (整数結果が欲しい) | ** 演算子 (2 ** 10) |
| float のべき乗 | math.pow() |
| 絶対値(型を維持) | 組込 abs() |
| 絶対値(float が欲しい) | math.fabs() |
| 四捨五入 | 組込 round() |
| 切り上げ / 切り捨て | math.ceil() / math.floor() |
| NumPy で配列演算したい | numpy.sin() など(math はスカラ専用) |
関連モジュール
| モジュール | 用途 |
|---|---|
cmath | 複素数版 math(複素対数 / 複素三角関数) |
statistics | 平均 / 分散 / 標準偏差 |
random | 乱数生成 |
fractions | 有理数 |
decimal | 10 進数の正確な演算(金融用) |
numpy (外部) | 配列ベクトル化された数値計算 |
FAQ
Q: math.sqrt(-1) はエラーになる
A: 負数の平方根は math では ValueError。複素数で計算したいなら cmath.sqrt(-1) で 1j が返る。
Q: 0.1 + 0.2 == 0.3 が False
A: 浮動小数点の宿命。math.isclose(0.1 + 0.2, 0.3) で許容範囲つき比較を。
Q: 大規模な数値計算なら?
A: NumPy / SciPy のほうが圧倒的に高速かつ機能豊富。math は単体スカラ用と割り切る。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
同階層のページ
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?