出典: フリー百科事典『ウィキペディア（Wikipedia）』
この項目では、プログラミング言語について説明しています。その他の用法については「
参考文献や出典が全く示されていないか、不十分です。
して記事の信頼性向上にご協力ください。
命令型プログラミング、マルチパラダイムプログラミング
テンプレートを表示（パイソン）は、主として
Pythonは1990年代初頭に
グイド・ヴァン・ロッサムが開発し、1991年2月に0.9.0として公開された
最初にリリースされたPythonの設計哲学は、ホワイトスペース（オフサイドルール
の可読性を重視している。その言語構成と
オブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
動的型付き言語であり、ガベージコレクションがある。
関数型プログラミングを含む複数の
プログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現されている
Pythonのインタプリタは多くのOSに対応している。プログラマーのグローバルコミュニティは、自由かつオープンソース
を開発および保守している 。非営利団体である
Pythonソフトウェア財団は、PythonとCPythonの開発のためのリソースを管理・指導している。
上で実行することを前提に設計している。以下の特徴をもっている:
・オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
Pythonには、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しており、Pythonコミュニティでも単純で簡潔なコードをよしとする傾向が強い
Pythonの本体は、ユーザがいつも必要とする最小限の機能のみを提供する。基本機能以外の専門機能や拡張プログラムはインターネット上にライブラリとして提供されており、別途ダウンロードして保存し、必要なツールはこのツールキットからその都度呼び出して使用する
Pythonでは「あることをなすのに唯一の良いやり方があるはず」という哲学がある（参考:「やり方は一つじゃない」
Pythonではプログラムの文書化（ソフトウェアドキュメンテーション
）が重視されており、言語の基本機能の一部となっている。
（関数名：factorial）を題材にC言語と比較した例を示す。
わかりやすく整形されたC言語のコード:
この例では、Pythonと整形されたC言語とでは、プログラムコードの間に違いがほとんど見られない。しかし、C言語のインデントは構文規則上のルールではなく、単なる読みやすさを向上させる
コーディングスタイルでしかない。そのためC言語では全く同じプログラムを以下のように書くこともできる。
Pythonではインデントは構文規則として決められているため、こうした書き方は不可能である。Pythonではこのように強制することによって、ソースコードのスタイルがその書き手にかかわらずほぼ統一したものになり、その結果読みやすくなるという考え方が取り入れられている。これについては賛否両論があり、批判的立場の人々からは、これはプログラマがスタイルを選ぶ自由を制限するものだ、という意見も出されている。
インデントによる整形は、単に「見かけ」だけではなく品質そのものにも関係する
このコードはC言語の構文規則上は問題無いが、インデントによる見かけのifの範囲と、言語仕様によるifの実際の範囲とが異なっているため、プログラマの意図が曖昧になる（前者は"y = 0;"がif文に包含され、後者は"{}"がないため"y = 0;"がif文に包含されない）。この曖昧さは、検知しにくいバグを生む原因になる。例としてはが挙げられる。
ソースコードを読む際、多くの人はインデントのような空白を元に整列されたコードを読み、コンパイラのように構文解析しながらソースを読むものではない。その結果、一見しただけでは原因を見つけられないバグを作成する危険がある。
Pythonではインデントをルールとすることにより、人間が目視するソースコードの理解とコンパイラの構文解析の間の差を少なくすることで、より正確に意図した通りにコーディングすることができると主張されている
システムをもつ。同時に任意の型ヒントを持っており外部ツールによる静的型チェックを可能にしている。
値自身が型を持っており、変数はすべて値への
型・文字列型・バイト列型・関数型がある。整数型は（メモリの許す限り）無制限の桁数で整数計算が可能である。浮動小数点数型を整数型にキャストすると、小数点以下が切り捨てられる。
型がある。リスト型および辞書型は
イミュータブルである。集合型には変更可能なものと変更不能なものの2種類がある。タプル型とリスト型は、多くのプログラミング言語では
と呼ばれるものに類似している。しかし、Pythonではタプル型は辞書のキーとして使うことができるが、リスト型は内容が変わるため辞書のキーとして使うことはできないという理由から、これら2つの型を区別している。
多くのオブジェクト指向プログラミング言語と同様、Pythonではユーザが新しく自分の型を定義することも可能である。この場合、組み込み型を含む既存の型を継承して新たな型（クラス）を定義する事も、ゼロから全く新しい型を作り出す事も出来る。
Pythonは基本的にメソッドや関数の引数に型を指定する必要がない。そのため、ダック・タイピングという、内部で必要とする演算子やメソッドに対応していれば、関数やオブジェクトの設計時点で意図していなかったオブジェクトを引き渡すことも可能である。
Pythonは型ヒントの構文を用意している
。これはプログラマ向けの注釈および外部ツールによる静的型チェックに用いられる。
例として、文字列型の値を受け取って文字列型の値を返す関数は次のようにアノテーションできる。
は特定のキーとバリュー型をもった辞書オブジェクトを表現する型である
型の定義にはクラス継承構文が用いられるが、この型を持つオブジェクトはランタイムにおいて純粋な
インスタンスになる。つまり型ヒント専用の型であり、ランタイム型とは区別される
ガベージコレクションを内蔵しており、参照されなくなったオブジェクトは自動的にメモリから破棄される。
では、ガベージコレクションの方式として
方式を併用している。マーク・アンド・スイープ方式のみに頼っている言語では、オブジェクトがいつ回収されるか保証されないので、ファイルのクローズなどを
デストラクタに任せることができない。CPythonは参照カウント方式を併用することで、循環参照が発生しない限り、オブジェクトはスコープアウトした時点で必ずデストラクトされることを保証している。なおJythonおよびIronPythonではマーク・アンド・スイープ方式を採用しているため、スコープアウトした時点で必ずデストラクトされることが前提のコードだとJythonやIronPythonでは正しく動かない。
イテレータを実装するためのジェネレータが言語仕様に組み込まれており、Pythonでは多くの場面で
イテレータを使うように設計されている。イテレータの使用はPython全体に普及していて、プログラミングスタイルの統一性をもたらしている。
Pythonでは扱えるデータの全てがオブジェクトである。単純な数値といった基本的なデータ型をはじめ、組み込みのコンテナ型、組み込み関数など、これらは全て統一的な継承関係をもつオブジェクトであり「型」をもっている。これらの組み込み型とユーザ定義型は区別されず、組み込み型を継承したクラスを定義できる。上の「データ型」の項で述べたように Pythonは静的な型チェックを持たないため、Javaのようなインターフェイスという言語上の仕組みは必要とされない。
) メカニズムでは、複数の基底クラスを持つことができ（多重継承）、導出されたクラスでは基底クラスの任意のメソッドをオーバライド（; 上書き）することが可能である。
また、オブジェクトには任意のデータを入れることができる。これらのメソッドやデータは、基本的に、すべてであり、（仮想）である。ただし、先頭にアンダースコアをもつメンバをとすることができる。これは単なるマナーであるが、アンダースコアを2つもつ場合は、クラスの外部からメンバの名前を隠された状態（; 難号化）とすることで
カプセル化を実現できる。また、利用者定義演算子が機能として用意されておりほとんどの組み込み演算子（算術演算子（）や添字表記）はクラスインスタンスで使うために再定義することが可能となっている。
Pythonには「電池付属 ()」という思想があり、プログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしている
サードパーティによるライブラリも豊富に存在する（参考:
Pythonは様々な組み込み型（built-in types）をサポートする。
Mapping型はハッシュ可能な値を任意のオブジェクトへ対応付ける型である
。対応する具象クラスはである。抽象基底クラスにがあり、抽象メソッドとしてが定義されている。
をもったcollectionとも言える。
最初のPythonでは1バイト単位での
型のみ扱い、ひらがな・(全角) カタカナ
マルチバイト文字はサポートしていなかったが、その後のPython 2.0からは
Python 3.0では、Python 2.xにおける文字列型がバイト列型に、またUnicode文字列型が文字列型に変更された。これにより、文字列をPython 3.0で扱う際には後述の変換処理を必ず行う必要がある。ファイル入出力などでエンコードを明示しなければ、標準エンコードを用いて暗黙に行われる場合も多い。これにより多言語の扱いを一貫したものにしている。
エンコードとUnicodeの内部表現を明確に区別している。Unicode文字はメモリ中に保持される抽象的なオブジェクトであり、画面表示やファイルへの入出力の際には変換ルーチン（コーデック
）を介して特定のエンコーディングのバイト列表現との間で相互に変換する。また、ソースコード中の文字コードを認識する機能があり、これによって異なる文字コードで書かれたプログラムの動きが異なるリスクを解消している。
Pythonでは変換ルーチンをモジュールとして追加することで、さまざまなエンコーディングに対応できるようになっている。日本語の文字コード（EUC-JP, Shift_JIS, MS932, ISO-2022-JP）に対応したコーデックも作成されている。Python 2.4からは、日中韓国語用のコーデックが標準でディストリビューションに含まれるようになったため、現在では日本語の処理に関する問題はほとんどなくなった。ただしGUIライブラリである
統合開発環境は、プラットフォームにもよるが、まだきちんと日本語に対応していないものもある。
ソースコードの文字コードには、ASCIIと互換性があり、Pythonが対応しているものを使用する。ソースコードのデフォルトエンコーディングは、Python 3.xではUTF-8（ソースコード以外のPython 3のデフォルトエンコーディングは複雑になっている
）、Python 2.xではASCIIであるが、デフォルトエンコーディング以外の文字コードを使う場合は、ソースファイルの1行目か2行目に一定の書式でコメントとして記述することになっており、しばしば以下のように
などのテキストエディタにも認識可能な書式で記述される（次の例は Emacs が認識できる書式）。
型言語であり（ほとんどの場合）プログラムの実行に際して実行環境（ランタイム
）を必要とする。以下はランタイム（実装）およびそれらが実装されているプラットフォームの一覧である。
Pythonの最初のバージョンは
上で開発された。のちに多くの計算機環境上で動作するようになった。
プラットフォーム（ランタイム・コンパイラ
Pythonには複数の実装（ランタイム又はコンパイラ）が存在する。
で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
・PythonをC言語化へトランスコードするソフトウェア。静的型付けが可能で速度の向上をはかれる。
で実装されている。.NET Frameworkのライブラリを使うことができる。
上に構築されているため、既存の.NETアプリケーションへ
マクロ言語として搭載することも可能となっている。
・組み込み向けの実装。256 kB以上のフラッシュを推奨。
向けの実装・対話計算に向けたPythonへのシェル
Codon - Python言語ソースから機械語へのコンパイラ処理系
PyOMP - PythonをOpenMPで並列化するシステム
最新の Python 仕様には追従していないが開発が続けられているランタイム・コンパイラとしては以下が挙げられる。
上に移植したもの。PythonからJavaのライブラリを使うことができる。Python 2 系 (2025-06現在)
開発が停止・終了したランタイム・コンパイラ
スタックを使わずに独自のスタック（Pythonスタック）で実装。2021年で開発停止、2025年に終了宣言のチームによるPythonの実装。
。2012年に開発終了・組み込み向けの実装、などに対応。
・同じく組み込み向けの実装。ソースコードが 64
未満と非常に軽量なことが謳われている。
Pythonはパッケージ管理ソフト・ライブラリ・レポジトリなどからなるエコシステムを形成している。
ビルドシステム/wheel/インストーラ
パッケージ管理システムによっておこなわれる。バイナリパッケージの
インタフェースとしてビルドシステムとパッケージ管理システムの分離が可能になっている（PyPI）と呼ぶ公式のパッケージリポジトリが存在する。
パッケージ管理および実行環境管理を含めた統合開発環境としてはが存在する。
Pythonは多様なコミュニティライブラリによって支えられている。
プログラミング数学、科学、工学のための数値計算
機械学習・データサイエンス・AI
3Dグラフィックスやアニメーション
Pythonアプリのコンパイルによる高速化
クローリング、スクレイピング用のpythonフレームワーク
Webアプリケーションフレームワーク（ボトル） -（チェリーパイ） -（ジャンゴ） -（フラスク） -（ファストエーピーアイ） -（ピラミッド） -（プローン） -（トルネード） -（サイクロン） -
Pythonを使っている製品あるいはソフトウェアの一覧
Pythonは全世界で使われているが、欧米の企業でもよく使われている。大企業では
などのパッケージソフトウェア企業をはじめ、などの企業も利用している
では、S60シリーズでPythonアプリケーションが動く
高エネルギー加速器研究機構でPythonが使われている。
ベースのアプリケーション、3Dモデリング
データサイエンスおよび数値計算用途
などの高速な数値計算ライブラリの存在により、データサイエンスや科学技術コンピューティングにもよく用いられる。NumPy、SciPyの内部はC言語で書かれているので、動的スクリプト言語の欠点の一つである動作速度の遅さを補っているを使うと、Python のコードが
して利用可能であり、非常に高速な計算ができる。
上で高速に計算するライブラリも充実している。
とPythonソフトウェア財団による共同調査によると、2017年10月現在、Pythonの最も主要な用途は何かというアンケートの結果によると、27%がデータサイエンス（そのうち18%がデータ解析、9%が
Webアプリケーションフレームワークが充実しているため、Webアプリケーション開発用途にも多く使われている。JetBrains とPythonソフトウェア財団による共同調査によると、2017年10月現在、26%の人が最も主要な用途としてWeb開発を選んだ
：オープンソースで商用利用も可能なので、スマホアプリの販売が可能。androidアプリもiOSアプリも作成することが可能
：pythonの標準ライブラリで簡単にGUIアプリを作成可能。ネットでの情報が最も多い
：クロスプラットフォームで作成可能だが、商用利用は有償
：クロスプラットフォームで動作可能なGUIアプリを作成可能
システム管理およびグルー言語用途
スクリプト言語としての特性から、従来
シェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして複数ので採用されている。また、異なる言語で書かれた多数のモジュールの機能を貼り合わせる
グルー言語（糊の言語）として利用する例も多い。実際、多くの商用
アプリケーションでPythonは組み込みのスクリプト言語として採用されている。
JetBrainsとPythonソフトウェア財団による共同調査によると、2017年10月現在、9%の人が最も主要な用途として、システム管理、自動化スクリプトを上げた
Pythonは本来は教育用を目的として設計されたわけではないが、その単純さから子供が最初に学ぶプログラミングにおける教育用の言語としての利用が増えている。
グイド・ヴァンロッサムはPython設計以前に教育用言語であるの開発にかかわり、教育用としての利用について期待感を示したこともあり、方針として非技術者向けといった利用を視野に入れているとされることもある
私の大好きなPython利用法は、騒ぎ立てずに、言語教育でプログラミングの原理を教えること。それを考えてくれ――次の世代の話だね。
スラド『 Guido van Rossum へのインタビュー』
基本情報技術者試験では2020年の春期試験からを廃止してPythonを追加した
高等学校情報科「情報Ⅰ」の教員向け研修教材の中で、プログラミング用言語としてPythonが使われている
ただし、Pythonの言語は言語自身に組み込まれている型とそれに付随するメソッドの多いことなどから、C言語に較べると遙かに多くの憶えなければならない事柄があることになる。持つ機能の一部だけに限定して教育に用いるならば、憶えなければならない事柄を減らすことができる。しかし言語の機能をすべて知っていないと他人の書いたプログラムを正しく理解することが出来ない可能性が生じる。Python言語の変数自身には型が無いことから、プログラム上で扱われているデータ・オブジェクトの型が何であるかは実行時に動的に決まるので、それを読み解いて把握しなければプログラムが行っている処理の内容を正しく把握することが難しいことがしばしばある（正しい注釈を付けてプログラムを書くことが重要である）。
また、Pythonの文法は僅か1行でも処理を記述できるほどに簡潔なので、まだプログラミングについてよく知らない子供でも取り組みやすい言語であると言える。
# Pythonはたった一行のコードで文字を表示することができる。
// Javaでは文字の表示に最低5行コードを記述する必要がある
Pythonはその文法の簡潔さにより、 誰が書いても似たようなコードになりやすい性質があるので、学習が進むにつれて大人が作成したコードを理解できるようになる。
また、文法が簡潔なのでコードを記述している最中に混乱することが少なくなり、子供が途中で諦めてしまう傾向が少ない点も教育用として利用される理由でもある。
この節で示されている出典について、該当する記述が
具体的にその文献の何ページあるいはどの章節にあるのか、特定が求められています
Pythonはプロスポーツの分析によく使われている。
メジャーリーグベースボール（野球）、イングリッシュプレミアリーグ（サッカー）、ナショナルバスケットボールアソシエーション（バスケットボール）、ナショナルホッケーリーグ（アイスホッケー）、インディアンプレミアリーグ（クリケット）の実際のデータセットからのスポーツ分析は、ベストセラーの
マネーボールによって示される現実世界の成功によって部分的に推進され、人気が高まっている研究分野として浮上している（セイバーメトリクス
）。チームとプレーヤーのパフォーマンスデータの分析は、フィールド、コート、氷上だけでなく、ファンタジースポーツプレーヤーやオンラインスポーツギャンブルのリビングルームでもスポーツ業界に革命をもたらし続けている。実際のスポーツデータを使用した予測スポーツ分析の原則を使用して、プレーヤーとチームのパフォーマンスを予測する
Pythonを使ってデータをプログラミングする方法を示したり、マネーボールのストーリーの背景にある主張を検証したり、マネーボールの統計の進化を調べたりすることが可能である。公開されているデータセットから野球のパフォーマンス統計を計算するプロセスを案内される。実行期待値マトリックスを使用して導出された、より高度な測定値（Wins Above Replacement（）など）に進む。これらの統計を使用して、独自のチームおよびプレーヤーの分析を行うことができるようになる
Pythonを使用してプロスポーツの試合結果の予測を生成する方法の主な重点は、チームの支出に関するデータを使用して、ゲームの結果をモデル化する方法として
ロジスティック回帰の方法を教えることである。過去の結果をモデル化し、そのモデルを使用して、まだプレイされていない結果のゲームを予測するプロセスを実行する。ベッティングオッズのデータを使用してモデルの信頼性を評価する方法をオーナーに示す。分析は最初に英国プレミアリーグに適用され、次にNBAとNHLに適用される。データ分析とギャンブルの関係、その歴史、および個人的なリスクを含むスポーツベッティングに関連して発生する社会的問題の概要も説明する。マネーボールは、データ分析を使用してチームの勝率を高めることができることを示すことにより、プロスポーツのパフォーマンス統計の分析に
Pythonを使用してデータをプログラムし、マネーボールのストーリーの背後にある主張をテストし、マネーボール統計の進化を調べる方法を示し、公開されているデータセットから野球のパフォーマンス統計を計算するプロセスができる
。スポーツ分析には、トレーニングと競技の両方の取り組みを定量化するアスリートとチームからの大量のPythonデータセットが含まれるようになった。ウェアラブルテクノロジーデバイスは、アスリートが毎日着用しており、シーズン全体にわたるアスリートのストレスと回復を詳細に調べるためのかなりの機会を提供する。これらの大規模なデータセットのキャプチャは、怪我の予防に関する新しい仮説と戦略、およびトレーニングと回復を最適化するためのアスリートへの詳細なフィードバックにつながった。Pythonでのプログラミングを使用して、トレーニング、回復、パフォーマンスに関連する概念を調査することもできる（sklearn）ツールキットと実際の運動データを使用して教師あり機械学習手法を探索し、機械学習アルゴリズムと運動結果の予測方法の両方を理解する。
およびロジスティック回帰、アンサンブル
などの方法を適用して、NHLやMLBなどのプロスポーツリーグからのデータを調べる。また、慣性測定ユニット（IMU）などのウェアラブルデバイスも含まれる。分類と回帰の手法を使用して、運動活動やイベント全体であるスポーツ分析を可能にする方法を幅広く理解できるようになる。スポーツコンテストのカテゴリ別結果変数（つまり、勝ち、引き分け、負け）を処理する際の回帰モデル、線形確率モデル（LPM）を、その理論的基礎、計算アプリケーション、および経験的制限の観点からモジュールは、カテゴリ従属変数のLPMのより良い代替として、ロジスティック回帰をし、デモンストレーションする。順序付けられたロジットモデルと公開されている情報を使用してEPLサッカーゲームの結果を予測する方法を示す。ベッティングオッズに対してこれらの予測の正確さを評価し、それらが非常に正確であることを示す。北米の3つのチームスポーツリーグ（NHL、NBA、MLB）のコンテキストでモデルを複製することにより、前週に取り上げたEPL予測モデルの有効性を評価する。具体的には、順序付けられたロジットモデルと公開されている情報を使用して、NHL、NBA、MLBのレギュラーシーズンゲームの結果を予測する
オブジェクト指向を対応させるために作られた言語である
。正確には、AmoebaへABC言語を実装する研究をしていたヴァンロッサムが、クリスマス休暇の間にC言語を元にして生まれたインタープリターから始まる
にヴァンロッサムがPython 0.90の
ソースコードを公開した。この時点ですでにオブジェクト指向言語の特徴である
1月、Python 1.0を公開した。主な特徴として
ラムダ計算を実装、map関数・reduce関数などを組み込んだ。
バージョン1.4からはにある機能とよく似た
キーワード引数を導入した。また簡易ながら
を導入した。一躍メジャーな言語となった。多くの機能はを参考にして導入している。
バージョン2.4には、子プロセスの起動やコマンドを実行できるsubprocessモジュールが実装された。
2.6以降のバージョンには、2.xから3.xへの移植を助ける「2to3 ツール」と「lib2to3 モジュール」を含んでいる
。2.7が2.xの最後のバージョンで、2.7のサポートは
。ただし、サポート終了後に 2.7.18 を2020年4月にリリースし、これが最後の 2.7.x になる
。これ以上のセキュリティパッチやその他の改善はリリースされない
、長い試験期間を経てPython 3.0が公開された。
開発初期には、西暦3000年に公開予定の理想のPythonとして、Python 3000と呼んでいた。Py3Kと略すこともある。
しかし2.xとの後方互換性が損なわれている。当初は2.xに比べて3.xが利用できるライブラリ等が著しく少ないという問題点があったが、など徐々に3.xに対応したフレームワークやライブラリなどが増えていったこともあり、時点においては新規のプロジェクトについて3.xで開発することが多くなっている
。JetBrains とPythonソフトウェア財団による共同調査では、Python の 2 と 3 がどっちがメインであるかというアンケートで、Python 3 がメインであると答えた人が、2016年1月は40%だったが、2017年10月は75%になった
11月にリリースされたや2016年4月にリリースされたでは、デフォルトでインストールされるPythonのバージョンが2.xから3.xに変更されている。
では8をもってPython 2が廃止となった
print命令をprint関数へ変更
単体テストフレームワーク「unittest」への機能追加
import文のリファレンス実装となる、Pythonで実装したimportlibモジュール
ネストしたwith文に対する新たな文法
単体テストモジュールのアップデートや拡張モジュール向け stable ABI
pyc レポジトリディレクトリのサポート
E-mail パッケージや SSL モジュールの改善
3.1リリースから2年間、言語仕様を凍結し変更を行わない「モラトリアム期間」を解除した
新しい文法として、ジェネレータ関数内で別のジェネレータ関数を利用する「yield from」を追加。
「u」や「U」といったプレフィックスを用いたUnicodeリテラルシンタックスを復活
UCS-4文字列にも対応し、文字列表現の柔軟性を強化
仮想化Python実行環境を導入するためのvirtualenvパッケージの機能を「venv」機能としてコアに取り込んだ。
オブジェクト指向ファイルシステムパスを提供する「pathlib」モジュールの提供
列挙型を扱うためのenumモジュールの標準化
統計関数を提供するstatisticsモジュールの導入
Pythonが割り当てたメモリブロックを追跡するためのデバッグツールのtracemallocモジュールの導入
非同期I/Oを扱うためのフレームワークとなるasyncioモジュールの導入
Pythonの組み込み関数に関する分析情報を得るため機構の実装
zipアプリケーションサポートの改良
byte/bytearrayオブジェクトのための「%」フォーマット対応の追加
高速ディレクトリトラバーサル機能os.scandir()の導入
割込がかかったシステムコールのオートリトライ機能追加
近似値であるかどうかをテストする機能の導入.pyoファイルの削除
拡張モジュールをロードするための新しい仕組みの導入
文字列中に式を埋め込める「Formatted string literals」の導入
変数に対して型に関する情報（型ヒント）を与える「Syntax for variable annotations」の導入
)でコルーチンを利用可能にする「Asynchronous generators」の導入
標準ライブラリにsecretsモジュールを追加
DTraceおよびSystemTapプローブのサポートを追加
使用時点では宣言されていない型を使った型アノテーション表記が可能となる
レガシーな C ロケールの抑圧、強制 UTF-8 実行モード
s) 単位の分解能を持つ新しい時間関数の追加
f文字列で f'{expr=}' の形式のサポート
dict での reversed のサポート
デバッガなどでより正確な行番号を表示
ユニオン型を X | Y と書けるようになったを付与した明示的な型エイリアス
で、グイド・ヴァンロッサムによってPythonの初期バージョンが作成される。
1995年 - ヴァンロッサムは米国ヴァージニア州レストンにあるに移動。ここでPythonの開発に携わり、いくつかのバージョンを公開する。
2000年3月 - ヴァンロッサムとPythonのコア開発チームは BeOpen.com に移り、BeOpen PythonLabs チームを結成する。同年10月、PythonLabsチームはDigital Creations (現在の
2001年 - Pythonに関する知的財産を保有するための非営利組織
Pythonソフトウェア財団（PSF）が立ち上がる。このときZope CorporationはPSFの賛助会員となる。
インデントによる構文）（モジュール機能、オブジェクト指向）（辞書、スライス演算子など）
（リストの内包表現）（基本的な構文）（仮想マシン機構、動的性）
オープンソースで配布されている。このライセンスの内容はに類似したものであるが、変更したバージョンを配布する際に変更をオープンソースにしなくてもよい、という点がGPLとは異なっている。
・標準ライブラリミニツアー. 2026年1月4日閲覧。
一発で素人だとばれるPythonコード、「a=1」のどこがまずいのか
”.   日経クロステック. 2025年5月10日閲覧。
typing --- 型ヒントのサポート — Python 3.10.0b2 ドキュメント
”. 2025年6月11日閲覧。
”. 2006年4月28日時点の
よりアーカイブ。2007年1月17日閲覧。
よりアーカイブ。2007年1月17日閲覧。
”. 2011年5月16日閲覧。
プレス発表 基本情報技術者試験における出題を見直し：IPA 独立行政法人 情報処理推進機構
初等中等教育局情報教育・外国語教育課
高等学校情報科「情報Ⅰ」教員研修用教材（本編）
第3章 コンピューターとプログラミング
Pythonとは？主な特徴や子どもに習得させるメリットを知っておこう. 2023年6月2日閲覧。
Pythonの歴史について起源から分かりやすく解説
テクフリ. 2025年11月21日閲覧。
「Pythonのsubprocessモジュールの使い方｜子プロセスの起動方法からわかりやすく解説」.NET Column (2021年3月25日) 2023年5月17日閲覧。
"Python 2.7.18はPython 2.7の最後のリリースであり、したがってPython 2の最後のリリースである ". 2020年4月27日閲覧。
【入門者必見】Python2と3、どっちを学習すべき？違いを徹底解説！
”.   株式会社 侍. 2016年9月21日閲覧。
. 2013年10月24日時点の
よりアーカイブ。2016年9月21日閲覧。
RHEL8/9系ディストリビューションでPython 3を使う
登場! Python 3.0 - 2系との違いを比較
マイナビ(2009年1月1日). 2014年3月13日閲覧。
「Python 3.1」正式版リリース
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
末岡洋子 (2012年10月1日). “
仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース. 2012年10月2日時点の
よりアーカイブ。2014年3月13日閲覧。
後藤大地 (2014年3月18日). “
マイナビニュース. 2014年3月20日閲覧。
末岡洋子 (2014年3月18日). “「Python 3.4」リリース、標準ライブラリを強化. 2014年3月19日時点の
よりアーカイブ。2014年3月20日閲覧。
後藤大地 (2015年9月13日). “
マイナビニュース. 2015年11月5日閲覧。
「Python 3.5」正式版がリリース – 新機能が多数追加
”.   ソフトアンテナブログ (2015年9月14日). 2022年10月2日時点の
よりアーカイブ。2015年11月5日閲覧。
末岡洋子 (2016年12月26日). “. 2016年12月26日時点の
よりアーカイブ。2017年5月26日閲覧。
”. 2016年12月5日閲覧。
”. 2007年1月15日閲覧。
よりアーカイブ。2014年3月13日閲覧。
ポータル FOSS・Pythonを対話的に実行するためのシェル。
・Python言語ベースのハードウェア記述言語
Julia (プログラミング言語)・PythonのライブラリやC言語、Fortran言語のコードを呼び出せるプログラミング言語。Pythonよりも動作が高速である。
空飛ぶモンティ・パイソン・これがPythonという言語名の由来である
石本敦夫：「Python文法詳解」、オライリージャパン、大和田勇人、金盛克俊：「Pythonで始めるプログラミング入門」、コロナ社、滝澤成人：「Python [基礎編] ワークブック」、カットシステム、松浦健一郎、司ゆき：「わかるPython [決定版] 」、SBクリエイティブ、柴田望洋：「新・明解Python入門」、SBクリエイティブ 、（2019年5月30日）。＃（これは初版、第2版あり）
亀田健司：「1週間でPythonの基礎が学べる本」、インプレス、山田祥寛：「独習Python」、翔泳社、Guido van Rossum：「Pythonチュートリアル 第4版」、オライリージャパン、Bill Lubanovic：「入門 Python 3　第2版」、オライリージャパン、松浦健一郎、司ゆき：「Python [完全] 入門」、SBクリエイティブ、小高知宏：「Python言語で学ぶ基礎からのプログラミング」、近代科学社、岩崎圭、北川慎治、寺田学：「スラスラわかるPython 第2版」、富樫敦：「コンピュータプログラミング：Pythonでアルゴリズムを実装しながら問題解決を行う」、コロナ社、松尾正信
:「Pythonプログラミング ABCー正確に・美しく・簡潔に! ー」、近代科学社、上野照正、山崎貴史：「プログラムのつくりかた Python 基礎編 Lv.1」、実教出版、山崎貴史、廣田龍之介、森田直人：「Python ハンディプログラミング事典」、実教出版、Patrick Viafore：「ロバストPython ―クリーンで保守しやすいコードを書く」、オライリー・ジャパン、Micha Gorelick、Ian Ozsvald：「ハイパフォーマンスPython 第2版」、オライリー・ジャパン、Wes McKinney：「Pythonによるデータ分析入門 第3版」、オライリー・ジャパン、柴田望洋：「新・明解Python入門 第2版」、SBクリエイティブ 、David M. Beazley、鈴木駿（訳）：「Python Distilled - プログラミング言語Pythonのエッセンス」、オライリー・ジャパン、Christian Hill:「Python科学技術計算：物理・化学を中心に」第２版，東京化学同人、(2023年11月20日)。※ 利用例
金城俊哉：「PC・IT図解 Pythonプログラミングの技術としくみ」、秀和システム、綾皓二郎：「計算論的思考を育むPythonプログラミング入門」、近代科学社、(2024年6月24日)。※ 高速化技法
altnight，石上晋，delhi09，鈴木たかのり，斎藤努：「現場のPython ──Webシステム開発から、機械学習・データ分析まで」、技術評論社、Claudio Jolowicz：「ハイパーモダンPython」、オライリー・ジャパン、
Glyn Moody 小山祐司監訳『ソースコードの反逆』
ウィキメディア・コモンズには、に関連するカテゴリがあります。
関連の解説書・教科書があります。
・Python公式サイト（英語）
Python チュートリアル・マニュアル日本語訳の配布（英語）
あとりえこばと：「Python プログラミング講座」(2018年8月13日).
プログラミング演習 Python 2019
本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はでご確認ください。
喜多 一、森村吉貴、岡本雅子：「教科書：プログラミング演習 Python」 (2023年版、京都大学学術情報リポジトリ、CC-BY-NC-ND ライセンス)
Pythonプログラミング入門・東京大学
ゼロからのPython入門講座・科学技術計算のために Python を始めよう。
Python による科学技術計算の概要
神嶌敏弘（2020年4月21日）。
情報処理学会公開教材 IPSJ　MOOC  # （これらは講義スタイルのビデオ教材です）
基本的なプログラミング （Python入門）
アルゴリズム （Pythonを使ったアルゴリズム入門）
モデル化とシミュレーション（Pythonを使ったシミュレーション入門）「とほほのPython入門」((C) 2014-2022 杜甫々, 最終更新2022年10月9日)「Pythonプログラミング入門」©2020–2023, 東京大学 数理・情報教育研究センター (CC BY-NC-ND 4.0)
小林克志：「コンピュータシステム概論」、東京大学オープンコースウェア
コンピュータ・プログラミング言語
出典を必要とする記事/2025年10月
出典のページ番号が要望されている記事
独自研究の除去が必要な記述のある記事/2024年1月-6月
無効な出典が含まれている記事/2018年
ISBNマジックリンクを使用しているページ
出典: フリー百科事典『ウィキペディア（Wikipedia）』
この項目では、プログラミング言語について説明しています。その他の用法については「
参考文献や出典が全く示されていないか、不十分です。
して記事の信頼性向上にご協力ください。
命令型プログラミング、マルチパラダイムプログラミング
テンプレートを表示（パイソン）は、主として
Pythonは1990年代初頭に
グイド・ヴァン・ロッサムが開発し、1991年2月に0.9.0として公開された
最初にリリースされたPythonの設計哲学は、ホワイトスペース（オフサイドルール
の可読性を重視している。その言語構成と
オブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
動的型付き言語であり、ガベージコレクションがある。
関数型プログラミングを含む複数の
プログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現されている
Pythonのインタプリタは多くのOSに対応している。プログラマーのグローバルコミュニティは、自由かつオープンソース
を開発および保守している 。非営利団体である
Pythonソフトウェア財団は、PythonとCPythonの開発のためのリソースを管理・指導している。
上で実行することを前提に設計している。以下の特徴をもっている:
・オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
Pythonには、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しており、Pythonコミュニティでも単純で簡潔なコードをよしとする傾向が強い
Pythonの本体は、ユーザがいつも必要とする最小限の機能のみを提供する。基本機能以外の専門機能や拡張プログラムはインターネット上にライブラリとして提供されており、別途ダウンロードして保存し、必要なツールはこのツールキットからその都度呼び出して使用する
Pythonでは「あることをなすのに唯一の良いやり方があるはず」という哲学がある（参考:「やり方は一つじゃない」
Pythonではプログラムの文書化（ソフトウェアドキュメンテーション
）が重視されており、言語の基本機能の一部となっている。
（関数名：factorial）を題材にC言語と比較した例を示す。
わかりやすく整形されたC言語のコード:
この例では、Pythonと整形されたC言語とでは、プログラムコードの間に違いがほとんど見られない。しかし、C言語のインデントは構文規則上のルールではなく、単なる読みやすさを向上させる
コーディングスタイルでしかない。そのためC言語では全く同じプログラムを以下のように書くこともできる。
Pythonではインデントは構文規則として決められているため、こうした書き方は不可能である。Pythonではこのように強制することによって、ソースコードのスタイルがその書き手にかかわらずほぼ統一したものになり、その結果読みやすくなるという考え方が取り入れられている。これについては賛否両論があり、批判的立場の人々からは、これはプログラマがスタイルを選ぶ自由を制限するものだ、という意見も出されている。
インデントによる整形は、単に「見かけ」だけではなく品質そのものにも関係する
このコードはC言語の構文規則上は問題無いが、インデントによる見かけのifの範囲と、言語仕様によるifの実際の範囲とが異なっているため、プログラマの意図が曖昧になる（前者は"y = 0;"がif文に包含され、後者は"{}"がないため"y = 0;"がif文に包含されない）。この曖昧さは、検知しにくいバグを生む原因になる。例としてはが挙げられる。
ソースコードを読む際、多くの人はインデントのような空白を元に整列されたコードを読み、コンパイラのように構文解析しながらソースを読むものではない。その結果、一見しただけでは原因を見つけられないバグを作成する危険がある。
Pythonではインデントをルールとすることにより、人間が目視するソースコードの理解とコンパイラの構文解析の間の差を少なくすることで、より正確に意図した通りにコーディングすることができると主張されている
システムをもつ。同時に任意の型ヒントを持っており外部ツールによる静的型チェックを可能にしている。
値自身が型を持っており、変数はすべて値への
型・文字列型・バイト列型・関数型がある。整数型は（メモリの許す限り）無制限の桁数で整数計算が可能である。浮動小数点数型を整数型にキャストすると、小数点以下が切り捨てられる。
型がある。リスト型および辞書型は
イミュータブルである。集合型には変更可能なものと変更不能なものの2種類がある。タプル型とリスト型は、多くのプログラミング言語では
と呼ばれるものに類似している。しかし、Pythonではタプル型は辞書のキーとして使うことができるが、リスト型は内容が変わるため辞書のキーとして使うことはできないという理由から、これら2つの型を区別している。
多くのオブジェクト指向プログラミング言語と同様、Pythonではユーザが新しく自分の型を定義することも可能である。この場合、組み込み型を含む既存の型を継承して新たな型（クラス）を定義する事も、ゼロから全く新しい型を作り出す事も出来る。
Pythonは基本的にメソッドや関数の引数に型を指定する必要がない。そのため、ダック・タイピングという、内部で必要とする演算子やメソッドに対応していれば、関数やオブジェクトの設計時点で意図していなかったオブジェクトを引き渡すことも可能である。
Pythonは型ヒントの構文を用意している
。これはプログラマ向けの注釈および外部ツールによる静的型チェックに用いられる。
例として、文字列型の値を受け取って文字列型の値を返す関数は次のようにアノテーションできる。
は特定のキーとバリュー型をもった辞書オブジェクトを表現する型である
型の定義にはクラス継承構文が用いられるが、この型を持つオブジェクトはランタイムにおいて純粋な
インスタンスになる。つまり型ヒント専用の型であり、ランタイム型とは区別される
ガベージコレクションを内蔵しており、参照されなくなったオブジェクトは自動的にメモリから破棄される。
では、ガベージコレクションの方式として
方式を併用している。マーク・アンド・スイープ方式のみに頼っている言語では、オブジェクトがいつ回収されるか保証されないので、ファイルのクローズなどを
デストラクタに任せることができない。CPythonは参照カウント方式を併用することで、循環参照が発生しない限り、オブジェクトはスコープアウトした時点で必ずデストラクトされることを保証している。なおJythonおよびIronPythonではマーク・アンド・スイープ方式を採用しているため、スコープアウトした時点で必ずデストラクトされることが前提のコードだとJythonやIronPythonでは正しく動かない。
イテレータを実装するためのジェネレータが言語仕様に組み込まれており、Pythonでは多くの場面で
イテレータを使うように設計されている。イテレータの使用はPython全体に普及していて、プログラミングスタイルの統一性をもたらしている。
Pythonでは扱えるデータの全てがオブジェクトである。単純な数値といった基本的なデータ型をはじめ、組み込みのコンテナ型、組み込み関数など、これらは全て統一的な継承関係をもつオブジェクトであり「型」をもっている。これらの組み込み型とユーザ定義型は区別されず、組み込み型を継承したクラスを定義できる。上の「データ型」の項で述べたように Pythonは静的な型チェックを持たないため、Javaのようなインターフェイスという言語上の仕組みは必要とされない。
) メカニズムでは、複数の基底クラスを持つことができ（多重継承）、導出されたクラスでは基底クラスの任意のメソッドをオーバライド（; 上書き）することが可能である。
また、オブジェクトには任意のデータを入れることができる。これらのメソッドやデータは、基本的に、すべてであり、（仮想）である。ただし、先頭にアンダースコアをもつメンバをとすることができる。これは単なるマナーであるが、アンダースコアを2つもつ場合は、クラスの外部からメンバの名前を隠された状態（; 難号化）とすることで
カプセル化を実現できる。また、利用者定義演算子が機能として用意されておりほとんどの組み込み演算子（算術演算子（）や添字表記）はクラスインスタンスで使うために再定義することが可能となっている。
Pythonには「電池付属 ()」という思想があり、プログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしている
サードパーティによるライブラリも豊富に存在する（参考:
Pythonは様々な組み込み型（built-in types）をサポートする。
Mapping型はハッシュ可能な値を任意のオブジェクトへ対応付ける型である
。対応する具象クラスはである。抽象基底クラスにがあり、抽象メソッドとしてが定義されている。
をもったcollectionとも言える。
最初のPythonでは1バイト単位での
型のみ扱い、ひらがな・(全角) カタカナ
マルチバイト文字はサポートしていなかったが、その後のPython 2.0からは
Python 3.0では、Python 2.xにおける文字列型がバイト列型に、またUnicode文字列型が文字列型に変更された。これにより、文字列をPython 3.0で扱う際には後述の変換処理を必ず行う必要がある。ファイル入出力などでエンコードを明示しなければ、標準エンコードを用いて暗黙に行われる場合も多い。これにより多言語の扱いを一貫したものにしている。
エンコードとUnicodeの内部表現を明確に区別している。Unicode文字はメモリ中に保持される抽象的なオブジェクトであり、画面表示やファイルへの入出力の際には変換ルーチン（コーデック
）を介して特定のエンコーディングのバイト列表現との間で相互に変換する。また、ソースコード中の文字コードを認識する機能があり、これによって異なる文字コードで書かれたプログラムの動きが異なるリスクを解消している。
Pythonでは変換ルーチンをモジュールとして追加することで、さまざまなエンコーディングに対応できるようになっている。日本語の文字コード（EUC-JP, Shift_JIS, MS932, ISO-2022-JP）に対応したコーデックも作成されている。Python 2.4からは、日中韓国語用のコーデックが標準でディストリビューションに含まれるようになったため、現在では日本語の処理に関する問題はほとんどなくなった。ただしGUIライブラリである
統合開発環境は、プラットフォームにもよるが、まだきちんと日本語に対応していないものもある。
ソースコードの文字コードには、ASCIIと互換性があり、Pythonが対応しているものを使用する。ソースコードのデフォルトエンコーディングは、Python 3.xではUTF-8（ソースコード以外のPython 3のデフォルトエンコーディングは複雑になっている
）、Python 2.xではASCIIであるが、デフォルトエンコーディング以外の文字コードを使う場合は、ソースファイルの1行目か2行目に一定の書式でコメントとして記述することになっており、しばしば以下のように
などのテキストエディタにも認識可能な書式で記述される（次の例は Emacs が認識できる書式）。
型言語であり（ほとんどの場合）プログラムの実行に際して実行環境（ランタイム
）を必要とする。以下はランタイム（実装）およびそれらが実装されているプラットフォームの一覧である。
Pythonの最初のバージョンは
上で開発された。のちに多くの計算機環境上で動作するようになった。
プラットフォーム（ランタイム・コンパイラ
Pythonには複数の実装（ランタイム又はコンパイラ）が存在する。
で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
・PythonをC言語化へトランスコードするソフトウェア。静的型付けが可能で速度の向上をはかれる。
で実装されている。.NET Frameworkのライブラリを使うことができる。
上に構築されているため、既存の.NETアプリケーションへ
マクロ言語として搭載することも可能となっている。
・組み込み向けの実装。256 kB以上のフラッシュを推奨。
向けの実装・対話計算に向けたPythonへのシェル
Codon - Python言語ソースから機械語へのコンパイラ処理系
PyOMP - PythonをOpenMPで並列化するシステム
最新の Python 仕様には追従していないが開発が続けられているランタイム・コンパイラとしては以下が挙げられる。
上に移植したもの。PythonからJavaのライブラリを使うことができる。Python 2 系 (2025-06現在)
開発が停止・終了したランタイム・コンパイラ
スタックを使わずに独自のスタック（Pythonスタック）で実装。2021年で開発停止、2025年に終了宣言のチームによるPythonの実装。
。2012年に開発終了・組み込み向けの実装、などに対応。
・同じく組み込み向けの実装。ソースコードが 64
未満と非常に軽量なことが謳われている。
Pythonはパッケージ管理ソフト・ライブラリ・レポジトリなどからなるエコシステムを形成している。
ビルドシステム/wheel/インストーラ
パッケージ管理システムによっておこなわれる。バイナリパッケージの
インタフェースとしてビルドシステムとパッケージ管理システムの分離が可能になっている（PyPI）と呼ぶ公式のパッケージリポジトリが存在する。
パッケージ管理および実行環境管理を含めた統合開発環境としてはが存在する。
Pythonは多様なコミュニティライブラリによって支えられている。
プログラミング数学、科学、工学のための数値計算
機械学習・データサイエンス・AI
3Dグラフィックスやアニメーション
Pythonアプリのコンパイルによる高速化
クローリング、スクレイピング用のpythonフレームワーク
Webアプリケーションフレームワーク（ボトル） -（チェリーパイ） -（ジャンゴ） -（フラスク） -（ファストエーピーアイ） -（ピラミッド） -（プローン） -（トルネード） -（サイクロン） -
Pythonを使っている製品あるいはソフトウェアの一覧
Pythonは全世界で使われているが、欧米の企業でもよく使われている。大企業では
などのパッケージソフトウェア企業をはじめ、などの企業も利用している
では、S60シリーズでPythonアプリケーションが動く
高エネルギー加速器研究機構でPythonが使われている。
ベースのアプリケーション、3Dモデリング
データサイエンスおよび数値計算用途
などの高速な数値計算ライブラリの存在により、データサイエンスや科学技術コンピューティングにもよく用いられる。NumPy、SciPyの内部はC言語で書かれているので、動的スクリプト言語の欠点の一つである動作速度の遅さを補っているを使うと、Python のコードが
して利用可能であり、非常に高速な計算ができる。
上で高速に計算するライブラリも充実している。
とPythonソフトウェア財団による共同調査によると、2017年10月現在、Pythonの最も主要な用途は何かというアンケートの結果によると、27%がデータサイエンス（そのうち18%がデータ解析、9%が
Webアプリケーションフレームワークが充実しているため、Webアプリケーション開発用途にも多く使われている。JetBrains とPythonソフトウェア財団による共同調査によると、2017年10月現在、26%の人が最も主要な用途としてWeb開発を選んだ
：オープンソースで商用利用も可能なので、スマホアプリの販売が可能。androidアプリもiOSアプリも作成することが可能
：pythonの標準ライブラリで簡単にGUIアプリを作成可能。ネットでの情報が最も多い
：クロスプラットフォームで作成可能だが、商用利用は有償
：クロスプラットフォームで動作可能なGUIアプリを作成可能
システム管理およびグルー言語用途
スクリプト言語としての特性から、従来
シェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして複数ので採用されている。また、異なる言語で書かれた多数のモジュールの機能を貼り合わせる
グルー言語（糊の言語）として利用する例も多い。実際、多くの商用
アプリケーションでPythonは組み込みのスクリプト言語として採用されている。
JetBrainsとPythonソフトウェア財団による共同調査によると、2017年10月現在、9%の人が最も主要な用途として、システム管理、自動化スクリプトを上げた
Pythonは本来は教育用を目的として設計されたわけではないが、その単純さから子供が最初に学ぶプログラミングにおける教育用の言語としての利用が増えている。
グイド・ヴァンロッサムはPython設計以前に教育用言語であるの開発にかかわり、教育用としての利用について期待感を示したこともあり、方針として非技術者向けといった利用を視野に入れているとされることもある
私の大好きなPython利用法は、騒ぎ立てずに、言語教育でプログラミングの原理を教えること。それを考えてくれ――次の世代の話だね。
スラド『 Guido van Rossum へのインタビュー』
基本情報技術者試験では2020年の春期試験からを廃止してPythonを追加した
高等学校情報科「情報Ⅰ」の教員向け研修教材の中で、プログラミング用言語としてPythonが使われている
ただし、Pythonの言語は言語自身に組み込まれている型とそれに付随するメソッドの多いことなどから、C言語に較べると遙かに多くの憶えなければならない事柄があることになる。持つ機能の一部だけに限定して教育に用いるならば、憶えなければならない事柄を減らすことができる。しかし言語の機能をすべて知っていないと他人の書いたプログラムを正しく理解することが出来ない可能性が生じる。Python言語の変数自身には型が無いことから、プログラム上で扱われているデータ・オブジェクトの型が何であるかは実行時に動的に決まるので、それを読み解いて把握しなければプログラムが行っている処理の内容を正しく把握することが難しいことがしばしばある（正しい注釈を付けてプログラムを書くことが重要である）。
また、Pythonの文法は僅か1行でも処理を記述できるほどに簡潔なので、まだプログラミングについてよく知らない子供でも取り組みやすい言語であると言える。
# Pythonはたった一行のコードで文字を表示することができる。
// Javaでは文字の表示に最低5行コードを記述する必要がある
Pythonはその文法の簡潔さにより、 誰が書いても似たようなコードになりやすい性質があるので、学習が進むにつれて大人が作成したコードを理解できるようになる。
また、文法が簡潔なのでコードを記述している最中に混乱することが少なくなり、子供が途中で諦めてしまう傾向が少ない点も教育用として利用される理由でもある。
この節で示されている出典について、該当する記述が
具体的にその文献の何ページあるいはどの章節にあるのか、特定が求められています
Pythonはプロスポーツの分析によく使われている。
メジャーリーグベースボール（野球）、イングリッシュプレミアリーグ（サッカー）、ナショナルバスケットボールアソシエーション（バスケットボール）、ナショナルホッケーリーグ（アイスホッケー）、インディアンプレミアリーグ（クリケット）の実際のデータセットからのスポーツ分析は、ベストセラーの
マネーボールによって示される現実世界の成功によって部分的に推進され、人気が高まっている研究分野として浮上している（セイバーメトリクス
）。チームとプレーヤーのパフォーマンスデータの分析は、フィールド、コート、氷上だけでなく、ファンタジースポーツプレーヤーやオンラインスポーツギャンブルのリビングルームでもスポーツ業界に革命をもたらし続けている。実際のスポーツデータを使用した予測スポーツ分析の原則を使用して、プレーヤーとチームのパフォーマンスを予測する
Pythonを使ってデータをプログラミングする方法を示したり、マネーボールのストーリーの背景にある主張を検証したり、マネーボールの統計の進化を調べたりすることが可能である。公開されているデータセットから野球のパフォーマンス統計を計算するプロセスを案内される。実行期待値マトリックスを使用して導出された、より高度な測定値（Wins Above Replacement（）など）に進む。これらの統計を使用して、独自のチームおよびプレーヤーの分析を行うことができるようになる
Pythonを使用してプロスポーツの試合結果の予測を生成する方法の主な重点は、チームの支出に関するデータを使用して、ゲームの結果をモデル化する方法として
ロジスティック回帰の方法を教えることである。過去の結果をモデル化し、そのモデルを使用して、まだプレイされていない結果のゲームを予測するプロセスを実行する。ベッティングオッズのデータを使用してモデルの信頼性を評価する方法をオーナーに示す。分析は最初に英国プレミアリーグに適用され、次にNBAとNHLに適用される。データ分析とギャンブルの関係、その歴史、および個人的なリスクを含むスポーツベッティングに関連して発生する社会的問題の概要も説明する。マネーボールは、データ分析を使用してチームの勝率を高めることができることを示すことにより、プロスポーツのパフォーマンス統計の分析に
Pythonを使用してデータをプログラムし、マネーボールのストーリーの背後にある主張をテストし、マネーボール統計の進化を調べる方法を示し、公開されているデータセットから野球のパフォーマンス統計を計算するプロセスができる
。スポーツ分析には、トレーニングと競技の両方の取り組みを定量化するアスリートとチームからの大量のPythonデータセットが含まれるようになった。ウェアラブルテクノロジーデバイスは、アスリートが毎日着用しており、シーズン全体にわたるアスリートのストレスと回復を詳細に調べるためのかなりの機会を提供する。これらの大規模なデータセットのキャプチャは、怪我の予防に関する新しい仮説と戦略、およびトレーニングと回復を最適化するためのアスリートへの詳細なフィードバックにつながった。Pythonでのプログラミングを使用して、トレーニング、回復、パフォーマンスに関連する概念を調査することもできる（sklearn）ツールキットと実際の運動データを使用して教師あり機械学習手法を探索し、機械学習アルゴリズムと運動結果の予測方法の両方を理解する。
およびロジスティック回帰、アンサンブル
などの方法を適用して、NHLやMLBなどのプロスポーツリーグからのデータを調べる。また、慣性測定ユニット（IMU）などのウェアラブルデバイスも含まれる。分類と回帰の手法を使用して、運動活動やイベント全体であるスポーツ分析を可能にする方法を幅広く理解できるようになる。スポーツコンテストのカテゴリ別結果変数（つまり、勝ち、引き分け、負け）を処理する際の回帰モデル、線形確率モデル（LPM）を、その理論的基礎、計算アプリケーション、および経験的制限の観点からモジュールは、カテゴリ従属変数のLPMのより良い代替として、ロジスティック回帰をし、デモンストレーションする。順序付けられたロジットモデルと公開されている情報を使用してEPLサッカーゲームの結果を予測する方法を示す。ベッティングオッズに対してこれらの予測の正確さを評価し、それらが非常に正確であることを示す。北米の3つのチームスポーツリーグ（NHL、NBA、MLB）のコンテキストでモデルを複製することにより、前週に取り上げたEPL予測モデルの有効性を評価する。具体的には、順序付けられたロジットモデルと公開されている情報を使用して、NHL、NBA、MLBのレギュラーシーズンゲームの結果を予測する
オブジェクト指向を対応させるために作られた言語である
。正確には、AmoebaへABC言語を実装する研究をしていたヴァンロッサムが、クリスマス休暇の間にC言語を元にして生まれたインタープリターから始まる
にヴァンロッサムがPython 0.90の
ソースコードを公開した。この時点ですでにオブジェクト指向言語の特徴である
1月、Python 1.0を公開した。主な特徴として
ラムダ計算を実装、map関数・reduce関数などを組み込んだ。
バージョン1.4からはにある機能とよく似た
キーワード引数を導入した。また簡易ながら
を導入した。一躍メジャーな言語となった。多くの機能はを参考にして導入している。
バージョン2.4には、子プロセスの起動やコマンドを実行できるsubprocessモジュールが実装された。
2.6以降のバージョンには、2.xから3.xへの移植を助ける「2to3 ツール」と「lib2to3 モジュール」を含んでいる
。2.7が2.xの最後のバージョンで、2.7のサポートは
。ただし、サポート終了後に 2.7.18 を2020年4月にリリースし、これが最後の 2.7.x になる
。これ以上のセキュリティパッチやその他の改善はリリースされない
、長い試験期間を経てPython 3.0が公開された。
開発初期には、西暦3000年に公開予定の理想のPythonとして、Python 3000と呼んでいた。Py3Kと略すこともある。
しかし2.xとの後方互換性が損なわれている。当初は2.xに比べて3.xが利用できるライブラリ等が著しく少ないという問題点があったが、など徐々に3.xに対応したフレームワークやライブラリなどが増えていったこともあり、時点においては新規のプロジェクトについて3.xで開発することが多くなっている
。JetBrains とPythonソフトウェア財団による共同調査では、Python の 2 と 3 がどっちがメインであるかというアンケートで、Python 3 がメインであると答えた人が、2016年1月は40%だったが、2017年10月は75%になった
11月にリリースされたや2016年4月にリリースされたでは、デフォルトでインストールされるPythonのバージョンが2.xから3.xに変更されている。
では8をもってPython 2が廃止となった
print命令をprint関数へ変更
単体テストフレームワーク「unittest」への機能追加
import文のリファレンス実装となる、Pythonで実装したimportlibモジュール
ネストしたwith文に対する新たな文法
単体テストモジュールのアップデートや拡張モジュール向け stable ABI
pyc レポジトリディレクトリのサポート
E-mail パッケージや SSL モジュールの改善
3.1リリースから2年間、言語仕様を凍結し変更を行わない「モラトリアム期間」を解除した
新しい文法として、ジェネレータ関数内で別のジェネレータ関数を利用する「yield from」を追加。
「u」や「U」といったプレフィックスを用いたUnicodeリテラルシンタックスを復活
UCS-4文字列にも対応し、文字列表現の柔軟性を強化
仮想化Python実行環境を導入するためのvirtualenvパッケージの機能を「venv」機能としてコアに取り込んだ。
オブジェクト指向ファイルシステムパスを提供する「pathlib」モジュールの提供
列挙型を扱うためのenumモジュールの標準化
統計関数を提供するstatisticsモジュールの導入
Pythonが割り当てたメモリブロックを追跡するためのデバッグツールのtracemallocモジュールの導入
非同期I/Oを扱うためのフレームワークとなるasyncioモジュールの導入
Pythonの組み込み関数に関する分析情報を得るため機構の実装
zipアプリケーションサポートの改良
byte/bytearrayオブジェクトのための「%」フォーマット対応の追加
高速ディレクトリトラバーサル機能os.scandir()の導入
割込がかかったシステムコールのオートリトライ機能追加
近似値であるかどうかをテストする機能の導入.pyoファイルの削除
拡張モジュールをロードするための新しい仕組みの導入
文字列中に式を埋め込める「Formatted string literals」の導入
変数に対して型に関する情報（型ヒント）を与える「Syntax for variable annotations」の導入
)でコルーチンを利用可能にする「Asynchronous generators」の導入
標準ライブラリにsecretsモジュールを追加
DTraceおよびSystemTapプローブのサポートを追加
使用時点では宣言されていない型を使った型アノテーション表記が可能となる
レガシーな C ロケールの抑圧、強制 UTF-8 実行モード
s) 単位の分解能を持つ新しい時間関数の追加
f文字列で f'{expr=}' の形式のサポート
dict での reversed のサポート
デバッガなどでより正確な行番号を表示
ユニオン型を X | Y と書けるようになったを付与した明示的な型エイリアス
で、グイド・ヴァンロッサムによってPythonの初期バージョンが作成される。
1995年 - ヴァンロッサムは米国ヴァージニア州レストンにあるに移動。ここでPythonの開発に携わり、いくつかのバージョンを公開する。
2000年3月 - ヴァンロッサムとPythonのコア開発チームは BeOpen.com に移り、BeOpen PythonLabs チームを結成する。同年10月、PythonLabsチームはDigital Creations (現在の
2001年 - Pythonに関する知的財産を保有するための非営利組織
Pythonソフトウェア財団（PSF）が立ち上がる。このときZope CorporationはPSFの賛助会員となる。
インデントによる構文）（モジュール機能、オブジェクト指向）（辞書、スライス演算子など）
（リストの内包表現）（基本的な構文）（仮想マシン機構、動的性）
オープンソースで配布されている。このライセンスの内容はに類似したものであるが、変更したバージョンを配布する際に変更をオープンソースにしなくてもよい、という点がGPLとは異なっている。
・標準ライブラリミニツアー. 2026年1月4日閲覧。
一発で素人だとばれるPythonコード、「a=1」のどこがまずいのか
”.   日経クロステック. 2025年5月10日閲覧。
typing --- 型ヒントのサポート — Python 3.10.0b2 ドキュメント
”. 2025年6月11日閲覧。
”. 2006年4月28日時点の
よりアーカイブ。2007年1月17日閲覧。
よりアーカイブ。2007年1月17日閲覧。
”. 2011年5月16日閲覧。
プレス発表 基本情報技術者試験における出題を見直し：IPA 独立行政法人 情報処理推進機構
初等中等教育局情報教育・外国語教育課
高等学校情報科「情報Ⅰ」教員研修用教材（本編）
第3章 コンピューターとプログラミング
Pythonとは？主な特徴や子どもに習得させるメリットを知っておこう. 2023年6月2日閲覧。
Pythonの歴史について起源から分かりやすく解説
テクフリ. 2025年11月21日閲覧。
「Pythonのsubprocessモジュールの使い方｜子プロセスの起動方法からわかりやすく解説」.NET Column (2021年3月25日) 2023年5月17日閲覧。
"Python 2.7.18はPython 2.7の最後のリリースであり、したがってPython 2の最後のリリースである ". 2020年4月27日閲覧。
【入門者必見】Python2と3、どっちを学習すべき？違いを徹底解説！
”.   株式会社 侍. 2016年9月21日閲覧。
. 2013年10月24日時点の
よりアーカイブ。2016年9月21日閲覧。
RHEL8/9系ディストリビューションでPython 3を使う
登場! Python 3.0 - 2系との違いを比較
マイナビ(2009年1月1日). 2014年3月13日閲覧。
「Python 3.1」正式版リリース
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
末岡洋子 (2012年10月1日). “
仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース. 2012年10月2日時点の
よりアーカイブ。2014年3月13日閲覧。
後藤大地 (2014年3月18日). “
マイナビニュース. 2014年3月20日閲覧。
末岡洋子 (2014年3月18日). “「Python 3.4」リリース、標準ライブラリを強化. 2014年3月19日時点の
よりアーカイブ。2014年3月20日閲覧。
後藤大地 (2015年9月13日). “
マイナビニュース. 2015年11月5日閲覧。
「Python 3.5」正式版がリリース – 新機能が多数追加
”.   ソフトアンテナブログ (2015年9月14日). 2022年10月2日時点の
よりアーカイブ。2015年11月5日閲覧。
末岡洋子 (2016年12月26日). “. 2016年12月26日時点の
よりアーカイブ。2017年5月26日閲覧。
”. 2016年12月5日閲覧。
”. 2007年1月15日閲覧。
よりアーカイブ。2014年3月13日閲覧。
ポータル FOSS・Pythonを対話的に実行するためのシェル。
・Python言語ベースのハードウェア記述言語
Julia (プログラミング言語)・PythonのライブラリやC言語、Fortran言語のコードを呼び出せるプログラミング言語。Pythonよりも動作が高速である。
空飛ぶモンティ・パイソン・これがPythonという言語名の由来である
石本敦夫：「Python文法詳解」、オライリージャパン、大和田勇人、金盛克俊：「Pythonで始めるプログラミング入門」、コロナ社、滝澤成人：「Python [基礎編] ワークブック」、カットシステム、松浦健一郎、司ゆき：「わかるPython [決定版] 」、SBクリエイティブ、柴田望洋：「新・明解Python入門」、SBクリエイティブ 、（2019年5月30日）。＃（これは初版、第2版あり）
亀田健司：「1週間でPythonの基礎が学べる本」、インプレス、山田祥寛：「独習Python」、翔泳社、Guido van Rossum：「Pythonチュートリアル 第4版」、オライリージャパン、Bill Lubanovic：「入門 Python 3　第2版」、オライリージャパン、松浦健一郎、司ゆき：「Python [完全] 入門」、SBクリエイティブ、小高知宏：「Python言語で学ぶ基礎からのプログラミング」、近代科学社、岩崎圭、北川慎治、寺田学：「スラスラわかるPython 第2版」、富樫敦：「コンピュータプログラミング：Pythonでアルゴリズムを実装しながら問題解決を行う」、コロナ社、松尾正信
:「Pythonプログラミング ABCー正確に・美しく・簡潔に! ー」、近代科学社、上野照正、山崎貴史：「プログラムのつくりかた Python 基礎編 Lv.1」、実教出版、山崎貴史、廣田龍之介、森田直人：「Python ハンディプログラミング事典」、実教出版、Patrick Viafore：「ロバストPython ―クリーンで保守しやすいコードを書く」、オライリー・ジャパン、Micha Gorelick、Ian Ozsvald：「ハイパフォーマンスPython 第2版」、オライリー・ジャパン、Wes McKinney：「Pythonによるデータ分析入門 第3版」、オライリー・ジャパン、柴田望洋：「新・明解Python入門 第2版」、SBクリエイティブ 、David M. Beazley、鈴木駿（訳）：「Python Distilled - プログラミング言語Pythonのエッセンス」、オライリー・ジャパン、Christian Hill:「Python科学技術計算：物理・化学を中心に」第２版，東京化学同人、(2023年11月20日)。※ 利用例
金城俊哉：「PC・IT図解 Pythonプログラミングの技術としくみ」、秀和システム、綾皓二郎：「計算論的思考を育むPythonプログラミング入門」、近代科学社、(2024年6月24日)。※ 高速化技法
altnight，石上晋，delhi09，鈴木たかのり，斎藤努：「現場のPython ──Webシステム開発から、機械学習・データ分析まで」、技術評論社、Claudio Jolowicz：「ハイパーモダンPython」、オライリー・ジャパン、
Glyn Moody 小山祐司監訳『ソースコードの反逆』
ウィキメディア・コモンズには、に関連するカテゴリがあります。
関連の解説書・教科書があります。
・Python公式サイト（英語）
Python チュートリアル・マニュアル日本語訳の配布（英語）
あとりえこばと：「Python プログラミング講座」(2018年8月13日).
プログラミング演習 Python 2019
本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はでご確認ください。
喜多 一、森村吉貴、岡本雅子：「教科書：プログラミング演習 Python」 (2023年版、京都大学学術情報リポジトリ、CC-BY-NC-ND ライセンス)
Pythonプログラミング入門・東京大学
ゼロからのPython入門講座・科学技術計算のために Python を始めよう。
Python による科学技術計算の概要
神嶌敏弘（2020年4月21日）。
情報処理学会公開教材 IPSJ　MOOC  # （これらは講義スタイルのビデオ教材です）
基本的なプログラミング （Python入門）
アルゴリズム （Pythonを使ったアルゴリズム入門）
モデル化とシミュレーション（Pythonを使ったシミュレーション入門）「とほほのPython入門」((C) 2014-2022 杜甫々, 最終更新2022年10月9日)「Pythonプログラミング入門」©2020–2023, 東京大学 数理・情報教育研究センター (CC BY-NC-ND 4.0)
小林克志：「コンピュータシステム概論」、東京大学オープンコースウェア
コンピュータ・プログラミング言語
出典を必要とする記事/2025年10月
出典のページ番号が要望されている記事
独自研究の除去が必要な記述のある記事/2024年1月-6月
無効な出典が含まれている記事/2018年
ISBNマジックリンクを使用しているページ
出典: フリー百科事典『ウィキペディア（Wikipedia）』
この項目では、プログラミング言語について説明しています。その他の用法については「
参考文献や出典が全く示されていないか、不十分です。
して記事の信頼性向上にご協力ください。
命令型プログラミング、マルチパラダイムプログラミング
テンプレートを表示（パイソン）は、主として
Pythonは1990年代初頭に
グイド・ヴァン・ロッサムが開発し、1991年2月に0.9.0として公開された
最初にリリースされたPythonの設計哲学は、ホワイトスペース（オフサイドルール
の可読性を重視している。その言語構成と
オブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
動的型付き言語であり、ガベージコレクションがある。
関数型プログラミングを含む複数の
プログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現されている
Pythonのインタプリタは多くのOSに対応している。プログラマーのグローバルコミュニティは、自由かつオープンソース
を開発および保守している 。非営利団体である
Pythonソフトウェア財団は、PythonとCPythonの開発のためのリソースを管理・指導している。
上で実行することを前提に設計している。以下の特徴をもっている:
・オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
Pythonには、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しており、Pythonコミュニティでも単純で簡潔なコードをよしとする傾向が強い
Pythonの本体は、ユーザがいつも必要とする最小限の機能のみを提供する。基本機能以外の専門機能や拡張プログラムはインターネット上にライブラリとして提供されており、別途ダウンロードして保存し、必要なツールはこのツールキットからその都度呼び出して使用する
Pythonでは「あることをなすのに唯一の良いやり方があるはず」という哲学がある（参考:「やり方は一つじゃない」
Pythonではプログラムの文書化（ソフトウェアドキュメンテーション
）が重視されており、言語の基本機能の一部となっている。
（関数名：factorial）を題材にC言語と比較した例を示す。
わかりやすく整形されたC言語のコード:
この例では、Pythonと整形されたC言語とでは、プログラムコードの間に違いがほとんど見られない。しかし、C言語のインデントは構文規則上のルールではなく、単なる読みやすさを向上させる
コーディングスタイルでしかない。そのためC言語では全く同じプログラムを以下のように書くこともできる。
Pythonではインデントは構文規則として決められているため、こうした書き方は不可能である。Pythonではこのように強制することによって、ソースコードのスタイルがその書き手にかかわらずほぼ統一したものになり、その結果読みやすくなるという考え方が取り入れられている。これについては賛否両論があり、批判的立場の人々からは、これはプログラマがスタイルを選ぶ自由を制限するものだ、という意見も出されている。
インデントによる整形は、単に「見かけ」だけではなく品質そのものにも関係する
このコードはC言語の構文規則上は問題無いが、インデントによる見かけのifの範囲と、言語仕様によるifの実際の範囲とが異なっているため、プログラマの意図が曖昧になる（前者は"y = 0;"がif文に包含され、後者は"{}"がないため"y = 0;"がif文に包含されない）。この曖昧さは、検知しにくいバグを生む原因になる。例としてはが挙げられる。
ソースコードを読む際、多くの人はインデントのような空白を元に整列されたコードを読み、コンパイラのように構文解析しながらソースを読むものではない。その結果、一見しただけでは原因を見つけられないバグを作成する危険がある。
Pythonではインデントをルールとすることにより、人間が目視するソースコードの理解とコンパイラの構文解析の間の差を少なくすることで、より正確に意図した通りにコーディングすることができると主張されている
システムをもつ。同時に任意の型ヒントを持っており外部ツールによる静的型チェックを可能にしている。
値自身が型を持っており、変数はすべて値への
型・文字列型・バイト列型・関数型がある。整数型は（メモリの許す限り）無制限の桁数で整数計算が可能である。浮動小数点数型を整数型にキャストすると、小数点以下が切り捨てられる。
型がある。リスト型および辞書型は
イミュータブルである。集合型には変更可能なものと変更不能なものの2種類がある。タプル型とリスト型は、多くのプログラミング言語では
と呼ばれるものに類似している。しかし、Pythonではタプル型は辞書のキーとして使うことができるが、リスト型は内容が変わるため辞書のキーとして使うことはできないという理由から、これら2つの型を区別している。
多くのオブジェクト指向プログラミング言語と同様、Pythonではユーザが新しく自分の型を定義することも可能である。この場合、組み込み型を含む既存の型を継承して新たな型（クラス）を定義する事も、ゼロから全く新しい型を作り出す事も出来る。
Pythonは基本的にメソッドや関数の引数に型を指定する必要がない。そのため、ダック・タイピングという、内部で必要とする演算子やメソッドに対応していれば、関数やオブジェクトの設計時点で意図していなかったオブジェクトを引き渡すことも可能である。
Pythonは型ヒントの構文を用意している
。これはプログラマ向けの注釈および外部ツールによる静的型チェックに用いられる。
例として、文字列型の値を受け取って文字列型の値を返す関数は次のようにアノテーションできる。
は特定のキーとバリュー型をもった辞書オブジェクトを表現する型である
型の定義にはクラス継承構文が用いられるが、この型を持つオブジェクトはランタイムにおいて純粋な
インスタンスになる。つまり型ヒント専用の型であり、ランタイム型とは区別される
ガベージコレクションを内蔵しており、参照されなくなったオブジェクトは自動的にメモリから破棄される。
では、ガベージコレクションの方式として
方式を併用している。マーク・アンド・スイープ方式のみに頼っている言語では、オブジェクトがいつ回収されるか保証されないので、ファイルのクローズなどを
デストラクタに任せることができない。CPythonは参照カウント方式を併用することで、循環参照が発生しない限り、オブジェクトはスコープアウトした時点で必ずデストラクトされることを保証している。なおJythonおよびIronPythonではマーク・アンド・スイープ方式を採用しているため、スコープアウトした時点で必ずデストラクトされることが前提のコードだとJythonやIronPythonでは正しく動かない。
イテレータを実装するためのジェネレータが言語仕様に組み込まれており、Pythonでは多くの場面で
イテレータを使うように設計されている。イテレータの使用はPython全体に普及していて、プログラミングスタイルの統一性をもたらしている。
Pythonでは扱えるデータの全てがオブジェクトである。単純な数値といった基本的なデータ型をはじめ、組み込みのコンテナ型、組み込み関数など、これらは全て統一的な継承関係をもつオブジェクトであり「型」をもっている。これらの組み込み型とユーザ定義型は区別されず、組み込み型を継承したクラスを定義できる。上の「データ型」の項で述べたように Pythonは静的な型チェックを持たないため、Javaのようなインターフェイスという言語上の仕組みは必要とされない。
) メカニズムでは、複数の基底クラスを持つことができ（多重継承）、導出されたクラスでは基底クラスの任意のメソッドをオーバライド（; 上書き）することが可能である。
また、オブジェクトには任意のデータを入れることができる。これらのメソッドやデータは、基本的に、すべてであり、（仮想）である。ただし、先頭にアンダースコアをもつメンバをとすることができる。これは単なるマナーであるが、アンダースコアを2つもつ場合は、クラスの外部からメンバの名前を隠された状態（; 難号化）とすることで
カプセル化を実現できる。また、利用者定義演算子が機能として用意されておりほとんどの組み込み演算子（算術演算子（）や添字表記）はクラスインスタンスで使うために再定義することが可能となっている。
Pythonには「電池付属 ()」という思想があり、プログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしている
サードパーティによるライブラリも豊富に存在する（参考:
Pythonは様々な組み込み型（built-in types）をサポートする。
Mapping型はハッシュ可能な値を任意のオブジェクトへ対応付ける型である
。対応する具象クラスはである。抽象基底クラスにがあり、抽象メソッドとしてが定義されている。
をもったcollectionとも言える。
最初のPythonでは1バイト単位での
型のみ扱い、ひらがな・(全角) カタカナ
マルチバイト文字はサポートしていなかったが、その後のPython 2.0からは
Python 3.0では、Python 2.xにおける文字列型がバイト列型に、またUnicode文字列型が文字列型に変更された。これにより、文字列をPython 3.0で扱う際には後述の変換処理を必ず行う必要がある。ファイル入出力などでエンコードを明示しなければ、標準エンコードを用いて暗黙に行われる場合も多い。これにより多言語の扱いを一貫したものにしている。
エンコードとUnicodeの内部表現を明確に区別している。Unicode文字はメモリ中に保持される抽象的なオブジェクトであり、画面表示やファイルへの入出力の際には変換ルーチン（コーデック
）を介して特定のエンコーディングのバイト列表現との間で相互に変換する。また、ソースコード中の文字コードを認識する機能があり、これによって異なる文字コードで書かれたプログラムの動きが異なるリスクを解消している。
Pythonでは変換ルーチンをモジュールとして追加することで、さまざまなエンコーディングに対応できるようになっている。日本語の文字コード（EUC-JP, Shift_JIS, MS932, ISO-2022-JP）に対応したコーデックも作成されている。Python 2.4からは、日中韓国語用のコーデックが標準でディストリビューションに含まれるようになったため、現在では日本語の処理に関する問題はほとんどなくなった。ただしGUIライブラリである
統合開発環境は、プラットフォームにもよるが、まだきちんと日本語に対応していないものもある。
ソースコードの文字コードには、ASCIIと互換性があり、Pythonが対応しているものを使用する。ソースコードのデフォルトエンコーディングは、Python 3.xではUTF-8（ソースコード以外のPython 3のデフォルトエンコーディングは複雑になっている
）、Python 2.xではASCIIであるが、デフォルトエンコーディング以外の文字コードを使う場合は、ソースファイルの1行目か2行目に一定の書式でコメントとして記述することになっており、しばしば以下のように
などのテキストエディタにも認識可能な書式で記述される（次の例は Emacs が認識できる書式）。
型言語であり（ほとんどの場合）プログラムの実行に際して実行環境（ランタイム
）を必要とする。以下はランタイム（実装）およびそれらが実装されているプラットフォームの一覧である。
Pythonの最初のバージョンは
上で開発された。のちに多くの計算機環境上で動作するようになった。
プラットフォーム（ランタイム・コンパイラ
Pythonには複数の実装（ランタイム又はコンパイラ）が存在する。
で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
・PythonをC言語化へトランスコードするソフトウェア。静的型付けが可能で速度の向上をはかれる。
で実装されている。.NET Frameworkのライブラリを使うことができる。
上に構築されているため、既存の.NETアプリケーションへ
マクロ言語として搭載することも可能となっている。
・組み込み向けの実装。256 kB以上のフラッシュを推奨。
向けの実装・対話計算に向けたPythonへのシェル
Codon - Python言語ソースから機械語へのコンパイラ処理系
PyOMP - PythonをOpenMPで並列化するシステム
最新の Python 仕様には追従していないが開発が続けられているランタイム・コンパイラとしては以下が挙げられる。
上に移植したもの。PythonからJavaのライブラリを使うことができる。Python 2 系 (2025-06現在)
開発が停止・終了したランタイム・コンパイラ
スタックを使わずに独自のスタック（Pythonスタック）で実装。2021年で開発停止、2025年に終了宣言のチームによるPythonの実装。
。2012年に開発終了・組み込み向けの実装、などに対応。
・同じく組み込み向けの実装。ソースコードが 64
未満と非常に軽量なことが謳われている。
Pythonはパッケージ管理ソフト・ライブラリ・レポジトリなどからなるエコシステムを形成している。
ビルドシステム/wheel/インストーラ
パッケージ管理システムによっておこなわれる。バイナリパッケージの
インタフェースとしてビルドシステムとパッケージ管理システムの分離が可能になっている（PyPI）と呼ぶ公式のパッケージリポジトリが存在する。
パッケージ管理および実行環境管理を含めた統合開発環境としてはが存在する。
Pythonは多様なコミュニティライブラリによって支えられている。
プログラミング数学、科学、工学のための数値計算
機械学習・データサイエンス・AI
3Dグラフィックスやアニメーション
Pythonアプリのコンパイルによる高速化
クローリング、スクレイピング用のpythonフレームワーク
Webアプリケーションフレームワーク（ボトル） -（チェリーパイ） -（ジャンゴ） -（フラスク） -（ファストエーピーアイ） -（ピラミッド） -（プローン） -（トルネード） -（サイクロン） -
Pythonを使っている製品あるいはソフトウェアの一覧
Pythonは全世界で使われているが、欧米の企業でもよく使われている。大企業では
などのパッケージソフトウェア企業をはじめ、などの企業も利用している
では、S60シリーズでPythonアプリケーションが動く
高エネルギー加速器研究機構でPythonが使われている。
ベースのアプリケーション、3Dモデリング
データサイエンスおよび数値計算用途
などの高速な数値計算ライブラリの存在により、データサイエンスや科学技術コンピューティングにもよく用いられる。NumPy、SciPyの内部はC言語で書かれているので、動的スクリプト言語の欠点の一つである動作速度の遅さを補っているを使うと、Python のコードが
して利用可能であり、非常に高速な計算ができる。
上で高速に計算するライブラリも充実している。
とPythonソフトウェア財団による共同調査によると、2017年10月現在、Pythonの最も主要な用途は何かというアンケートの結果によると、27%がデータサイエンス（そのうち18%がデータ解析、9%が
Webアプリケーションフレームワークが充実しているため、Webアプリケーション開発用途にも多く使われている。JetBrains とPythonソフトウェア財団による共同調査によると、2017年10月現在、26%の人が最も主要な用途としてWeb開発を選んだ
：オープンソースで商用利用も可能なので、スマホアプリの販売が可能。androidアプリもiOSアプリも作成することが可能
：pythonの標準ライブラリで簡単にGUIアプリを作成可能。ネットでの情報が最も多い
：クロスプラットフォームで作成可能だが、商用利用は有償
：クロスプラットフォームで動作可能なGUIアプリを作成可能
システム管理およびグルー言語用途
スクリプト言語としての特性から、従来
シェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして複数ので採用されている。また、異なる言語で書かれた多数のモジュールの機能を貼り合わせる
グルー言語（糊の言語）として利用する例も多い。実際、多くの商用
アプリケーションでPythonは組み込みのスクリプト言語として採用されている。
JetBrainsとPythonソフトウェア財団による共同調査によると、2017年10月現在、9%の人が最も主要な用途として、システム管理、自動化スクリプトを上げた
Pythonは本来は教育用を目的として設計されたわけではないが、その単純さから子供が最初に学ぶプログラミングにおける教育用の言語としての利用が増えている。
グイド・ヴァンロッサムはPython設計以前に教育用言語であるの開発にかかわり、教育用としての利用について期待感を示したこともあり、方針として非技術者向けといった利用を視野に入れているとされることもある
私の大好きなPython利用法は、騒ぎ立てずに、言語教育でプログラミングの原理を教えること。それを考えてくれ――次の世代の話だね。
スラド『 Guido van Rossum へのインタビュー』
基本情報技術者試験では2020年の春期試験からを廃止してPythonを追加した
高等学校情報科「情報Ⅰ」の教員向け研修教材の中で、プログラミング用言語としてPythonが使われている
ただし、Pythonの言語は言語自身に組み込まれている型とそれに付随するメソッドの多いことなどから、C言語に較べると遙かに多くの憶えなければならない事柄があることになる。持つ機能の一部だけに限定して教育に用いるならば、憶えなければならない事柄を減らすことができる。しかし言語の機能をすべて知っていないと他人の書いたプログラムを正しく理解することが出来ない可能性が生じる。Python言語の変数自身には型が無いことから、プログラム上で扱われているデータ・オブジェクトの型が何であるかは実行時に動的に決まるので、それを読み解いて把握しなければプログラムが行っている処理の内容を正しく把握することが難しいことがしばしばある（正しい注釈を付けてプログラムを書くことが重要である）。
また、Pythonの文法は僅か1行でも処理を記述できるほどに簡潔なので、まだプログラミングについてよく知らない子供でも取り組みやすい言語であると言える。
# Pythonはたった一行のコードで文字を表示することができる。
// Javaでは文字の表示に最低5行コードを記述する必要がある
Pythonはその文法の簡潔さにより、 誰が書いても似たようなコードになりやすい性質があるので、学習が進むにつれて大人が作成したコードを理解できるようになる。
また、文法が簡潔なのでコードを記述している最中に混乱することが少なくなり、子供が途中で諦めてしまう傾向が少ない点も教育用として利用される理由でもある。
この節で示されている出典について、該当する記述が
具体的にその文献の何ページあるいはどの章節にあるのか、特定が求められています
Pythonはプロスポーツの分析によく使われている。
メジャーリーグベースボール（野球）、イングリッシュプレミアリーグ（サッカー）、ナショナルバスケットボールアソシエーション（バスケットボール）、ナショナルホッケーリーグ（アイスホッケー）、インディアンプレミアリーグ（クリケット）の実際のデータセットからのスポーツ分析は、ベストセラーの
マネーボールによって示される現実世界の成功によって部分的に推進され、人気が高まっている研究分野として浮上している（セイバーメトリクス
）。チームとプレーヤーのパフォーマンスデータの分析は、フィールド、コート、氷上だけでなく、ファンタジースポーツプレーヤーやオンラインスポーツギャンブルのリビングルームでもスポーツ業界に革命をもたらし続けている。実際のスポーツデータを使用した予測スポーツ分析の原則を使用して、プレーヤーとチームのパフォーマンスを予測する
Pythonを使ってデータをプログラミングする方法を示したり、マネーボールのストーリーの背景にある主張を検証したり、マネーボールの統計の進化を調べたりすることが可能である。公開されているデータセットから野球のパフォーマンス統計を計算するプロセスを案内される。実行期待値マトリックスを使用して導出された、より高度な測定値（Wins Above Replacement（）など）に進む。これらの統計を使用して、独自のチームおよびプレーヤーの分析を行うことができるようになる
Pythonを使用してプロスポーツの試合結果の予測を生成する方法の主な重点は、チームの支出に関するデータを使用して、ゲームの結果をモデル化する方法として
ロジスティック回帰の方法を教えることである。過去の結果をモデル化し、そのモデルを使用して、まだプレイされていない結果のゲームを予測するプロセスを実行する。ベッティングオッズのデータを使用してモデルの信頼性を評価する方法をオーナーに示す。分析は最初に英国プレミアリーグに適用され、次にNBAとNHLに適用される。データ分析とギャンブルの関係、その歴史、および個人的なリスクを含むスポーツベッティングに関連して発生する社会的問題の概要も説明する。マネーボールは、データ分析を使用してチームの勝率を高めることができることを示すことにより、プロスポーツのパフォーマンス統計の分析に
Pythonを使用してデータをプログラムし、マネーボールのストーリーの背後にある主張をテストし、マネーボール統計の進化を調べる方法を示し、公開されているデータセットから野球のパフォーマンス統計を計算するプロセスができる
。スポーツ分析には、トレーニングと競技の両方の取り組みを定量化するアスリートとチームからの大量のPythonデータセットが含まれるようになった。ウェアラブルテクノロジーデバイスは、アスリートが毎日着用しており、シーズン全体にわたるアスリートのストレスと回復を詳細に調べるためのかなりの機会を提供する。これらの大規模なデータセットのキャプチャは、怪我の予防に関する新しい仮説と戦略、およびトレーニングと回復を最適化するためのアスリートへの詳細なフィードバックにつながった。Pythonでのプログラミングを使用して、トレーニング、回復、パフォーマンスに関連する概念を調査することもできる（sklearn）ツールキットと実際の運動データを使用して教師あり機械学習手法を探索し、機械学習アルゴリズムと運動結果の予測方法の両方を理解する。
およびロジスティック回帰、アンサンブル
などの方法を適用して、NHLやMLBなどのプロスポーツリーグからのデータを調べる。また、慣性測定ユニット（IMU）などのウェアラブルデバイスも含まれる。分類と回帰の手法を使用して、運動活動やイベント全体であるスポーツ分析を可能にする方法を幅広く理解できるようになる。スポーツコンテストのカテゴリ別結果変数（つまり、勝ち、引き分け、負け）を処理する際の回帰モデル、線形確率モデル（LPM）を、その理論的基礎、計算アプリケーション、および経験的制限の観点からモジュールは、カテゴリ従属変数のLPMのより良い代替として、ロジスティック回帰をし、デモンストレーションする。順序付けられたロジットモデルと公開されている情報を使用してEPLサッカーゲームの結果を予測する方法を示す。ベッティングオッズに対してこれらの予測の正確さを評価し、それらが非常に正確であることを示す。北米の3つのチームスポーツリーグ（NHL、NBA、MLB）のコンテキストでモデルを複製することにより、前週に取り上げたEPL予測モデルの有効性を評価する。具体的には、順序付けられたロジットモデルと公開されている情報を使用して、NHL、NBA、MLBのレギュラーシーズンゲームの結果を予測する
オブジェクト指向を対応させるために作られた言語である
。正確には、AmoebaへABC言語を実装する研究をしていたヴァンロッサムが、クリスマス休暇の間にC言語を元にして生まれたインタープリターから始まる
にヴァンロッサムがPython 0.90の
ソースコードを公開した。この時点ですでにオブジェクト指向言語の特徴である
1月、Python 1.0を公開した。主な特徴として
ラムダ計算を実装、map関数・reduce関数などを組み込んだ。
バージョン1.4からはにある機能とよく似た
キーワード引数を導入した。また簡易ながら
を導入した。一躍メジャーな言語となった。多くの機能はを参考にして導入している。
バージョン2.4には、子プロセスの起動やコマンドを実行できるsubprocessモジュールが実装された。
2.6以降のバージョンには、2.xから3.xへの移植を助ける「2to3 ツール」と「lib2to3 モジュール」を含んでいる
。2.7が2.xの最後のバージョンで、2.7のサポートは
。ただし、サポート終了後に 2.7.18 を2020年4月にリリースし、これが最後の 2.7.x になる
。これ以上のセキュリティパッチやその他の改善はリリースされない
、長い試験期間を経てPython 3.0が公開された。
開発初期には、西暦3000年に公開予定の理想のPythonとして、Python 3000と呼んでいた。Py3Kと略すこともある。
しかし2.xとの後方互換性が損なわれている。当初は2.xに比べて3.xが利用できるライブラリ等が著しく少ないという問題点があったが、など徐々に3.xに対応したフレームワークやライブラリなどが増えていったこともあり、時点においては新規のプロジェクトについて3.xで開発することが多くなっている
。JetBrains とPythonソフトウェア財団による共同調査では、Python の 2 と 3 がどっちがメインであるかというアンケートで、Python 3 がメインであると答えた人が、2016年1月は40%だったが、2017年10月は75%になった
11月にリリースされたや2016年4月にリリースされたでは、デフォルトでインストールされるPythonのバージョンが2.xから3.xに変更されている。
では8をもってPython 2が廃止となった
print命令をprint関数へ変更
単体テストフレームワーク「unittest」への機能追加
import文のリファレンス実装となる、Pythonで実装したimportlibモジュール
ネストしたwith文に対する新たな文法
単体テストモジュールのアップデートや拡張モジュール向け stable ABI
pyc レポジトリディレクトリのサポート
E-mail パッケージや SSL モジュールの改善
3.1リリースから2年間、言語仕様を凍結し変更を行わない「モラトリアム期間」を解除した
新しい文法として、ジェネレータ関数内で別のジェネレータ関数を利用する「yield from」を追加。
「u」や「U」といったプレフィックスを用いたUnicodeリテラルシンタックスを復活
UCS-4文字列にも対応し、文字列表現の柔軟性を強化
仮想化Python実行環境を導入するためのvirtualenvパッケージの機能を「venv」機能としてコアに取り込んだ。
オブジェクト指向ファイルシステムパスを提供する「pathlib」モジュールの提供
列挙型を扱うためのenumモジュールの標準化
統計関数を提供するstatisticsモジュールの導入
Pythonが割り当てたメモリブロックを追跡するためのデバッグツールのtracemallocモジュールの導入
非同期I/Oを扱うためのフレームワークとなるasyncioモジュールの導入
Pythonの組み込み関数に関する分析情報を得るため機構の実装
zipアプリケーションサポートの改良
byte/bytearrayオブジェクトのための「%」フォーマット対応の追加
高速ディレクトリトラバーサル機能os.scandir()の導入
割込がかかったシステムコールのオートリトライ機能追加
近似値であるかどうかをテストする機能の導入.pyoファイルの削除
拡張モジュールをロードするための新しい仕組みの導入
文字列中に式を埋め込める「Formatted string literals」の導入
変数に対して型に関する情報（型ヒント）を与える「Syntax for variable annotations」の導入
)でコルーチンを利用可能にする「Asynchronous generators」の導入
標準ライブラリにsecretsモジュールを追加
DTraceおよびSystemTapプローブのサポートを追加
使用時点では宣言されていない型を使った型アノテーション表記が可能となる
レガシーな C ロケールの抑圧、強制 UTF-8 実行モード
s) 単位の分解能を持つ新しい時間関数の追加
f文字列で f'{expr=}' の形式のサポート
dict での reversed のサポート
デバッガなどでより正確な行番号を表示
ユニオン型を X | Y と書けるようになったを付与した明示的な型エイリアス
で、グイド・ヴァンロッサムによってPythonの初期バージョンが作成される。
1995年 - ヴァンロッサムは米国ヴァージニア州レストンにあるに移動。ここでPythonの開発に携わり、いくつかのバージョンを公開する。
2000年3月 - ヴァンロッサムとPythonのコア開発チームは BeOpen.com に移り、BeOpen PythonLabs チームを結成する。同年10月、PythonLabsチームはDigital Creations (現在の
2001年 - Pythonに関する知的財産を保有するための非営利組織
Pythonソフトウェア財団（PSF）が立ち上がる。このときZope CorporationはPSFの賛助会員となる。
インデントによる構文）（モジュール機能、オブジェクト指向）（辞書、スライス演算子など）
（リストの内包表現）（基本的な構文）（仮想マシン機構、動的性）
オープンソースで配布されている。このライセンスの内容はに類似したものであるが、変更したバージョンを配布する際に変更をオープンソースにしなくてもよい、という点がGPLとは異なっている。
・標準ライブラリミニツアー. 2026年1月4日閲覧。
一発で素人だとばれるPythonコード、「a=1」のどこがまずいのか
”.   日経クロステック. 2025年5月10日閲覧。
typing --- 型ヒントのサポート — Python 3.10.0b2 ドキュメント
”. 2025年6月11日閲覧。
”. 2006年4月28日時点の
よりアーカイブ。2007年1月17日閲覧。
よりアーカイブ。2007年1月17日閲覧。
”. 2011年5月16日閲覧。
プレス発表 基本情報技術者試験における出題を見直し：IPA 独立行政法人 情報処理推進機構
初等中等教育局情報教育・外国語教育課
高等学校情報科「情報Ⅰ」教員研修用教材（本編）
第3章 コンピューターとプログラミング
Pythonとは？主な特徴や子どもに習得させるメリットを知っておこう. 2023年6月2日閲覧。
Pythonの歴史について起源から分かりやすく解説
テクフリ. 2025年11月21日閲覧。
「Pythonのsubprocessモジュールの使い方｜子プロセスの起動方法からわかりやすく解説」.NET Column (2021年3月25日) 2023年5月17日閲覧。
"Python 2.7.18はPython 2.7の最後のリリースであり、したがってPython 2の最後のリリースである ". 2020年4月27日閲覧。
【入門者必見】Python2と3、どっちを学習すべき？違いを徹底解説！
”.   株式会社 侍. 2016年9月21日閲覧。
. 2013年10月24日時点の
よりアーカイブ。2016年9月21日閲覧。
RHEL8/9系ディストリビューションでPython 3を使う
登場! Python 3.0 - 2系との違いを比較
マイナビ(2009年1月1日). 2014年3月13日閲覧。
「Python 3.1」正式版リリース
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
末岡洋子 (2012年10月1日). “
仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース. 2012年10月2日時点の
よりアーカイブ。2014年3月13日閲覧。
後藤大地 (2014年3月18日). “
マイナビニュース. 2014年3月20日閲覧。
末岡洋子 (2014年3月18日). “「Python 3.4」リリース、標準ライブラリを強化. 2014年3月19日時点の
よりアーカイブ。2014年3月20日閲覧。
後藤大地 (2015年9月13日). “
マイナビニュース. 2015年11月5日閲覧。
「Python 3.5」正式版がリリース – 新機能が多数追加
”.   ソフトアンテナブログ (2015年9月14日). 2022年10月2日時点の
よりアーカイブ。2015年11月5日閲覧。
末岡洋子 (2016年12月26日). “. 2016年12月26日時点の
よりアーカイブ。2017年5月26日閲覧。
”. 2016年12月5日閲覧。
”. 2007年1月15日閲覧。
よりアーカイブ。2014年3月13日閲覧。
ポータル FOSS・Pythonを対話的に実行するためのシェル。
・Python言語ベースのハードウェア記述言語
Julia (プログラミング言語)・PythonのライブラリやC言語、Fortran言語のコードを呼び出せるプログラミング言語。Pythonよりも動作が高速である。
空飛ぶモンティ・パイソン・これがPythonという言語名の由来である
石本敦夫：「Python文法詳解」、オライリージャパン、大和田勇人、金盛克俊：「Pythonで始めるプログラミング入門」、コロナ社、滝澤成人：「Python [基礎編] ワークブック」、カットシステム、松浦健一郎、司ゆき：「わかるPython [決定版] 」、SBクリエイティブ、柴田望洋：「新・明解Python入門」、SBクリエイティブ 、（2019年5月30日）。＃（これは初版、第2版あり）
亀田健司：「1週間でPythonの基礎が学べる本」、インプレス、山田祥寛：「独習Python」、翔泳社、Guido van Rossum：「Pythonチュートリアル 第4版」、オライリージャパン、Bill Lubanovic：「入門 Python 3　第2版」、オライリージャパン、松浦健一郎、司ゆき：「Python [完全] 入門」、SBクリエイティブ、小高知宏：「Python言語で学ぶ基礎からのプログラミング」、近代科学社、岩崎圭、北川慎治、寺田学：「スラスラわかるPython 第2版」、富樫敦：「コンピュータプログラミング：Pythonでアルゴリズムを実装しながら問題解決を行う」、コロナ社、松尾正信
:「Pythonプログラミング ABCー正確に・美しく・簡潔に! ー」、近代科学社、上野照正、山崎貴史：「プログラムのつくりかた Python 基礎編 Lv.1」、実教出版、山崎貴史、廣田龍之介、森田直人：「Python ハンディプログラミング事典」、実教出版、Patrick Viafore：「ロバストPython ―クリーンで保守しやすいコードを書く」、オライリー・ジャパン、Micha Gorelick、Ian Ozsvald：「ハイパフォーマンスPython 第2版」、オライリー・ジャパン、Wes McKinney：「Pythonによるデータ分析入門 第3版」、オライリー・ジャパン、柴田望洋：「新・明解Python入門 第2版」、SBクリエイティブ 、David M. Beazley、鈴木駿（訳）：「Python Distilled - プログラミング言語Pythonのエッセンス」、オライリー・ジャパン、Christian Hill:「Python科学技術計算：物理・化学を中心に」第２版，東京化学同人、(2023年11月20日)。※ 利用例
金城俊哉：「PC・IT図解 Pythonプログラミングの技術としくみ」、秀和システム、綾皓二郎：「計算論的思考を育むPythonプログラミング入門」、近代科学社、(2024年6月24日)。※ 高速化技法
altnight，石上晋，delhi09，鈴木たかのり，斎藤努：「現場のPython ──Webシステム開発から、機械学習・データ分析まで」、技術評論社、Claudio Jolowicz：「ハイパーモダンPython」、オライリー・ジャパン、
Glyn Moody 小山祐司監訳『ソースコードの反逆』
ウィキメディア・コモンズには、に関連するカテゴリがあります。
関連の解説書・教科書があります。
・Python公式サイト（英語）
Python チュートリアル・マニュアル日本語訳の配布（英語）
あとりえこばと：「Python プログラミング講座」(2018年8月13日).
プログラミング演習 Python 2019
本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はでご確認ください。
喜多 一、森村吉貴、岡本雅子：「教科書：プログラミング演習 Python」 (2023年版、京都大学学術情報リポジトリ、CC-BY-NC-ND ライセンス)
Pythonプログラミング入門・東京大学
ゼロからのPython入門講座・科学技術計算のために Python を始めよう。
Python による科学技術計算の概要
神嶌敏弘（2020年4月21日）。
情報処理学会公開教材 IPSJ　MOOC  # （これらは講義スタイルのビデオ教材です）
基本的なプログラミング （Python入門）
アルゴリズム （Pythonを使ったアルゴリズム入門）
モデル化とシミュレーション（Pythonを使ったシミュレーション入門）「とほほのPython入門」((C) 2014-2022 杜甫々, 最終更新2022年10月9日)「Pythonプログラミング入門」©2020–2023, 東京大学 数理・情報教育研究センター (CC BY-NC-ND 4.0)
小林克志：「コンピュータシステム概論」、東京大学オープンコースウェア
コンピュータ・プログラミング言語
出典を必要とする記事/2025年10月
出典のページ番号が要望されている記事
独自研究の除去が必要な記述のある記事/2024年1月-6月
無効な出典が含まれている記事/2018年
ISBNマジックリンクを使用しているページ
出典: フリー百科事典『ウィキペディア（Wikipedia）』
この項目では、プログラミング言語について説明しています。その他の用法については「
参考文献や出典が全く示されていないか、不十分です。
して記事の信頼性向上にご協力ください。
命令型プログラミング、マルチパラダイムプログラミング
テンプレートを表示（パイソン）は、主として
Pythonは1990年代初頭に
グイド・ヴァン・ロッサムが開発し、1991年2月に0.9.0として公開された
最初にリリースされたPythonの設計哲学は、ホワイトスペース（オフサイドルール
の可読性を重視している。その言語構成と
オブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
動的型付き言語であり、ガベージコレクションがある。
関数型プログラミングを含む複数の
プログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現されている
Pythonのインタプリタは多くのOSに対応している。プログラマーのグローバルコミュニティは、自由かつオープンソース
を開発および保守している 。非営利団体である
Pythonソフトウェア財団は、PythonとCPythonの開発のためのリソースを管理・指導している。
上で実行することを前提に設計している。以下の特徴をもっている:
・オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
Pythonには、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しており、Pythonコミュニティでも単純で簡潔なコードをよしとする傾向が強い
Pythonの本体は、ユーザがいつも必要とする最小限の機能のみを提供する。基本機能以外の専門機能や拡張プログラムはインターネット上にライブラリとして提供されており、別途ダウンロードして保存し、必要なツールはこのツールキットからその都度呼び出して使用する
Pythonでは「あることをなすのに唯一の良いやり方があるはず」という哲学がある（参考:「やり方は一つじゃない」
Pythonではプログラムの文書化（ソフトウェアドキュメンテーション
）が重視されており、言語の基本機能の一部となっている。
（関数名：factorial）を題材にC言語と比較した例を示す。
わかりやすく整形されたC言語のコード:
この例では、Pythonと整形されたC言語とでは、プログラムコードの間に違いがほとんど見られない。しかし、C言語のインデントは構文規則上のルールではなく、単なる読みやすさを向上させる
コーディングスタイルでしかない。そのためC言語では全く同じプログラムを以下のように書くこともできる。
Pythonではインデントは構文規則として決められているため、こうした書き方は不可能である。Pythonではこのように強制することによって、ソースコードのスタイルがその書き手にかかわらずほぼ統一したものになり、その結果読みやすくなるという考え方が取り入れられている。これについては賛否両論があり、批判的立場の人々からは、これはプログラマがスタイルを選ぶ自由を制限するものだ、という意見も出されている。
インデントによる整形は、単に「見かけ」だけではなく品質そのものにも関係する
このコードはC言語の構文規則上は問題無いが、インデントによる見かけのifの範囲と、言語仕様によるifの実際の範囲とが異なっているため、プログラマの意図が曖昧になる（前者は"y = 0;"がif文に包含され、後者は"{}"がないため"y = 0;"がif文に包含されない）。この曖昧さは、検知しにくいバグを生む原因になる。例としてはが挙げられる。
ソースコードを読む際、多くの人はインデントのような空白を元に整列されたコードを読み、コンパイラのように構文解析しながらソースを読むものではない。その結果、一見しただけでは原因を見つけられないバグを作成する危険がある。
Pythonではインデントをルールとすることにより、人間が目視するソースコードの理解とコンパイラの構文解析の間の差を少なくすることで、より正確に意図した通りにコーディングすることができると主張されている
システムをもつ。同時に任意の型ヒントを持っており外部ツールによる静的型チェックを可能にしている。
値自身が型を持っており、変数はすべて値への
型・文字列型・バイト列型・関数型がある。整数型は（メモリの許す限り）無制限の桁数で整数計算が可能である。浮動小数点数型を整数型にキャストすると、小数点以下が切り捨てられる。
型がある。リスト型および辞書型は
イミュータブルである。集合型には変更可能なものと変更不能なものの2種類がある。タプル型とリスト型は、多くのプログラミング言語では
と呼ばれるものに類似している。しかし、Pythonではタプル型は辞書のキーとして使うことができるが、リスト型は内容が変わるため辞書のキーとして使うことはできないという理由から、これら2つの型を区別している。
多くのオブジェクト指向プログラミング言語と同様、Pythonではユーザが新しく自分の型を定義することも可能である。この場合、組み込み型を含む既存の型を継承して新たな型（クラス）を定義する事も、ゼロから全く新しい型を作り出す事も出来る。
Pythonは基本的にメソッドや関数の引数に型を指定する必要がない。そのため、ダック・タイピングという、内部で必要とする演算子やメソッドに対応していれば、関数やオブジェクトの設計時点で意図していなかったオブジェクトを引き渡すことも可能である。
Pythonは型ヒントの構文を用意している
。これはプログラマ向けの注釈および外部ツールによる静的型チェックに用いられる。
例として、文字列型の値を受け取って文字列型の値を返す関数は次のようにアノテーションできる。
は特定のキーとバリュー型をもった辞書オブジェクトを表現する型である
型の定義にはクラス継承構文が用いられるが、この型を持つオブジェクトはランタイムにおいて純粋な
インスタンスになる。つまり型ヒント専用の型であり、ランタイム型とは区別される
ガベージコレクションを内蔵しており、参照されなくなったオブジェクトは自動的にメモリから破棄される。
では、ガベージコレクションの方式として
方式を併用している。マーク・アンド・スイープ方式のみに頼っている言語では、オブジェクトがいつ回収されるか保証されないので、ファイルのクローズなどを
デストラクタに任せることができない。CPythonは参照カウント方式を併用することで、循環参照が発生しない限り、オブジェクトはスコープアウトした時点で必ずデストラクトされることを保証している。なおJythonおよびIronPythonではマーク・アンド・スイープ方式を採用しているため、スコープアウトした時点で必ずデストラクトされることが前提のコードだとJythonやIronPythonでは正しく動かない。
イテレータを実装するためのジェネレータが言語仕様に組み込まれており、Pythonでは多くの場面で
イテレータを使うように設計されている。イテレータの使用はPython全体に普及していて、プログラミングスタイルの統一性をもたらしている。
Pythonでは扱えるデータの全てがオブジェクトである。単純な数値といった基本的なデータ型をはじめ、組み込みのコンテナ型、組み込み関数など、これらは全て統一的な継承関係をもつオブジェクトであり「型」をもっている。これらの組み込み型とユーザ定義型は区別されず、組み込み型を継承したクラスを定義できる。上の「データ型」の項で述べたように Pythonは静的な型チェックを持たないため、Javaのようなインターフェイスという言語上の仕組みは必要とされない。
) メカニズムでは、複数の基底クラスを持つことができ（多重継承）、導出されたクラスでは基底クラスの任意のメソッドをオーバライド（; 上書き）することが可能である。
また、オブジェクトには任意のデータを入れることができる。これらのメソッドやデータは、基本的に、すべてであり、（仮想）である。ただし、先頭にアンダースコアをもつメンバをとすることができる。これは単なるマナーであるが、アンダースコアを2つもつ場合は、クラスの外部からメンバの名前を隠された状態（; 難号化）とすることで
カプセル化を実現できる。また、利用者定義演算子が機能として用意されておりほとんどの組み込み演算子（算術演算子（）や添字表記）はクラスインスタンスで使うために再定義することが可能となっている。
Pythonには「電池付属 ()」という思想があり、プログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしている
サードパーティによるライブラリも豊富に存在する（参考:
Pythonは様々な組み込み型（built-in types）をサポートする。
Mapping型はハッシュ可能な値を任意のオブジェクトへ対応付ける型である
。対応する具象クラスはである。抽象基底クラスにがあり、抽象メソッドとしてが定義されている。
をもったcollectionとも言える。
最初のPythonでは1バイト単位での
型のみ扱い、ひらがな・(全角) カタカナ
マルチバイト文字はサポートしていなかったが、その後のPython 2.0からは
Python 3.0では、Python 2.xにおける文字列型がバイト列型に、またUnicode文字列型が文字列型に変更された。これにより、文字列をPython 3.0で扱う際には後述の変換処理を必ず行う必要がある。ファイル入出力などでエンコードを明示しなければ、標準エンコードを用いて暗黙に行われる場合も多い。これにより多言語の扱いを一貫したものにしている。
エンコードとUnicodeの内部表現を明確に区別している。Unicode文字はメモリ中に保持される抽象的なオブジェクトであり、画面表示やファイルへの入出力の際には変換ルーチン（コーデック
）を介して特定のエンコーディングのバイト列表現との間で相互に変換する。また、ソースコード中の文字コードを認識する機能があり、これによって異なる文字コードで書かれたプログラムの動きが異なるリスクを解消している。
Pythonでは変換ルーチンをモジュールとして追加することで、さまざまなエンコーディングに対応できるようになっている。日本語の文字コード（EUC-JP, Shift_JIS, MS932, ISO-2022-JP）に対応したコーデックも作成されている。Python 2.4からは、日中韓国語用のコーデックが標準でディストリビューションに含まれるようになったため、現在では日本語の処理に関する問題はほとんどなくなった。ただしGUIライブラリである
統合開発環境は、プラットフォームにもよるが、まだきちんと日本語に対応していないものもある。
ソースコードの文字コードには、ASCIIと互換性があり、Pythonが対応しているものを使用する。ソースコードのデフォルトエンコーディングは、Python 3.xではUTF-8（ソースコード以外のPython 3のデフォルトエンコーディングは複雑になっている
）、Python 2.xではASCIIであるが、デフォルトエンコーディング以外の文字コードを使う場合は、ソースファイルの1行目か2行目に一定の書式でコメントとして記述することになっており、しばしば以下のように
などのテキストエディタにも認識可能な書式で記述される（次の例は Emacs が認識できる書式）。
型言語であり（ほとんどの場合）プログラムの実行に際して実行環境（ランタイム
）を必要とする。以下はランタイム（実装）およびそれらが実装されているプラットフォームの一覧である。
Pythonの最初のバージョンは
上で開発された。のちに多くの計算機環境上で動作するようになった。
プラットフォーム（ランタイム・コンパイラ
Pythonには複数の実装（ランタイム又はコンパイラ）が存在する。
で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
・PythonをC言語化へトランスコードするソフトウェア。静的型付けが可能で速度の向上をはかれる。
で実装されている。.NET Frameworkのライブラリを使うことができる。
上に構築されているため、既存の.NETアプリケーションへ
マクロ言語として搭載することも可能となっている。
・組み込み向けの実装。256 kB以上のフラッシュを推奨。
向けの実装・対話計算に向けたPythonへのシェル
Codon - Python言語ソースから機械語へのコンパイラ処理系
PyOMP - PythonをOpenMPで並列化するシステム
最新の Python 仕様には追従していないが開発が続けられているランタイム・コンパイラとしては以下が挙げられる。
上に移植したもの。PythonからJavaのライブラリを使うことができる。Python 2 系 (2025-06現在)
開発が停止・終了したランタイム・コンパイラ
スタックを使わずに独自のスタック（Pythonスタック）で実装。2021年で開発停止、2025年に終了宣言のチームによるPythonの実装。
。2012年に開発終了・組み込み向けの実装、などに対応。
・同じく組み込み向けの実装。ソースコードが 64
未満と非常に軽量なことが謳われている。
Pythonはパッケージ管理ソフト・ライブラリ・レポジトリなどからなるエコシステムを形成している。
ビルドシステム/wheel/インストーラ
パッケージ管理システムによっておこなわれる。バイナリパッケージの
インタフェースとしてビルドシステムとパッケージ管理システムの分離が可能になっている（PyPI）と呼ぶ公式のパッケージリポジトリが存在する。
パッケージ管理および実行環境管理を含めた統合開発環境としてはが存在する。
Pythonは多様なコミュニティライブラリによって支えられている。
プログラミング数学、科学、工学のための数値計算
機械学習・データサイエンス・AI
3Dグラフィックスやアニメーション
Pythonアプリのコンパイルによる高速化
クローリング、スクレイピング用のpythonフレームワーク
Webアプリケーションフレームワーク（ボトル） -（チェリーパイ） -（ジャンゴ） -（フラスク） -（ファストエーピーアイ） -（ピラミッド） -（プローン） -（トルネード） -（サイクロン） -
Pythonを使っている製品あるいはソフトウェアの一覧
Pythonは全世界で使われているが、欧米の企業でもよく使われている。大企業では
などのパッケージソフトウェア企業をはじめ、などの企業も利用している
では、S60シリーズでPythonアプリケーションが動く
高エネルギー加速器研究機構でPythonが使われている。
ベースのアプリケーション、3Dモデリング
データサイエンスおよび数値計算用途
などの高速な数値計算ライブラリの存在により、データサイエンスや科学技術コンピューティングにもよく用いられる。NumPy、SciPyの内部はC言語で書かれているので、動的スクリプト言語の欠点の一つである動作速度の遅さを補っているを使うと、Python のコードが
して利用可能であり、非常に高速な計算ができる。
上で高速に計算するライブラリも充実している。
とPythonソフトウェア財団による共同調査によると、2017年10月現在、Pythonの最も主要な用途は何かというアンケートの結果によると、27%がデータサイエンス（そのうち18%がデータ解析、9%が
Webアプリケーションフレームワークが充実しているため、Webアプリケーション開発用途にも多く使われている。JetBrains とPythonソフトウェア財団による共同調査によると、2017年10月現在、26%の人が最も主要な用途としてWeb開発を選んだ
：オープンソースで商用利用も可能なので、スマホアプリの販売が可能。androidアプリもiOSアプリも作成することが可能
：pythonの標準ライブラリで簡単にGUIアプリを作成可能。ネットでの情報が最も多い
：クロスプラットフォームで作成可能だが、商用利用は有償
：クロスプラットフォームで動作可能なGUIアプリを作成可能
システム管理およびグルー言語用途
スクリプト言語としての特性から、従来
シェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして複数ので採用されている。また、異なる言語で書かれた多数のモジュールの機能を貼り合わせる
グルー言語（糊の言語）として利用する例も多い。実際、多くの商用
アプリケーションでPythonは組み込みのスクリプト言語として採用されている。
JetBrainsとPythonソフトウェア財団による共同調査によると、2017年10月現在、9%の人が最も主要な用途として、システム管理、自動化スクリプトを上げた
Pythonは本来は教育用を目的として設計されたわけではないが、その単純さから子供が最初に学ぶプログラミングにおける教育用の言語としての利用が増えている。
グイド・ヴァンロッサムはPython設計以前に教育用言語であるの開発にかかわり、教育用としての利用について期待感を示したこともあり、方針として非技術者向けといった利用を視野に入れているとされることもある
私の大好きなPython利用法は、騒ぎ立てずに、言語教育でプログラミングの原理を教えること。それを考えてくれ――次の世代の話だね。
スラド『 Guido van Rossum へのインタビュー』
基本情報技術者試験では2020年の春期試験からを廃止してPythonを追加した
高等学校情報科「情報Ⅰ」の教員向け研修教材の中で、プログラミング用言語としてPythonが使われている
ただし、Pythonの言語は言語自身に組み込まれている型とそれに付随するメソッドの多いことなどから、C言語に較べると遙かに多くの憶えなければならない事柄があることになる。持つ機能の一部だけに限定して教育に用いるならば、憶えなければならない事柄を減らすことができる。しかし言語の機能をすべて知っていないと他人の書いたプログラムを正しく理解することが出来ない可能性が生じる。Python言語の変数自身には型が無いことから、プログラム上で扱われているデータ・オブジェクトの型が何であるかは実行時に動的に決まるので、それを読み解いて把握しなければプログラムが行っている処理の内容を正しく把握することが難しいことがしばしばある（正しい注釈を付けてプログラムを書くことが重要である）。
また、Pythonの文法は僅か1行でも処理を記述できるほどに簡潔なので、まだプログラミングについてよく知らない子供でも取り組みやすい言語であると言える。
# Pythonはたった一行のコードで文字を表示することができる。
// Javaでは文字の表示に最低5行コードを記述する必要がある
Pythonはその文法の簡潔さにより、 誰が書いても似たようなコードになりやすい性質があるので、学習が進むにつれて大人が作成したコードを理解できるようになる。
また、文法が簡潔なのでコードを記述している最中に混乱することが少なくなり、子供が途中で諦めてしまう傾向が少ない点も教育用として利用される理由でもある。
この節で示されている出典について、該当する記述が
具体的にその文献の何ページあるいはどの章節にあるのか、特定が求められています
Pythonはプロスポーツの分析によく使われている。
メジャーリーグベースボール（野球）、イングリッシュプレミアリーグ（サッカー）、ナショナルバスケットボールアソシエーション（バスケットボール）、ナショナルホッケーリーグ（アイスホッケー）、インディアンプレミアリーグ（クリケット）の実際のデータセットからのスポーツ分析は、ベストセラーの
マネーボールによって示される現実世界の成功によって部分的に推進され、人気が高まっている研究分野として浮上している（セイバーメトリクス
）。チームとプレーヤーのパフォーマンスデータの分析は、フィールド、コート、氷上だけでなく、ファンタジースポーツプレーヤーやオンラインスポーツギャンブルのリビングルームでもスポーツ業界に革命をもたらし続けている。実際のスポーツデータを使用した予測スポーツ分析の原則を使用して、プレーヤーとチームのパフォーマンスを予測する
Pythonを使ってデータをプログラミングする方法を示したり、マネーボールのストーリーの背景にある主張を検証したり、マネーボールの統計の進化を調べたりすることが可能である。公開されているデータセットから野球のパフォーマンス統計を計算するプロセスを案内される。実行期待値マトリックスを使用して導出された、より高度な測定値（Wins Above Replacement（）など）に進む。これらの統計を使用して、独自のチームおよびプレーヤーの分析を行うことができるようになる
Pythonを使用してプロスポーツの試合結果の予測を生成する方法の主な重点は、チームの支出に関するデータを使用して、ゲームの結果をモデル化する方法として
ロジスティック回帰の方法を教えることである。過去の結果をモデル化し、そのモデルを使用して、まだプレイされていない結果のゲームを予測するプロセスを実行する。ベッティングオッズのデータを使用してモデルの信頼性を評価する方法をオーナーに示す。分析は最初に英国プレミアリーグに適用され、次にNBAとNHLに適用される。データ分析とギャンブルの関係、その歴史、および個人的なリスクを含むスポーツベッティングに関連して発生する社会的問題の概要も説明する。マネーボールは、データ分析を使用してチームの勝率を高めることができることを示すことにより、プロスポーツのパフォーマンス統計の分析に
Pythonを使用してデータをプログラムし、マネーボールのストーリーの背後にある主張をテストし、マネーボール統計の進化を調べる方法を示し、公開されているデータセットから野球のパフォーマンス統計を計算するプロセスができる
。スポーツ分析には、トレーニングと競技の両方の取り組みを定量化するアスリートとチームからの大量のPythonデータセットが含まれるようになった。ウェアラブルテクノロジーデバイスは、アスリートが毎日着用しており、シーズン全体にわたるアスリートのストレスと回復を詳細に調べるためのかなりの機会を提供する。これらの大規模なデータセットのキャプチャは、怪我の予防に関する新しい仮説と戦略、およびトレーニングと回復を最適化するためのアスリートへの詳細なフィードバックにつながった。Pythonでのプログラミングを使用して、トレーニング、回復、パフォーマンスに関連する概念を調査することもできる（sklearn）ツールキットと実際の運動データを使用して教師あり機械学習手法を探索し、機械学習アルゴリズムと運動結果の予測方法の両方を理解する。
およびロジスティック回帰、アンサンブル
などの方法を適用して、NHLやMLBなどのプロスポーツリーグからのデータを調べる。また、慣性測定ユニット（IMU）などのウェアラブルデバイスも含まれる。分類と回帰の手法を使用して、運動活動やイベント全体であるスポーツ分析を可能にする方法を幅広く理解できるようになる。スポーツコンテストのカテゴリ別結果変数（つまり、勝ち、引き分け、負け）を処理する際の回帰モデル、線形確率モデル（LPM）を、その理論的基礎、計算アプリケーション、および経験的制限の観点からモジュールは、カテゴリ従属変数のLPMのより良い代替として、ロジスティック回帰をし、デモンストレーションする。順序付けられたロジットモデルと公開されている情報を使用してEPLサッカーゲームの結果を予測する方法を示す。ベッティングオッズに対してこれらの予測の正確さを評価し、それらが非常に正確であることを示す。北米の3つのチームスポーツリーグ（NHL、NBA、MLB）のコンテキストでモデルを複製することにより、前週に取り上げたEPL予測モデルの有効性を評価する。具体的には、順序付けられたロジットモデルと公開されている情報を使用して、NHL、NBA、MLBのレギュラーシーズンゲームの結果を予測する
オブジェクト指向を対応させるために作られた言語である
。正確には、AmoebaへABC言語を実装する研究をしていたヴァンロッサムが、クリスマス休暇の間にC言語を元にして生まれたインタープリターから始まる
にヴァンロッサムがPython 0.90の
ソースコードを公開した。この時点ですでにオブジェクト指向言語の特徴である
1月、Python 1.0を公開した。主な特徴として
ラムダ計算を実装、map関数・reduce関数などを組み込んだ。
バージョン1.4からはにある機能とよく似た
キーワード引数を導入した。また簡易ながら
を導入した。一躍メジャーな言語となった。多くの機能はを参考にして導入している。
バージョン2.4には、子プロセスの起動やコマンドを実行できるsubprocessモジュールが実装された。
2.6以降のバージョンには、2.xから3.xへの移植を助ける「2to3 ツール」と「lib2to3 モジュール」を含んでいる
。2.7が2.xの最後のバージョンで、2.7のサポートは
。ただし、サポート終了後に 2.7.18 を2020年4月にリリースし、これが最後の 2.7.x になる
。これ以上のセキュリティパッチやその他の改善はリリースされない
、長い試験期間を経てPython 3.0が公開された。
開発初期には、西暦3000年に公開予定の理想のPythonとして、Python 3000と呼んでいた。Py3Kと略すこともある。
しかし2.xとの後方互換性が損なわれている。当初は2.xに比べて3.xが利用できるライブラリ等が著しく少ないという問題点があったが、など徐々に3.xに対応したフレームワークやライブラリなどが増えていったこともあり、時点においては新規のプロジェクトについて3.xで開発することが多くなっている
。JetBrains とPythonソフトウェア財団による共同調査では、Python の 2 と 3 がどっちがメインであるかというアンケートで、Python 3 がメインであると答えた人が、2016年1月は40%だったが、2017年10月は75%になった
11月にリリースされたや2016年4月にリリースされたでは、デフォルトでインストールされるPythonのバージョンが2.xから3.xに変更されている。
では8をもってPython 2が廃止となった
print命令をprint関数へ変更
単体テストフレームワーク「unittest」への機能追加
import文のリファレンス実装となる、Pythonで実装したimportlibモジュール
ネストしたwith文に対する新たな文法
単体テストモジュールのアップデートや拡張モジュール向け stable ABI
pyc レポジトリディレクトリのサポート
E-mail パッケージや SSL モジュールの改善
3.1リリースから2年間、言語仕様を凍結し変更を行わない「モラトリアム期間」を解除した
新しい文法として、ジェネレータ関数内で別のジェネレータ関数を利用する「yield from」を追加。
「u」や「U」といったプレフィックスを用いたUnicodeリテラルシンタックスを復活
UCS-4文字列にも対応し、文字列表現の柔軟性を強化
仮想化Python実行環境を導入するためのvirtualenvパッケージの機能を「venv」機能としてコアに取り込んだ。
オブジェクト指向ファイルシステムパスを提供する「pathlib」モジュールの提供
列挙型を扱うためのenumモジュールの標準化
統計関数を提供するstatisticsモジュールの導入
Pythonが割り当てたメモリブロックを追跡するためのデバッグツールのtracemallocモジュールの導入
非同期I/Oを扱うためのフレームワークとなるasyncioモジュールの導入
Pythonの組み込み関数に関する分析情報を得るため機構の実装
zipアプリケーションサポートの改良
byte/bytearrayオブジェクトのための「%」フォーマット対応の追加
高速ディレクトリトラバーサル機能os.scandir()の導入
割込がかかったシステムコールのオートリトライ機能追加
近似値であるかどうかをテストする機能の導入.pyoファイルの削除
拡張モジュールをロードするための新しい仕組みの導入
文字列中に式を埋め込める「Formatted string literals」の導入
変数に対して型に関する情報（型ヒント）を与える「Syntax for variable annotations」の導入
)でコルーチンを利用可能にする「Asynchronous generators」の導入
標準ライブラリにsecretsモジュールを追加
DTraceおよびSystemTapプローブのサポートを追加
使用時点では宣言されていない型を使った型アノテーション表記が可能となる
レガシーな C ロケールの抑圧、強制 UTF-8 実行モード
s) 単位の分解能を持つ新しい時間関数の追加
f文字列で f'{expr=}' の形式のサポート
dict での reversed のサポート
デバッガなどでより正確な行番号を表示
ユニオン型を X | Y と書けるようになったを付与した明示的な型エイリアス
で、グイド・ヴァンロッサムによってPythonの初期バージョンが作成される。
1995年 - ヴァンロッサムは米国ヴァージニア州レストンにあるに移動。ここでPythonの開発に携わり、いくつかのバージョンを公開する。
2000年3月 - ヴァンロッサムとPythonのコア開発チームは BeOpen.com に移り、BeOpen PythonLabs チームを結成する。同年10月、PythonLabsチームはDigital Creations (現在の
2001年 - Pythonに関する知的財産を保有するための非営利組織
Pythonソフトウェア財団（PSF）が立ち上がる。このときZope CorporationはPSFの賛助会員となる。
インデントによる構文）（モジュール機能、オブジェクト指向）（辞書、スライス演算子など）
（リストの内包表現）（基本的な構文）（仮想マシン機構、動的性）
オープンソースで配布されている。このライセンスの内容はに類似したものであるが、変更したバージョンを配布する際に変更をオープンソースにしなくてもよい、という点がGPLとは異なっている。
・標準ライブラリミニツアー. 2026年1月4日閲覧。
一発で素人だとばれるPythonコード、「a=1」のどこがまずいのか
”.   日経クロステック. 2025年5月10日閲覧。
typing --- 型ヒントのサポート — Python 3.10.0b2 ドキュメント
”. 2025年6月11日閲覧。
”. 2006年4月28日時点の
よりアーカイブ。2007年1月17日閲覧。
よりアーカイブ。2007年1月17日閲覧。
”. 2011年5月16日閲覧。
プレス発表 基本情報技術者試験における出題を見直し：IPA 独立行政法人 情報処理推進機構
初等中等教育局情報教育・外国語教育課
高等学校情報科「情報Ⅰ」教員研修用教材（本編）
第3章 コンピューターとプログラミング
Pythonとは？主な特徴や子どもに習得させるメリットを知っておこう. 2023年6月2日閲覧。
Pythonの歴史について起源から分かりやすく解説
テクフリ. 2025年11月21日閲覧。
「Pythonのsubprocessモジュールの使い方｜子プロセスの起動方法からわかりやすく解説」.NET Column (2021年3月25日) 2023年5月17日閲覧。
"Python 2.7.18はPython 2.7の最後のリリースであり、したがってPython 2の最後のリリースである ". 2020年4月27日閲覧。
【入門者必見】Python2と3、どっちを学習すべき？違いを徹底解説！
”.   株式会社 侍. 2016年9月21日閲覧。
. 2013年10月24日時点の
よりアーカイブ。2016年9月21日閲覧。
RHEL8/9系ディストリビューションでPython 3を使う
登場! Python 3.0 - 2系との違いを比較
マイナビ(2009年1月1日). 2014年3月13日閲覧。
「Python 3.1」正式版リリース
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
末岡洋子 (2012年10月1日). “
仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース. 2012年10月2日時点の
よりアーカイブ。2014年3月13日閲覧。
後藤大地 (2014年3月18日). “
マイナビニュース. 2014年3月20日閲覧。
末岡洋子 (2014年3月18日). “「Python 3.4」リリース、標準ライブラリを強化. 2014年3月19日時点の
よりアーカイブ。2014年3月20日閲覧。
後藤大地 (2015年9月13日). “
マイナビニュース. 2015年11月5日閲覧。
「Python 3.5」正式版がリリース – 新機能が多数追加
”.   ソフトアンテナブログ (2015年9月14日). 2022年10月2日時点の
よりアーカイブ。2015年11月5日閲覧。
末岡洋子 (2016年12月26日). “. 2016年12月26日時点の
よりアーカイブ。2017年5月26日閲覧。
”. 2016年12月5日閲覧。
”. 2007年1月15日閲覧。
よりアーカイブ。2014年3月13日閲覧。
ポータル FOSS・Pythonを対話的に実行するためのシェル。
・Python言語ベースのハードウェア記述言語
Julia (プログラミング言語)・PythonのライブラリやC言語、Fortran言語のコードを呼び出せるプログラミング言語。Pythonよりも動作が高速である。
空飛ぶモンティ・パイソン・これがPythonという言語名の由来である
石本敦夫：「Python文法詳解」、オライリージャパン、大和田勇人、金盛克俊：「Pythonで始めるプログラミング入門」、コロナ社、滝澤成人：「Python [基礎編] ワークブック」、カットシステム、松浦健一郎、司ゆき：「わかるPython [決定版] 」、SBクリエイティブ、柴田望洋：「新・明解Python入門」、SBクリエイティブ 、（2019年5月30日）。＃（これは初版、第2版あり）
亀田健司：「1週間でPythonの基礎が学べる本」、インプレス、山田祥寛：「独習Python」、翔泳社、Guido van Rossum：「Pythonチュートリアル 第4版」、オライリージャパン、Bill Lubanovic：「入門 Python 3　第2版」、オライリージャパン、松浦健一郎、司ゆき：「Python [完全] 入門」、SBクリエイティブ、小高知宏：「Python言語で学ぶ基礎からのプログラミング」、近代科学社、岩崎圭、北川慎治、寺田学：「スラスラわかるPython 第2版」、富樫敦：「コンピュータプログラミング：Pythonでアルゴリズムを実装しながら問題解決を行う」、コロナ社、松尾正信
:「Pythonプログラミング ABCー正確に・美しく・簡潔に! ー」、近代科学社、上野照正、山崎貴史：「プログラムのつくりかた Python 基礎編 Lv.1」、実教出版、山崎貴史、廣田龍之介、森田直人：「Python ハンディプログラミング事典」、実教出版、Patrick Viafore：「ロバストPython ―クリーンで保守しやすいコードを書く」、オライリー・ジャパン、Micha Gorelick、Ian Ozsvald：「ハイパフォーマンスPython 第2版」、オライリー・ジャパン、Wes McKinney：「Pythonによるデータ分析入門 第3版」、オライリー・ジャパン、柴田望洋：「新・明解Python入門 第2版」、SBクリエイティブ 、David M. Beazley、鈴木駿（訳）：「Python Distilled - プログラミング言語Pythonのエッセンス」、オライリー・ジャパン、Christian Hill:「Python科学技術計算：物理・化学を中心に」第２版，東京化学同人、(2023年11月20日)。※ 利用例
金城俊哉：「PC・IT図解 Pythonプログラミングの技術としくみ」、秀和システム、綾皓二郎：「計算論的思考を育むPythonプログラミング入門」、近代科学社、(2024年6月24日)。※ 高速化技法
altnight，石上晋，delhi09，鈴木たかのり，斎藤努：「現場のPython ──Webシステム開発から、機械学習・データ分析まで」、技術評論社、Claudio Jolowicz：「ハイパーモダンPython」、オライリー・ジャパン、
Glyn Moody 小山祐司監訳『ソースコードの反逆』
ウィキメディア・コモンズには、に関連するカテゴリがあります。
関連の解説書・教科書があります。
・Python公式サイト（英語）
Python チュートリアル・マニュアル日本語訳の配布（英語）
あとりえこばと：「Python プログラミング講座」(2018年8月13日).
プログラミング演習 Python 2019
本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はでご確認ください。
喜多 一、森村吉貴、岡本雅子：「教科書：プログラミング演習 Python」 (2023年版、京都大学学術情報リポジトリ、CC-BY-NC-ND ライセンス)
Pythonプログラミング入門・東京大学
ゼロからのPython入門講座・科学技術計算のために Python を始めよう。
Python による科学技術計算の概要
神嶌敏弘（2020年4月21日）。
情報処理学会公開教材 IPSJ　MOOC  # （これらは講義スタイルのビデオ教材です）
基本的なプログラミング （Python入門）
アルゴリズム （Pythonを使ったアルゴリズム入門）
モデル化とシミュレーション（Pythonを使ったシミュレーション入門）「とほほのPython入門」((C) 2014-2022 杜甫々, 最終更新2022年10月9日)「Pythonプログラミング入門」©2020–2023, 東京大学 数理・情報教育研究センター (CC BY-NC-ND 4.0)
小林克志：「コンピュータシステム概論」、東京大学オープンコースウェア
コンピュータ・プログラミング言語
出典を必要とする記事/2025年10月
出典のページ番号が要望されている記事
独自研究の除去が必要な記述のある記事/2024年1月-6月
無効な出典が含まれている記事/2018年
ISBNマジックリンクを使用しているページ
出典: フリー百科事典『ウィキペディア（Wikipedia）』
この項目では、プログラミング言語について説明しています。その他の用法については「
参考文献や出典が全く示されていないか、不十分です。
して記事の信頼性向上にご協力ください。
命令型プログラミング、マルチパラダイムプログラミング
テンプレートを表示（パイソン）は、主として
Pythonは1990年代初頭に
グイド・ヴァン・ロッサムが開発し、1991年2月に0.9.0として公開された
最初にリリースされたPythonの設計哲学は、ホワイトスペース（オフサイドルール
の可読性を重視している。その言語構成と
オブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。
動的型付き言語であり、ガベージコレクションがある。
関数型プログラミングを含む複数の
プログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現されている
Pythonのインタプリタは多くのOSに対応している。プログラマーのグローバルコミュニティは、自由かつオープンソース
を開発および保守している 。非営利団体である
Pythonソフトウェア財団は、PythonとCPythonの開発のためのリソースを管理・指導している。
上で実行することを前提に設計している。以下の特徴をもっている:
・オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
Pythonには、読みやすく、それでいて効率もよいコードをなるべく簡単に書けるようにするという思想が浸透しており、Pythonコミュニティでも単純で簡潔なコードをよしとする傾向が強い
Pythonの本体は、ユーザがいつも必要とする最小限の機能のみを提供する。基本機能以外の専門機能や拡張プログラムはインターネット上にライブラリとして提供されており、別途ダウンロードして保存し、必要なツールはこのツールキットからその都度呼び出して使用する
Pythonでは「あることをなすのに唯一の良いやり方があるはず」という哲学がある（参考:「やり方は一つじゃない」
Pythonではプログラムの文書化（ソフトウェアドキュメンテーション
）が重視されており、言語の基本機能の一部となっている。
（関数名：factorial）を題材にC言語と比較した例を示す。
わかりやすく整形されたC言語のコード:
この例では、Pythonと整形されたC言語とでは、プログラムコードの間に違いがほとんど見られない。しかし、C言語のインデントは構文規則上のルールではなく、単なる読みやすさを向上させる
コーディングスタイルでしかない。そのためC言語では全く同じプログラムを以下のように書くこともできる。
Pythonではインデントは構文規則として決められているため、こうした書き方は不可能である。Pythonではこのように強制することによって、ソースコードのスタイルがその書き手にかかわらずほぼ統一したものになり、その結果読みやすくなるという考え方が取り入れられている。これについては賛否両論があり、批判的立場の人々からは、これはプログラマがスタイルを選ぶ自由を制限するものだ、という意見も出されている。
インデントによる整形は、単に「見かけ」だけではなく品質そのものにも関係する
このコードはC言語の構文規則上は問題無いが、インデントによる見かけのifの範囲と、言語仕様によるifの実際の範囲とが異なっているため、プログラマの意図が曖昧になる（前者は"y = 0;"がif文に包含され、後者は"{}"がないため"y = 0;"がif文に包含されない）。この曖昧さは、検知しにくいバグを生む原因になる。例としてはが挙げられる。
ソースコードを読む際、多くの人はインデントのような空白を元に整列されたコードを読み、コンパイラのように構文解析しながらソースを読むものではない。その結果、一見しただけでは原因を見つけられないバグを作成する危険がある。
Pythonではインデントをルールとすることにより、人間が目視するソースコードの理解とコンパイラの構文解析の間の差を少なくすることで、より正確に意図した通りにコーディングすることができると主張されている
システムをもつ。同時に任意の型ヒントを持っており外部ツールによる静的型チェックを可能にしている。
値自身が型を持っており、変数はすべて値への
型・文字列型・バイト列型・関数型がある。整数型は（メモリの許す限り）無制限の桁数で整数計算が可能である。浮動小数点数型を整数型にキャストすると、小数点以下が切り捨てられる。
型がある。リスト型および辞書型は
イミュータブルである。集合型には変更可能なものと変更不能なものの2種類がある。タプル型とリスト型は、多くのプログラミング言語では
と呼ばれるものに類似している。しかし、Pythonではタプル型は辞書のキーとして使うことができるが、リスト型は内容が変わるため辞書のキーとして使うことはできないという理由から、これら2つの型を区別している。
多くのオブジェクト指向プログラミング言語と同様、Pythonではユーザが新しく自分の型を定義することも可能である。この場合、組み込み型を含む既存の型を継承して新たな型（クラス）を定義する事も、ゼロから全く新しい型を作り出す事も出来る。
Pythonは基本的にメソッドや関数の引数に型を指定する必要がない。そのため、ダック・タイピングという、内部で必要とする演算子やメソッドに対応していれば、関数やオブジェクトの設計時点で意図していなかったオブジェクトを引き渡すことも可能である。
Pythonは型ヒントの構文を用意している
。これはプログラマ向けの注釈および外部ツールによる静的型チェックに用いられる。
例として、文字列型の値を受け取って文字列型の値を返す関数は次のようにアノテーションできる。
は特定のキーとバリュー型をもった辞書オブジェクトを表現する型である
型の定義にはクラス継承構文が用いられるが、この型を持つオブジェクトはランタイムにおいて純粋な
インスタンスになる。つまり型ヒント専用の型であり、ランタイム型とは区別される
ガベージコレクションを内蔵しており、参照されなくなったオブジェクトは自動的にメモリから破棄される。
では、ガベージコレクションの方式として
方式を併用している。マーク・アンド・スイープ方式のみに頼っている言語では、オブジェクトがいつ回収されるか保証されないので、ファイルのクローズなどを
デストラクタに任せることができない。CPythonは参照カウント方式を併用することで、循環参照が発生しない限り、オブジェクトはスコープアウトした時点で必ずデストラクトされることを保証している。なおJythonおよびIronPythonではマーク・アンド・スイープ方式を採用しているため、スコープアウトした時点で必ずデストラクトされることが前提のコードだとJythonやIronPythonでは正しく動かない。
イテレータを実装するためのジェネレータが言語仕様に組み込まれており、Pythonでは多くの場面で
イテレータを使うように設計されている。イテレータの使用はPython全体に普及していて、プログラミングスタイルの統一性をもたらしている。
Pythonでは扱えるデータの全てがオブジェクトである。単純な数値といった基本的なデータ型をはじめ、組み込みのコンテナ型、組み込み関数など、これらは全て統一的な継承関係をもつオブジェクトであり「型」をもっている。これらの組み込み型とユーザ定義型は区別されず、組み込み型を継承したクラスを定義できる。上の「データ型」の項で述べたように Pythonは静的な型チェックを持たないため、Javaのようなインターフェイスという言語上の仕組みは必要とされない。
) メカニズムでは、複数の基底クラスを持つことができ（多重継承）、導出されたクラスでは基底クラスの任意のメソッドをオーバライド（; 上書き）することが可能である。
また、オブジェクトには任意のデータを入れることができる。これらのメソッドやデータは、基本的に、すべてであり、（仮想）である。ただし、先頭にアンダースコアをもつメンバをとすることができる。これは単なるマナーであるが、アンダースコアを2つもつ場合は、クラスの外部からメンバの名前を隠された状態（; 難号化）とすることで
カプセル化を実現できる。また、利用者定義演算子が機能として用意されておりほとんどの組み込み演算子（算術演算子（）や添字表記）はクラスインスタンスで使うために再定義することが可能となっている。
Pythonには「電池付属 ()」という思想があり、プログラマがすぐに使えるようなライブラリや統合環境をあらかじめディストリビューションに含めるようにしている
サードパーティによるライブラリも豊富に存在する（参考:
Pythonは様々な組み込み型（built-in types）をサポートする。
Mapping型はハッシュ可能な値を任意のオブジェクトへ対応付ける型である
。対応する具象クラスはである。抽象基底クラスにがあり、抽象メソッドとしてが定義されている。
をもったcollectionとも言える。
最初のPythonでは1バイト単位での
型のみ扱い、ひらがな・(全角) カタカナ
マルチバイト文字はサポートしていなかったが、その後のPython 2.0からは
Python 3.0では、Python 2.xにおける文字列型がバイト列型に、またUnicode文字列型が文字列型に変更された。これにより、文字列をPython 3.0で扱う際には後述の変換処理を必ず行う必要がある。ファイル入出力などでエンコードを明示しなければ、標準エンコードを用いて暗黙に行われる場合も多い。これにより多言語の扱いを一貫したものにしている。
エンコードとUnicodeの内部表現を明確に区別している。Unicode文字はメモリ中に保持される抽象的なオブジェクトであり、画面表示やファイルへの入出力の際には変換ルーチン（コーデック
）を介して特定のエンコーディングのバイト列表現との間で相互に変換する。また、ソースコード中の文字コードを認識する機能があり、これによって異なる文字コードで書かれたプログラムの動きが異なるリスクを解消している。
Pythonでは変換ルーチンをモジュールとして追加することで、さまざまなエンコーディングに対応できるようになっている。日本語の文字コード（EUC-JP, Shift_JIS, MS932, ISO-2022-JP）に対応したコーデックも作成されている。Python 2.4からは、日中韓国語用のコーデックが標準でディストリビューションに含まれるようになったため、現在では日本語の処理に関する問題はほとんどなくなった。ただしGUIライブラリである
統合開発環境は、プラットフォームにもよるが、まだきちんと日本語に対応していないものもある。
ソースコードの文字コードには、ASCIIと互換性があり、Pythonが対応しているものを使用する。ソースコードのデフォルトエンコーディングは、Python 3.xではUTF-8（ソースコード以外のPython 3のデフォルトエンコーディングは複雑になっている
）、Python 2.xではASCIIであるが、デフォルトエンコーディング以外の文字コードを使う場合は、ソースファイルの1行目か2行目に一定の書式でコメントとして記述することになっており、しばしば以下のように
などのテキストエディタにも認識可能な書式で記述される（次の例は Emacs が認識できる書式）。
型言語であり（ほとんどの場合）プログラムの実行に際して実行環境（ランタイム
）を必要とする。以下はランタイム（実装）およびそれらが実装されているプラットフォームの一覧である。
Pythonの最初のバージョンは
上で開発された。のちに多くの計算機環境上で動作するようになった。
プラットフォーム（ランタイム・コンパイラ
Pythonには複数の実装（ランタイム又はコンパイラ）が存在する。
で書かれたバージョン。通常「Python」といえばこのCPythonを指す。
・PythonをC言語化へトランスコードするソフトウェア。静的型付けが可能で速度の向上をはかれる。
で実装されている。.NET Frameworkのライブラリを使うことができる。
上に構築されているため、既存の.NETアプリケーションへ
マクロ言語として搭載することも可能となっている。
・組み込み向けの実装。256 kB以上のフラッシュを推奨。
向けの実装・対話計算に向けたPythonへのシェル
Codon - Python言語ソースから機械語へのコンパイラ処理系
PyOMP - PythonをOpenMPで並列化するシステム
最新の Python 仕様には追従していないが開発が続けられているランタイム・コンパイラとしては以下が挙げられる。
上に移植したもの。PythonからJavaのライブラリを使うことができる。Python 2 系 (2025-06現在)
開発が停止・終了したランタイム・コンパイラ
スタックを使わずに独自のスタック（Pythonスタック）で実装。2021年で開発停止、2025年に終了宣言のチームによるPythonの実装。
。2012年に開発終了・組み込み向けの実装、などに対応。
・同じく組み込み向けの実装。ソースコードが 64
未満と非常に軽量なことが謳われている。
Pythonはパッケージ管理ソフト・ライブラリ・レポジトリなどからなるエコシステムを形成している。
ビルドシステム/wheel/インストーラ
パッケージ管理システムによっておこなわれる。バイナリパッケージの
インタフェースとしてビルドシステムとパッケージ管理システムの分離が可能になっている（PyPI）と呼ぶ公式のパッケージリポジトリが存在する。
パッケージ管理および実行環境管理を含めた統合開発環境としてはが存在する。
Pythonは多様なコミュニティライブラリによって支えられている。
プログラミング数学、科学、工学のための数値計算
機械学習・データサイエンス・AI
3Dグラフィックスやアニメーション
Pythonアプリのコンパイルによる高速化
クローリング、スクレイピング用のpythonフレームワーク
Webアプリケーションフレームワーク（ボトル） -（チェリーパイ） -（ジャンゴ） -（フラスク） -（ファストエーピーアイ） -（ピラミッド） -（プローン） -（トルネード） -（サイクロン） -
Pythonを使っている製品あるいはソフトウェアの一覧
Pythonは全世界で使われているが、欧米の企業でもよく使われている。大企業では
などのパッケージソフトウェア企業をはじめ、などの企業も利用している
では、S60シリーズでPythonアプリケーションが動く
高エネルギー加速器研究機構でPythonが使われている。
ベースのアプリケーション、3Dモデリング
データサイエンスおよび数値計算用途
などの高速な数値計算ライブラリの存在により、データサイエンスや科学技術コンピューティングにもよく用いられる。NumPy、SciPyの内部はC言語で書かれているので、動的スクリプト言語の欠点の一つである動作速度の遅さを補っているを使うと、Python のコードが
して利用可能であり、非常に高速な計算ができる。
上で高速に計算するライブラリも充実している。
とPythonソフトウェア財団による共同調査によると、2017年10月現在、Pythonの最も主要な用途は何かというアンケートの結果によると、27%がデータサイエンス（そのうち18%がデータ解析、9%が
Webアプリケーションフレームワークが充実しているため、Webアプリケーション開発用途にも多く使われている。JetBrains とPythonソフトウェア財団による共同調査によると、2017年10月現在、26%の人が最も主要な用途としてWeb開発を選んだ
：オープンソースで商用利用も可能なので、スマホアプリの販売が可能。androidアプリもiOSアプリも作成することが可能
：pythonの標準ライブラリで簡単にGUIアプリを作成可能。ネットでの情報が最も多い
：クロスプラットフォームで作成可能だが、商用利用は有償
：クロスプラットフォームで動作可能なGUIアプリを作成可能
システム管理およびグルー言語用途
スクリプト言語としての特性から、従来
シェルスクリプトが用いられることの多かったシステム管理用のスクリプトとして複数ので採用されている。また、異なる言語で書かれた多数のモジュールの機能を貼り合わせる
グルー言語（糊の言語）として利用する例も多い。実際、多くの商用
アプリケーションでPythonは組み込みのスクリプト言語として採用されている。
JetBrainsとPythonソフトウェア財団による共同調査によると、2017年10月現在、9%の人が最も主要な用途として、システム管理、自動化スクリプトを上げた
Pythonは本来は教育用を目的として設計されたわけではないが、その単純さから子供が最初に学ぶプログラミングにおける教育用の言語としての利用が増えている。
グイド・ヴァンロッサムはPython設計以前に教育用言語であるの開発にかかわり、教育用としての利用について期待感を示したこともあり、方針として非技術者向けといった利用を視野に入れているとされることもある
私の大好きなPython利用法は、騒ぎ立てずに、言語教育でプログラミングの原理を教えること。それを考えてくれ――次の世代の話だね。
スラド『 Guido van Rossum へのインタビュー』
基本情報技術者試験では2020年の春期試験からを廃止してPythonを追加した
高等学校情報科「情報Ⅰ」の教員向け研修教材の中で、プログラミング用言語としてPythonが使われている
ただし、Pythonの言語は言語自身に組み込まれている型とそれに付随するメソッドの多いことなどから、C言語に較べると遙かに多くの憶えなければならない事柄があることになる。持つ機能の一部だけに限定して教育に用いるならば、憶えなければならない事柄を減らすことができる。しかし言語の機能をすべて知っていないと他人の書いたプログラムを正しく理解することが出来ない可能性が生じる。Python言語の変数自身には型が無いことから、プログラム上で扱われているデータ・オブジェクトの型が何であるかは実行時に動的に決まるので、それを読み解いて把握しなければプログラムが行っている処理の内容を正しく把握することが難しいことがしばしばある（正しい注釈を付けてプログラムを書くことが重要である）。
また、Pythonの文法は僅か1行でも処理を記述できるほどに簡潔なので、まだプログラミングについてよく知らない子供でも取り組みやすい言語であると言える。
# Pythonはたった一行のコードで文字を表示することができる。
// Javaでは文字の表示に最低5行コードを記述する必要がある
Pythonはその文法の簡潔さにより、 誰が書いても似たようなコードになりやすい性質があるので、学習が進むにつれて大人が作成したコードを理解できるようになる。
また、文法が簡潔なのでコードを記述している最中に混乱することが少なくなり、子供が途中で諦めてしまう傾向が少ない点も教育用として利用される理由でもある。
この節で示されている出典について、該当する記述が
具体的にその文献の何ページあるいはどの章節にあるのか、特定が求められています
Pythonはプロスポーツの分析によく使われている。
メジャーリーグベースボール（野球）、イングリッシュプレミアリーグ（サッカー）、ナショナルバスケットボールアソシエーション（バスケットボール）、ナショナルホッケーリーグ（アイスホッケー）、インディアンプレミアリーグ（クリケット）の実際のデータセットからのスポーツ分析は、ベストセラーの
マネーボールによって示される現実世界の成功によって部分的に推進され、人気が高まっている研究分野として浮上している（セイバーメトリクス
）。チームとプレーヤーのパフォーマンスデータの分析は、フィールド、コート、氷上だけでなく、ファンタジースポーツプレーヤーやオンラインスポーツギャンブルのリビングルームでもスポーツ業界に革命をもたらし続けている。実際のスポーツデータを使用した予測スポーツ分析の原則を使用して、プレーヤーとチームのパフォーマンスを予測する
Pythonを使ってデータをプログラミングする方法を示したり、マネーボールのストーリーの背景にある主張を検証したり、マネーボールの統計の進化を調べたりすることが可能である。公開されているデータセットから野球のパフォーマンス統計を計算するプロセスを案内される。実行期待値マトリックスを使用して導出された、より高度な測定値（Wins Above Replacement（）など）に進む。これらの統計を使用して、独自のチームおよびプレーヤーの分析を行うことができるようになる
Pythonを使用してプロスポーツの試合結果の予測を生成する方法の主な重点は、チームの支出に関するデータを使用して、ゲームの結果をモデル化する方法として
ロジスティック回帰の方法を教えることである。過去の結果をモデル化し、そのモデルを使用して、まだプレイされていない結果のゲームを予測するプロセスを実行する。ベッティングオッズのデータを使用してモデルの信頼性を評価する方法をオーナーに示す。分析は最初に英国プレミアリーグに適用され、次にNBAとNHLに適用される。データ分析とギャンブルの関係、その歴史、および個人的なリスクを含むスポーツベッティングに関連して発生する社会的問題の概要も説明する。マネーボールは、データ分析を使用してチームの勝率を高めることができることを示すことにより、プロスポーツのパフォーマンス統計の分析に
Pythonを使用してデータをプログラムし、マネーボールのストーリーの背後にある主張をテストし、マネーボール統計の進化を調べる方法を示し、公開されているデータセットから野球のパフォーマンス統計を計算するプロセスができる
。スポーツ分析には、トレーニングと競技の両方の取り組みを定量化するアスリートとチームからの大量のPythonデータセットが含まれるようになった。ウェアラブルテクノロジーデバイスは、アスリートが毎日着用しており、シーズン全体にわたるアスリートのストレスと回復を詳細に調べるためのかなりの機会を提供する。これらの大規模なデータセットのキャプチャは、怪我の予防に関する新しい仮説と戦略、およびトレーニングと回復を最適化するためのアスリートへの詳細なフィードバックにつながった。Pythonでのプログラミングを使用して、トレーニング、回復、パフォーマンスに関連する概念を調査することもできる（sklearn）ツールキットと実際の運動データを使用して教師あり機械学習手法を探索し、機械学習アルゴリズムと運動結果の予測方法の両方を理解する。
およびロジスティック回帰、アンサンブル
などの方法を適用して、NHLやMLBなどのプロスポーツリーグからのデータを調べる。また、慣性測定ユニット（IMU）などのウェアラブルデバイスも含まれる。分類と回帰の手法を使用して、運動活動やイベント全体であるスポーツ分析を可能にする方法を幅広く理解できるようになる。スポーツコンテストのカテゴリ別結果変数（つまり、勝ち、引き分け、負け）を処理する際の回帰モデル、線形確率モデル（LPM）を、その理論的基礎、計算アプリケーション、および経験的制限の観点からモジュールは、カテゴリ従属変数のLPMのより良い代替として、ロジスティック回帰をし、デモンストレーションする。順序付けられたロジットモデルと公開されている情報を使用してEPLサッカーゲームの結果を予測する方法を示す。ベッティングオッズに対してこれらの予測の正確さを評価し、それらが非常に正確であることを示す。北米の3つのチームスポーツリーグ（NHL、NBA、MLB）のコンテキストでモデルを複製することにより、前週に取り上げたEPL予測モデルの有効性を評価する。具体的には、順序付けられたロジットモデルと公開されている情報を使用して、NHL、NBA、MLBのレギュラーシーズンゲームの結果を予測する
オブジェクト指向を対応させるために作られた言語である
。正確には、AmoebaへABC言語を実装する研究をしていたヴァンロッサムが、クリスマス休暇の間にC言語を元にして生まれたインタープリターから始まる
にヴァンロッサムがPython 0.90の
ソースコードを公開した。この時点ですでにオブジェクト指向言語の特徴である
1月、Python 1.0を公開した。主な特徴として
ラムダ計算を実装、map関数・reduce関数などを組み込んだ。
バージョン1.4からはにある機能とよく似た
キーワード引数を導入した。また簡易ながら
を導入した。一躍メジャーな言語となった。多くの機能はを参考にして導入している。
バージョン2.4には、子プロセスの起動やコマンドを実行できるsubprocessモジュールが実装された。
2.6以降のバージョンには、2.xから3.xへの移植を助ける「2to3 ツール」と「lib2to3 モジュール」を含んでいる
。2.7が2.xの最後のバージョンで、2.7のサポートは
。ただし、サポート終了後に 2.7.18 を2020年4月にリリースし、これが最後の 2.7.x になる
。これ以上のセキュリティパッチやその他の改善はリリースされない
、長い試験期間を経てPython 3.0が公開された。
開発初期には、西暦3000年に公開予定の理想のPythonとして、Python 3000と呼んでいた。Py3Kと略すこともある。
しかし2.xとの後方互換性が損なわれている。当初は2.xに比べて3.xが利用できるライブラリ等が著しく少ないという問題点があったが、など徐々に3.xに対応したフレームワークやライブラリなどが増えていったこともあり、時点においては新規のプロジェクトについて3.xで開発することが多くなっている
。JetBrains とPythonソフトウェア財団による共同調査では、Python の 2 と 3 がどっちがメインであるかというアンケートで、Python 3 がメインであると答えた人が、2016年1月は40%だったが、2017年10月は75%になった
11月にリリースされたや2016年4月にリリースされたでは、デフォルトでインストールされるPythonのバージョンが2.xから3.xに変更されている。
では8をもってPython 2が廃止となった
print命令をprint関数へ変更
単体テストフレームワーク「unittest」への機能追加
import文のリファレンス実装となる、Pythonで実装したimportlibモジュール
ネストしたwith文に対する新たな文法
単体テストモジュールのアップデートや拡張モジュール向け stable ABI
pyc レポジトリディレクトリのサポート
E-mail パッケージや SSL モジュールの改善
3.1リリースから2年間、言語仕様を凍結し変更を行わない「モラトリアム期間」を解除した
新しい文法として、ジェネレータ関数内で別のジェネレータ関数を利用する「yield from」を追加。
「u」や「U」といったプレフィックスを用いたUnicodeリテラルシンタックスを復活
UCS-4文字列にも対応し、文字列表現の柔軟性を強化
仮想化Python実行環境を導入するためのvirtualenvパッケージの機能を「venv」機能としてコアに取り込んだ。
オブジェクト指向ファイルシステムパスを提供する「pathlib」モジュールの提供
列挙型を扱うためのenumモジュールの標準化
統計関数を提供するstatisticsモジュールの導入
Pythonが割り当てたメモリブロックを追跡するためのデバッグツールのtracemallocモジュールの導入
非同期I/Oを扱うためのフレームワークとなるasyncioモジュールの導入
Pythonの組み込み関数に関する分析情報を得るため機構の実装
zipアプリケーションサポートの改良
byte/bytearrayオブジェクトのための「%」フォーマット対応の追加
高速ディレクトリトラバーサル機能os.scandir()の導入
割込がかかったシステムコールのオートリトライ機能追加
近似値であるかどうかをテストする機能の導入.pyoファイルの削除
拡張モジュールをロードするための新しい仕組みの導入
文字列中に式を埋め込める「Formatted string literals」の導入
変数に対して型に関する情報（型ヒント）を与える「Syntax for variable annotations」の導入
)でコルーチンを利用可能にする「Asynchronous generators」の導入
標準ライブラリにsecretsモジュールを追加
DTraceおよびSystemTapプローブのサポートを追加
使用時点では宣言されていない型を使った型アノテーション表記が可能となる
レガシーな C ロケールの抑圧、強制 UTF-8 実行モード
s) 単位の分解能を持つ新しい時間関数の追加
f文字列で f'{expr=}' の形式のサポート
dict での reversed のサポート
デバッガなどでより正確な行番号を表示
ユニオン型を X | Y と書けるようになったを付与した明示的な型エイリアス
で、グイド・ヴァンロッサムによってPythonの初期バージョンが作成される。
1995年 - ヴァンロッサムは米国ヴァージニア州レストンにあるに移動。ここでPythonの開発に携わり、いくつかのバージョンを公開する。
2000年3月 - ヴァンロッサムとPythonのコア開発チームは BeOpen.com に移り、BeOpen PythonLabs チームを結成する。同年10月、PythonLabsチームはDigital Creations (現在の
2001年 - Pythonに関する知的財産を保有するための非営利組織
Pythonソフトウェア財団（PSF）が立ち上がる。このときZope CorporationはPSFの賛助会員となる。
インデントによる構文）（モジュール機能、オブジェクト指向）（辞書、スライス演算子など）
（リストの内包表現）（基本的な構文）（仮想マシン機構、動的性）
オープンソースで配布されている。このライセンスの内容はに類似したものであるが、変更したバージョンを配布する際に変更をオープンソースにしなくてもよい、という点がGPLとは異なっている。
・標準ライブラリミニツアー. 2026年1月4日閲覧。
一発で素人だとばれるPythonコード、「a=1」のどこがまずいのか
”.   日経クロステック. 2025年5月10日閲覧。
typing --- 型ヒントのサポート — Python 3.10.0b2 ドキュメント
”. 2025年6月11日閲覧。
”. 2006年4月28日時点の
よりアーカイブ。2007年1月17日閲覧。
よりアーカイブ。2007年1月17日閲覧。
”. 2011年5月16日閲覧。
プレス発表 基本情報技術者試験における出題を見直し：IPA 独立行政法人 情報処理推進機構
初等中等教育局情報教育・外国語教育課
高等学校情報科「情報Ⅰ」教員研修用教材（本編）
第3章 コンピューターとプログラミング
Pythonとは？主な特徴や子どもに習得させるメリットを知っておこう. 2023年6月2日閲覧。
Pythonの歴史について起源から分かりやすく解説
テクフリ. 2025年11月21日閲覧。
「Pythonのsubprocessモジュールの使い方｜子プロセスの起動方法からわかりやすく解説」.NET Column (2021年3月25日) 2023年5月17日閲覧。
"Python 2.7.18はPython 2.7の最後のリリースであり、したがってPython 2の最後のリリースである ". 2020年4月27日閲覧。
【入門者必見】Python2と3、どっちを学習すべき？違いを徹底解説！
”.   株式会社 侍. 2016年9月21日閲覧。
. 2013年10月24日時点の
よりアーカイブ。2016年9月21日閲覧。
RHEL8/9系ディストリビューションでPython 3を使う
登場! Python 3.0 - 2系との違いを比較
マイナビ(2009年1月1日). 2014年3月13日閲覧。
「Python 3.1」正式版リリース
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
よりアーカイブ。2014年3月13日閲覧。
末岡洋子 (2012年10月1日). “
仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース. 2012年10月2日時点の
よりアーカイブ。2014年3月13日閲覧。
後藤大地 (2014年3月18日). “
マイナビニュース. 2014年3月20日閲覧。
末岡洋子 (2014年3月18日). “「Python 3.4」リリース、標準ライブラリを強化. 2014年3月19日時点の
よりアーカイブ。2014年3月20日閲覧。
後藤大地 (2015年9月13日). “
マイナビニュース. 2015年11月5日閲覧。
「Python 3.5」正式版がリリース – 新機能が多数追加
”.   ソフトアンテナブログ (2015年9月14日). 2022年10月2日時点の
よりアーカイブ。2015年11月5日閲覧。
末岡洋子 (2016年12月26日). “. 2016年12月26日時点の
よりアーカイブ。2017年5月26日閲覧。
”. 2016年12月5日閲覧。
”. 2007年1月15日閲覧。
よりアーカイブ。2014年3月13日閲覧。
ポータル FOSS・Pythonを対話的に実行するためのシェル。
・Python言語ベースのハードウェア記述言語
Julia (プログラミング言語)・PythonのライブラリやC言語、Fortran言語のコードを呼び出せるプログラミング言語。Pythonよりも動作が高速である。
空飛ぶモンティ・パイソン・これがPythonという言語名の由来である
石本敦夫：「Python文法詳解」、オライリージャパン、大和田勇人、金盛克俊：「Pythonで始めるプログラミング入門」、コロナ社、滝澤成人：「Python [基礎編] ワークブック」、カットシステム、松浦健一郎、司ゆき：「わかるPython [決定版] 」、SBクリエイティブ、柴田望洋：「新・明解Python入門」、SBクリエイティブ 、（2019年5月30日）。＃（これは初版、第2版あり）
亀田健司：「1週間でPythonの基礎が学べる本」、インプレス、山田祥寛：「独習Python」、翔泳社、Guido van Rossum：「Pythonチュートリアル 第4版」、オライリージャパン、Bill Lubanovic：「入門 Python 3　第2版」、オライリージャパン、松浦健一郎、司ゆき：「Python [完全] 入門」、SBクリエイティブ、小高知宏：「Python言語で学ぶ基礎からのプログラミング」、近代科学社、岩崎圭、北川慎治、寺田学：「スラスラわかるPython 第2版」、富樫敦：「コンピュータプログラミング：Pythonでアルゴリズムを実装しながら問題解決を行う」、コロナ社、松尾正信
:「Pythonプログラミング ABCー正確に・美しく・簡潔に! ー」、近代科学社、上野照正、山崎貴史：「プログラムのつくりかた Python 基礎編 Lv.1」、実教出版、山崎貴史、廣田龍之介、森田直人：「Python ハンディプログラミング事典」、実教出版、Patrick Viafore：「ロバストPython ―クリーンで保守しやすいコードを書く」、オライリー・ジャパン、Micha Gorelick、Ian Ozsvald：「ハイパフォーマンスPython 第2版」、オライリー・ジャパン、Wes McKinney：「Pythonによるデータ分析入門 第3版」、オライリー・ジャパン、柴田望洋：「新・明解Python入門 第2版」、SBクリエイティブ 、David M. Beazley、鈴木駿（訳）：「Python Distilled - プログラミング言語Pythonのエッセンス」、オライリー・ジャパン、Christian Hill:「Python科学技術計算：物理・化学を中心に」第２版，東京化学同人、(2023年11月20日)。※ 利用例
金城俊哉：「PC・IT図解 Pythonプログラミングの技術としくみ」、秀和システム、綾皓二郎：「計算論的思考を育むPythonプログラミング入門」、近代科学社、(2024年6月24日)。※ 高速化技法
altnight，石上晋，delhi09，鈴木たかのり，斎藤努：「現場のPython ──Webシステム開発から、機械学習・データ分析まで」、技術評論社、Claudio Jolowicz：「ハイパーモダンPython」、オライリー・ジャパン、
Glyn Moody 小山祐司監訳『ソースコードの反逆』
ウィキメディア・コモンズには、に関連するカテゴリがあります。
関連の解説書・教科書があります。
・Python公式サイト（英語）
Python チュートリアル・マニュアル日本語訳の配布（英語）
あとりえこばと：「Python プログラミング講座」(2018年8月13日).
プログラミング演習 Python 2019
本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はでご確認ください。
喜多 一、森村吉貴、岡本雅子：「教科書：プログラミング演習 Python」 (2023年版、京都大学学術情報リポジトリ、CC-BY-NC-ND ライセンス)
Pythonプログラミング入門・東京大学
ゼロからのPython入門講座・科学技術計算のために Python を始めよう。
Python による科学技術計算の概要
神嶌敏弘（2020年4月21日）。
情報処理学会公開教材 IPSJ　MOOC  # （これらは講義スタイルのビデオ教材です）
基本的なプログラミング （Python入門）
アルゴリズム （Pythonを使ったアルゴリズム入門）
モデル化とシミュレーション（Pythonを使ったシミュレーション入門）「とほほのPython入門」((C) 2014-2022 杜甫々, 最終更新2022年10月9日)「Pythonプログラミング入門」©2020–2023, 東京大学 数理・情報教育研究センター (CC BY-NC-ND 4.0)
小林克志：「コンピュータシステム概論」、東京大学オープンコースウェア
コンピュータ・プログラミング言語
出典を必要とする記事/2025年10月
出典のページ番号が要望されている記事
独自研究の除去が必要な記述のある記事/2024年1月-6月
無効な出典が含まれている記事/2018年
ISBNマジックリンクを使用しているページ
