ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
Python(パイソン) は、オランダ人プログラマ Guido van Rossum(グイド・ヴァン・ロッサム)が 1991 年に最初のバージョンを公開した汎用プログラミング言語です。名前の由来は英国コメディ番組「Monty Python's Flying Circus」で、ヘビとは無関係ですが、ロゴには 2 匹のヘビがあしらわれています。設計思想は 「There should be one-- and preferably only one --obvious way to do it.(やり方は 1 つ、できれば唯一であるべき)」(The Zen of Python)に代表されるように、可読性と一貫性を最優先しています。
Python の型システムは 動的型付け・強い型 です。変数に型宣言は不要で実行時に型が決まりますが、文字列と整数の暗黙的な変換は行わない("a" + 1 はエラー)など、JavaScript のように型が「曖昧に変換される」ことはありません。Python 3.5 で typing モジュールが追加されてからは、def add(x: int, y: int) -> int: のような 型ヒント が広く使われ、mypy / pyright / pyre による静的解析が可能になりました。ただし型ヒントは実行時に強制されず、ドキュメント+外部チェッカ用です。
実行モデルは インタプリタ ですが、内部では .py を バイトコード(.pyc) にコンパイルしてから Python 仮想マシンで実行します。バイトコードは __pycache__/ ディレクトリに自動生成され、再実行時のパース時間を短縮します。リファレンス実装は C で書かれた CPython で、Python と言えば通常これを指します。代替実装に PyPy(独自 JIT で 4〜10 倍高速)、Jython(JVM)、IronPython(.NET CLR)、MicroPython(マイコン向け)などがあります。
ファイル種類とビルド成果物
| 拡張子 | 役割 | 備考 |
|---|---|---|
.py | ソースコード(テキスト) | UTF-8 が標準。Python 3 では BOM 不要 |
.pyc | コンパイル済みバイトコード | __pycache__/モジュール名.cpython-312.pyc のように Python バージョン入り |
.pyo | 最適化済みバイトコード(旧) | Python 3.5 以降は .pyc に統合され廃止 |
.pyd | Windows 用 C 拡張モジュール | 実体は DLL。import 可能 |
.pyi | 型スタブファイル | シグネチャだけ書く。typeshed で標準ライブラリのスタブを配布 |
.pyw | Windows 用 GUI スクリプト | コンソールを開かずに起動 |
.whl | Wheel パッケージ | pip でインストールするバイナリ配布形式 |
.egg | 旧配布形式(非推奨) | Wheel に移行済み |
「Hello, World」
#!/usr/bin/env python3
"""hello.py — 最小の Python プログラム"""
def greet(name: str) -> str:
return f"Hello, {name}!"
if __name__ == "__main__":
print(greet("World"))
1 行目の shebang #!/usr/bin/env python3 を書き、chmod +x hello.py で実行権を付ければ Unix 系では ./hello.py で直接起動できます。if __name__ == "__main__": イディオムは、ファイルが import された場合に実行を抑制する慣用句で、Python では ほぼ必須のお作法 です。
パッケージ管理・ビルドツール
- pip:Python 標準のパッケージインストーラ。
pip install requestsで PyPI から取得 - venv / virtualenv:プロジェクトごとに独立した Python 環境を作る。
python -m venv .venv+source .venv/bin/activate - poetry:
pyproject.toml1 本で依存・ビルド・公開まで管理する近代的ツール - uv:Rust 製の超高速 pip 互換ツール(2024 年〜急速に普及)
- conda:Anaconda / Miniconda 由来。バイナリ依存(NumPy/SciPy 等)を含むデータサイエンス向け
- pipx:CLI ツール(
black、ruff等)を隔離環境にインストール - setuptools / build / hatchling:ライブラリを Wheel にパッケージング
関連言語との比較
| 項目 | Python | Ruby | JavaScript | Go |
|---|---|---|---|---|
| 登場年 | 1991 | 1995 | 1995 | 2009 |
| 型システム | 動的・強 | 動的・強 | 動的・弱 | 静的・強 |
| 実行モデル | バイトコード VM | バイトコード VM(YARV) | JIT | ネイティブコンパイル |
| 主な用途 | AI・科学計算・Web・自動化 | Web(Rails) | Web フロント・サーバ | サーバ・CLI・ミドルウェア |
| パッケージ | pip / PyPI | gem / RubyGems | npm | go mod |
| 並行性 | GIL あり(CPython) | GVL あり(MRI) | イベントループ | Goroutine |
注意点・落とし穴
- GIL(Global Interpreter Lock):CPython では同時に 1 スレッドしか Python バイトコードを実行できない。CPU バウンド処理は
multiprocessingや C 拡張で回避。Python 3.13 で実験的に GIL 無効化オプションが追加された - インデント=構文:ブロックは
{}ではなくインデントで決まる。タブとスペースの混在はTabErrorになるので スペース 4 つに統一(PEP 8) - ミュータブルなデフォルト引数:
def f(x=[]):のデフォルトは関数定義時に 1 回だけ評価され、呼び出し間で共有される。Noneを使うのが定石 - 2 系と 3 系の非互換:Python 2 は 2020-01 で EOL。
print文、unicode/strの扱いなどが大きく変わった __pycache__のコミット禁止:.gitignoreに必ず追加- 循環インポート:モジュール間で相互
importすると順序によって失敗する。設計で回避
関連リンク
- 親カテゴリ:プログラミング・スクリプト
- 概論:ファイル拡張子とは
- IT サイト共通カテゴリ:プログラミング言語(カテゴリ)
- 外部:python.org / PEP 8
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?