歴史 Pythonの設計者であるグイド・ヴァン・ロッサム氏が PyCon US 2024に登場。 Python は、1980 年代後半にオランダの Centrum Wiskunde & Informatica (CWI)のGuido van Rossum によって考案されました[ 11 ] 。[ 43 ]これは 、 例外処理と Amoeba オペレーティングシステムとのインターフェースが可能なSETLに影響を受けた ABC プログラミング言語の後継として設計されました[ 44 ] 。 [ 18 ] Python の実装は1989 年12 月に開始されました[ 43 ] 。 Van Rossum は 1991 年に Python 0.9.0として初めてリリースしました[ 43 ] 。 Van Rossum は、2018 年 7 月 12 日に Python の「生涯慈悲深い独裁者 」(BDFL)としての責任から「永久休暇」を発表するまで、リード開発者としてプロジェクトの全責任を負っていました。この称号は、プロジェクトの最高意思決定者としての彼の長期的貢献を反映して、Python コミュニティから彼に贈られました。[ 45 ] [ c ] 2019年1月、活発なPythonコア開発者たちは、プロジェクトを主導する5人のメンバーからなる運営評議会を選出した。[ 46 ] [ 47 ]
Python という名前は、イギリスのコメディシリーズ「モンティ・パイソンの空飛ぶサーカス」 に由来する。[ 48 ] (§ 命名を 参照)。
Python 2.0 は 2000 年 10 月 16 日にリリースされ、リスト内包表記 、サイクル検出 ガベージ コレクション、参照カウント 、Unicode サポートなど多くの新機能が搭載されました。[ 49 ] Python 2.7 のサポート終了 は当初 2015 年に設定されていましたが、既存のコードの大部分を Python 3に簡単にフォワードポートできないという懸念から 2020 年に延期されました。 [ 50 ] [ 51 ] セキュリティ パッチやアップデートは提供されなくなりました。[ 52 ] [ 53 ] Python 2.7 以前のバージョンは公式にはサポートされていませんが、別の非公式 Python 実装であるPyPy は 、Python 2、つまり「2.7.18+」(プラス 3.11)を引き続きサポートしており、プラス記号は(少なくとも一部の)「バックポートされた セキュリティ アップデート」を意味します。[ 54 ]
Python 3.0 は 2008 年 12 月 3 日にリリースされ、メジャー 改訂版であり、以前のバージョンとの完全な後方互換性 はなく、いくつかの新しい意味論と構文の変更がありました。2020年にリリースされた Python 2.7.18 は、Python 2の最後のリリースでした。 [ 55 ] Python 3.x シリーズのいくつかのリリースでは、言語に新しい構文が追加され、いくつかの (非常に軽微と考えられる) 後方互換性のない変更が行われました。
2026年5月現在 Python 3.14.6 は最新の安定版リリースです。それ以前の 3.x バージョンはすべて、Python 3.9.24 までセキュリティ アップデートされ、その後 3.9 シリーズの最終バージョンである 3.9.25 で再びアップデートされました。Python 3.10 は、2025 年 11 月以降、サポートされている最古のブランチです。[ 56 ] Python 3.15 のアルファ版がリリースされており、Android では Python 3.14 用の公式ダウンロード可能な実行ファイルが利用可能です。リリースには 2 年間の完全サポートとそれに続く 3 年間のセキュリティ サポートが提供されます。
構文と意味論 Pythonは読みやすい言語を目指して作られました。そのフォーマットは視覚的にすっきりとしており、他の言語では句読点を使うところを英語のキーワードで表現することがよくあります。他の多くの言語とは異なり、ブロックを区切るのに波括弧は使用せず、 文 の後にセミコロンを付けることはできますが、ほとんど使用されません。CやPascal よりも構文上の例外や特殊なケースが少ないです。[ 83 ]
へこみ Python は、ブロックを 区切るために、中括弧やキーワードではなく、空白の インデントを使用します。インデントの増加は特定のステートメントの後にあり、インデントの減少は現在のブロックの終わりを示します。[ 84 ] このように、プログラムの視覚的な構造は意味構造を正確に表しています。[ 85 ] この機能は、オフサイド ルール と呼ばれることもあります。他の言語でもこのようにインデントを使用するものがありますが、ほとんどの場合、インデントには意味がありません。推奨されるインデント サイズは 4 つのスペースです。[ 86 ]
ステートメントと制御フロー Pythonのステートメント には、以下のものが含まれます。
代入文は、単一の等号を使用します。 = if 条件付きでコードブロックを実行するステートメントと、(else のelif短縮形else if )このステートメントは、反復可能な for オブジェクトを反復処理し、各要素を変数に格納して、添付されたブロックで使用します。ループが終了しても、変数は削除されません。 このwhile 文は、ブール条件が真である限りコードブロックを実行します。 このtry ステートメントは、添付されたコードブロックで発生した例外をexcept句(またはexcept*例外グループのための Python 3.11 の新しい構文)で捕捉して処理することを可能にします。[ 87 ] また、このステートメントは、ブロックの終了方法に関係なく、ブロックtry内のクリーンアップコードが常に実行されることを保証します。finally raise指定された例外を発生させる、または捕捉された例外を再発生させるために使用されるステートメントオブジェクト指向プログラミングで使用するためにclass、コードブロックを実行し、そのローカル名前空間をクラス にアタッチするステートメント。 関数 またはメソッド defを定義するステートメントこのwith ステートメントは、コードブロックをコンテキストマネージャで囲み、リソース取得が初期化である (RAII)ような動作を可能にし、一般的なtry/finallyイディオムを置き換えます[ 88 ]。 コンテキストの例としては、コード実行前にロック を取得し、その後ロックを解放すること、またはファイルを開いてから閉じることなどが挙げられます。 break ループを抜けるステートメントcontinue現在のイテレーションの残りをスキップして次のイテレーションに進むステートメント変数を削除するステートメントdel(名前から値への参照を削除し、変数が再定義される前に参照された場合はエラーを生成する) [ d ] このステートメントはNOP pass (つまり、何もしない)として機能し、構文上、空のコードブロックを作成するために必要です。 assert デバッグ時に適用されるべき条件を確認するために使用されるステートメントジェネレータ yield関数から値(および演算子)を返すステートメント。コルーチンを実装するために使用されます。 return関数から値を返すために使用されるステートメントとステートメントは、現在のプログラムで使用できる関数や変数を持つモジュールをインポートするために使用されます。Python 3.15 では、新しいキーワードを使用して遅延インポートを行う新機能が追加されました。「import キーワードは、とステートメントの両方で機能します。」[ 89 ] fromlazyimportfrom ... import ` matchand`caseステートメントは、制御フローの尺度として式を 1 つ以上のケースと比較するswitch ステートメントの構造に類似しています。 代入文(=)は、名前を別の動的に割り当てられたオブジェクトへの 参照 としてバインドします。変数はその後いつでも任意のオブジェクトに再バインドできます。Pythonでは、変数名は固定データ型を 持たない汎用的な参照ホルダーですが、常に何らかの 型を持つオブジェクトを参照します。これは動的型付け と呼ばれ、各変数が特定の型の値しか格納できない静的型付け 言語とは対照的です。
Python は末尾呼び出し 最適化や第一級継続 をサポートしていません。Van Rossum 氏によれば、この言語は今後もサポートしないでしょう。[ 90 ] [ 91 ] ただし、Python のジェネレータを拡張することで、コルーチンのような機能のサポートが向上します。 [ 92 ] 2.5 より前は、ジェネレータは遅延 イテレータ であり、データはジェネレータから一方向に渡されていました。Python 2.5 以降では、ジェネレータ関数にデータを渡すことが可能になり、バージョン 3.3 以降では、データを複数のスタック レベルを通して渡すことができます。[ 93 ]
表現 Pythonの式には 以下のものが含まれます。
数学的な加算、減算、乗算のための演算子、、およびは他の言語と似ていますが、除算の動作は異なります。Python には、切り捨て除算 (または整数除算) と浮動小数点除算の 2 種類の除算があります。[ +94 ] Pythonでは、べき乗に 演算 子 を使用します。-*///** Pythonでは、+文字列連結に`{{}`演算子を使用します。この言語では、*文字列を指定した回数だけ複製するために`{{}`演算子を使用します。 @中置演算子は、NumPy などのライブラリで行列乗算 に使用されることを意図しています。[ 95 ] [ 96 ] 構文:=は「セイウチ演算子 「,」は、Python 3.8で導入されました。この演算子は、より大きな式の一部として変数に値を代入します。 [ 97 ] Python では、==2 つのオブジェクトを値で比較します。Python のis演算子は、オブジェクトの同一性を比較するために使用できます (つまり、参照による比較)。また、比較は連鎖できます (例: 。a <= b <= c Python ではand、ブール演算子として、 or、 を使用します。not Pythonにはリスト内包表記 と呼ばれる式と、ジェネレータ式 と呼ばれるより一般的な式があります。[ 64 ] 匿名関数は ラムダ式 を用いて実装されますが、各関数の本体にはラムダ式を1つしか含めることができません。条件式は. [ 98 ] のように記述されます。 (これは、他の多くの言語で一般的な演算子とはオペランドの順序が異なります。)x if c else y c ? x : y Python ではリスト とタプル を区別しています。リストは と記述され、可変であり、辞書のキーとして使用することはできません ( Python では辞書のキーは不変で なければならないため)。タプルは と記述され、不変であるため、タプルのすべての要素が不変であれば、辞書のキーとして使用できます。演算子 を使用すると、2 つのタプルを連結できます。これは直接内容を変更するのではなく、両方の要素を含む新しいタプルを生成します。たとえば、変数 が最初に に等しい場合、 を実行すると、まず が評価され、 が得られます。この結果が に代入されるため、タプルオブジェクトの不変の性質に従いながら、 の内容を実質的に「変更」できます。明確なコンテキストでは、タプルの括弧は省略可能です。[ 99 ] [ 1 , 2 , 3 ] ( 1 , 2 , 3 ) +t( 1 , 2 , 3 ) t = t + ( 4 , 5 ) t + ( 4 , 5 ) ( 1 , 2 , 3 , 4 , 5 ) ttPython にはシーケンス アンパック 機能があり、複数の式がそれぞれ代入可能な値 (変数や書き込み可能なプロパティなど) に評価され、タプル リテラルを形成するのと同様に関連付けられます。全体として、その結果は代入文の等号の左側に配置されます。この文は、等号の右側にある反復可能な オブジェクトが、左側の書き込み可能な式と同じ数の値を生成することを期待します。反復処理中に、この文は右側で生成された各値を左側の対応する式に代入します。[ 100 ] Python には、C 言語のフォーマット文字列%と類似した機能を持つ「文字列フォーマット」演算子があります。たとえば、は に評価されます。Python 2.6 以降および 3 以降では、この演算子はクラスのメソッドによって補完されました。たとえば、。Python 3.6 では「f 文字列」が追加されました。 。[ 101 ] printf "spam= %s eggs= %d " % ( "blah" , 2 ) "spam=blah eggs=2" format()str"spam= {0} eggs= {1} " . format ( "blah" , 2 ) spam = "blah" ; eggs = 2 ; f 'spam= { spam } eggs= { eggs } ' Python では、文字列は「加算」することで連結 できます(整数や浮動小数点数を加算する場合と同じ演算子を使用します)。たとえば、は を返します。文字列に数値が含まれている場合、それらは整数ではなく文字列として連結されます。たとえば、は を返します。"spam" + "eggs" "spameggs""2" + "2" "22" Pythonは、文字列リテラルを いくつかの方法でサポートしています。 単一引用符または二重引用符で区切られます。単一引用符と二重引用符は同等の機能を持ちます(Unix シェル 、Perl 、および Perl の影響を受けた言語とは異なります)。どちらのマークもバックスラッシュ ( \)をエスケープ文字 として使用します。文字列補間は Python 3.6 で「フォーマット済み文字列リテラル」として利用可能になりました。[ 101 ] トリプルクォート、つまり、3 つのシングルクォートまたはダブルクォートで始まり、3 つのシングルクォートまたはダブルクォートで終わる。これは複数行にまたがることができ、シェル、Perl、Ruby の ヒアドキュメント のように機能します。 文字列リテラルの先頭に を付けることで表される、生文字 r列のバリエーション。エスケープシーケンスは解釈されないため、正規表現 やWindows スタイルのパスなど、リテラルのバックスラッシュが頻繁に使用される場合に生文字列が役立ちます。(C# @の " -quoting"と比較してください。) Python では、リストに配列インデックス と配列スライス a[key]式があり、 、または と記述します。インデックスは0 から始まり 、負のインデックスは末尾からの相対値です。スライスは、開始インデックスから 終了 インデックスまで(終了インデックスは含まない)の要素を取得します。オプションの 3 番目のスライスパラメータ は 、ステップ またはストライド と呼ばれ、要素をスキップまたは反転できます。スライスインデックスは省略できます。たとえば、 はリスト全体のコピーを返します。スライスの各要素は、シャローコピー です。a [ start : stop ] a [ start : stop : step ] a [:] Pythonでは、 Common Lisp 、Scheme 、Ruby などの言語とは異なり、式と文の区別が厳密に適用されます。この区別により、例えば以下のような機能が重複することがあります。
リスト内包表記 とforループの比較条件 式と条件ifブロックの比較eval()とexec()組み込み関数 (Python 2 では、 はexec文です)。前者の関数は式用で、後者は文用です。文は式の一部にはなり得ません。この制約のため、リストやdict内包表記(およびラムダ式)などの式には文を含めることができません。特に、代入文は条件文の条件式の一部にはなり得ません。a = 1
タイピング Python 3の標準型階層Pythonはダックタイピングを 採用しており、型付きオブジェクトを持ちますが、変数名は型付けされていません。型制約は定義時にはチェックされず、オブジェクトに対する操作は使用時に失敗する可能性があり、その場合はオブジェクトが適切な型ではないことが示されます。動的型付け であるにもかかわらず、Pythonは厳密な型付けを採用して おり、定義が不十分な操作(例えば、数値と文字列の加算)を黙って解釈しようとするのではなく、禁止します。
Python では、プログラマーはクラス を使用して独自の型を定義できます。これは主にオブジェクト指向プログラミング で使用されます。クラスの新しいインスタンスは 、たとえば、またはのようにクラスを呼び出すことによって構築されます。クラスはメタクラス (それ自体のインスタンス) のインスタンスであるため、メタプログラミングとリフレクション が可能になります。SpamClass () EggsClass () type
バージョン3.0より前は、Pythonには2種類のクラスがあり、どちらも同じ構文を使用していました。旧スタイル と新スタイルです 。[ 102 ] 現在のPythonバージョンは、新スタイルのセマンティクスのみをサポートしています。
Python はオプションの型注釈 をサポートしています。[ 5 ] [ 103 ] これらの注釈は言語によって強制されるものではありませんが、mypy typingなどの外部ツールでエラーを検出するために使用されることがあります。Python には、型注釈用のいくつかの型名を含むモジュールが含まれています。 [ 104 ] [ 105 ] また、mypy は、最適化のために型注釈を活用する mypyc と呼ばれる Python コンパイラをサポートしています。[ 106 ]
算術演算 Python には、算術演算子 ( +、-、*、/)、床除算演算子//、剰余演算子 %の従来の記号が含まれています。 (剰余演算子では、余りは負になることもあります。例: 。) Python には、べき乗 の記号(例:および) や行列乗算演算子 も用意されています。[ 113 ] これらの演算子は、従来の数学と同様に機能します。同じ優先順位規則 で、中置 演算子および は単項 演算子にもなり、それぞれ正の数と負の数を表すことができます。4 % -3 == -2**5**3 == 1259**0.5 == 3.0@+-
整数の除算は浮動小数点数の結果を生成します。除算の動作は時間の経過とともに大きく変化しました: [ 114 ]
現在のバージョンの Python (つまり 3.0 以降) では、/演算子が常に浮動小数点除算を表すように変更されました。例: 。5 / 2 == 2.5 切り捨て除算//演算子が導入されました。つまり7//3 == 2、、、、およびと-7//3 == -3なります。Python 2.7 では、ステートメントを追加することで、Python 2.7 のモジュールが Python 3.x の除算ルールを使用できるようになります (上記を参照)。7.5//3 == 2.0-7.5//3 == -3.0from __future__ import division Python の用語では、演算子は真の除算 (または単に除算 )/を表し、演算子は切り捨て除算 を表します。バージョン 3.0 より前は、演算子は古典的な除算 を表します。[ 114 ] ///
負の無限大に向かって丸めることは 、ほとんどの言語とは異なる方法ではありますが、Python に一貫性をもたらします。たとえば、この丸めは、式が常に真であることを意味します。また、この丸めは、式の正の値と負の値の両方に対して有効であることを意味します。予想どおり、の結果は、正の整数である半開区間 [0, b )にあります。ただし、式の有効性を維持するには、が負の場合、結果が区間 ( b , 0]にある必要があります。[ 115 ] ( a + b ) // b == a // b + 1 b * ( a // b ) + a % b == a aa%bbb
Python にroundは、浮動小数点数を最も近い整数に丸める関数が用意されています。同点 の場合、Python 3では偶数に丸める 方法を使用します。round(1.5)と はround(2.5)どちらも を生成します2。[ 116 ] 3 より前のバージョンの Python では、ゼロから丸める 方法を使用していました。round(0.5)は1.0、 はround(-0.5)です−1.0。[ 117 ]
Python では、複数の等価関係を含むブール式が数学の一般的な用法と一致するようにすることができます。たとえば、式 はが より小さく、が より小さいかa < b < cどうかをテストします。[ 118 ] C 派生言語では、この式は異なる方法で解釈されます。C では、式はまず を評価し、0 または 1 を返し、その結果を と比較します。[ 119 ] abbca < bc
Python は、すべての整数演算に任意精度演算 を使用します。モジュールDecimal内の型/クラスは、いくつかの丸めモードを備えた事前定義された任意精度の10 進浮動小数点数を提供します。 [ 120 ] モジュール内のクラスは、有理数に 任意精度を提供します。[ 121 ] decimalFractionfractions
Pythonは豊富な数学ライブラリとサードパーティライブラリNumPyを 備えているため、数値データの処理や操作などのタスクにおける科学スクリプトによく使用されます。[ 122 ] [ 123 ]
関数構文 Pythonでは、関数は キーワードを使って作成しますdef。関数は、呼び出し方と同様に、まず関数名を指定し、次に必要な引数を指定することで定義されます。以下は、入力値を出力する関数の例です。
def printer ( input1 , input2 = "already there" : print ( input1 ) print ( input2 ) プリンター ( "hello" ) # 出力例: # こんにちは # すでにそこにいます 実行時に実際の値が指定されていない場合に、関数パラメータにデフォルト値を割り当てるには、関数ヘッダー内で変数定義構文を使用できます。
コード例 「ハロー、ワールド!」プログラム :
非負整数の階乗 を計算するプログラム:
text = input ( '数値を入力してください。その階乗が表示されます: ' ) n = int ( text ) n < 0 の 場合 : ValueError を発生させる ( '負でない整数を入力してください' ) 階乗 = 1 for i in range ( 2 , n + 1 ): 階乗 *= i print ( 階乗 )
実装
リファレンス実装 CPython はPython の リファレンス実装 です。この実装は C 言語で記述されており、バージョン 3.11 以降はC11 標準[ 134 ] に準拠しています。古いバージョンでは、いくつかのC99 機能を選択的に使用したC89 標準を使用していますが、サードパーティの拡張機能は古い C バージョンに限定されません。たとえば、C11 や C++ を使用して実装できます。[ 135 ] [ 136 ] CPython はPython プログラムを中間バイトコードに コンパイルし [ 137 ] 、その後仮想マシン によって実行されます。[ 138 ] CPython には、C とネイティブ Python の組み合わせで記述された大規模な標準ライブラリが付属しています。
CPython は、Windows やmacOSを含むほとんどの最新のUnix ライクな システム (およびPython 3.9.1 以降、実験的なインストーラを使用してApple M1 Mac) など、多くのプラットフォームで利用可能です。Python 3.9以降、Python インストーラは意図的にWindows 7 および 8へのインストールに失敗します。[ 139 ] [ 140 ] Windows XP は Python 3.5 までサポートされていました。古い Python バージョンは非公式にVMS (主に[ 141 ] をサポート) をサポートしており、OpenVMS x86-64 は Python 3.10 をサポートしています。[ 142 ] [ 143 ] プラットフォームの移植性は、Python の初期の優先事項の 1 つです。[ 144 ] Python 1 および 2 の開発中は、OS/2およびSolaris もサポートされていました。[ 8 ] それ以降、多くのプラットフォームのサポートが終了しました。
現在のすべてのPythonバージョン(3.7以降)は、マルチスレッド機能を備えたオペレーティングシステムのみをサポートしており、以前に比べてサポートするオペレーティングシステムの数は大幅に減少しています(多くの古いバージョンがサポート対象外となっています)。
参照実装の制限事項 一般的なコードを書く場合、CPython を使用した Python のエネルギー消費量は、C よりも 75.88 倍も悪い。[ 145 ] 一般的なコードの場合、CPython を使用した Python のスループットは C よりも 71.9 倍劣ります。[ 145 ] 一般的なコードの場合、CPythonの平均メモリ使用量はCよりも2.4倍悪い。[ 145 ]
その他の実装 代替実装はすべて、少なくとも若干異なるセマンティクスを持っています。たとえば、他の現行のPythonバージョンとは異なり、代替実装では順序付けされていない辞書が含まれる場合があります。より広範なPythonエコシステムにおける別の例として、PyPyはC言語のPython APIを完全にサポートしていません。
Python で実行可能ファイルを作成する場合、多くの場合、Python インタープリタ全体を実行可能ファイルにバンドルしますが、これにより小さなプログラムでもバイナリサイズが巨大になります[ 146 ] 。しかし、Python を真にコンパイルできる実装も存在します。代替実装には次のものがあります。
他の言語へのトランスパイラ 高水準オブジェクト言語へのコンパイラ/トランスパイラは 複数存在し、ソース言語は無制限のPython、Pythonのサブセット、またはPythonに類似した言語です。
Brython [ 163 ] と Transcrypt [ 164 ] [ 165 ] は Python をJavaScript にコンパイルします。 Cythonは 、Pythonの上位互換言語をC言語にコンパイルします。生成されたコードは、C言語レベルのAPI呼び出しを介してPythonインタープリタに直接アクセスすることで、Pythonと連携して使用できます。PyJL は、Python のサブセットを「人間が読みやすく、保守しやすく、高性能な Julia ソース コード」にコンパイル/トランスパイルします。[ 75 ] 開発者のパフォーマンスに関する主張にもかかわらず、これは任意の Python コードに対しては不可能です。つまり、より高速な言語やマシン コードにコンパイルすることは、一般的には不可能であることが知られています。Python のセマンティクスが変更される可能性はありますが、多くの場合、Python コードにほとんどまたはまったく変更を加えることなく高速化が可能です。高速な Julia ソース コードは、Python から使用したり、マシン コードにコンパイルしたりできます。 Nuitka は Python を C にコンパイルします。[ 166 ] このコンパイラは、Python の主要なサポート対象プラットフォーム (および Windows 7 や Windows XP) と Android 向けに、Python 3.4 ~ 3.13 (および 2.6 と 2.7) で動作します。コンパイラの開発者は、Python 3.10 を完全にサポートし、Python 3.11 と 3.12 を部分的にサポートし、Python 3.13 を実験的にサポートしていると主張しています。Nuitka は、Apple Silicon ベースのバージョンを含む macOS をサポートしています。コンパイラは無料ですが、商用アドオン (ソース コードを非表示にするためのものなど) があります。Numba はPythonから使用できるJITコンパイラです。このコンパイラは、PythonおよびNumPyコードの一部を高速なマシンコードに変換します。このツールは、関連するPythonコードにデコレータを追加することで有効になります。PythranはPython 3のサブセットを C++(C++11 )にコンパイルします。[ 167 ] RPythonは C言語にコンパイルすることができ、Python用のPyPyインタープリタを構築するために使用されます。Python → 11l → C++ トランスパイラ[ 168 ] は、Python 3 のサブセットを C++ ( C++17 ) にコンパイルします。 専用のコンパイラも存在する。
古いプロジェクトや、Python 3.xおよび関連する構文での使用を想定していないコンパイラもいくつか存在していた。
言語発達 Python の開発は主にPython Enhancement Proposal (PEP) プロセスを通じて行われます。このプロセスは、主要な新機能を提案したり、問題に関するコミュニティの意見を収集したり、Python の設計上の決定事項を文書化したりするための主要なメカニズムです。[ 178 ] Python のコーディングスタイルは PEP 8で説明されています。 [ 86 ] 優れた PEP は、Python コミュニティと運営協議会によってレビューされ、コメントされます。[ 178 ]
言語の強化は、CPython リファレンス実装の開発に対応しています。メーリングリスト python-dev は、言語開発の主要なフォーラムです。特定の問題は、当初、財団がホストするRoundup バグトラッカーで議論されていました。 [ 179 ] 2022 年に、すべての問題と議論がGitHubに移行されました。 [ 180 ] 当初、開発はMercurialを実行する 自己ホストの ソースコードリポジトリで行われていましたが、Python は 2017 年 1 月に GitHub に移行しました。[ 181 ]
CPythonの公開リリースには3つの種類があり、バージョン番号のどの部分がインクリメントされるかによって区別されます。
後方互換性のないバージョンでは 、コードが壊れることが予想され、手動で移植 する必要があります。バージョン番号の最初の部分がインクリメントされます。このようなリリースはまれで、バージョン 3.0 は 2.0 から 8 年後にリリースされました。Guido van Rossum によると、バージョン 4.0 はおそらく存在しないでしょう。[ 182 ] メジャーリリースまたは「機能」リリースは 、以前のバージョンとほぼ互換性がありますが、新機能が導入されます。バージョン番号の後半部分が増加します。Python 3.9以降、これらのリリースは毎年行われる予定です。[ 183 ] [ 184 ] 各メジャーバージョンは、リリース後数年間、バグ修正によってサポートされます。[ 185 ] バグ修正リリース [ 186 ] は、新機能は追加されず、約3か月ごとにリリースされます。これらのリリースは、前回のリリース以降に上流で 十分な数のバグが修正された場合に行われます。セキュリティ脆弱性もこれらのリリースで修正されます。バージョン番号の3番目と最後の部分がインクリメントされます。[ 186 ] 多くのアルファ版、ベータ版、リリース候補版 も、最終リリース前にプレビューやテストのためにリリースされます。リリースには大まかなスケジュールがありますが、コードがまだ準備できていない場合は、リリースが遅れることがよくあります。Python の開発チームは、開発中に大規模な単体テスト スイートを実行することで、コードの状態を監視しています。 [ 187 ]
Pythonに関する主要な学術会議は PyConです。また、 PyLadies のような、Pythonのメンターシッププログラムも存在します。
注記 ↑ 3.5以降ですが、非公式ツールを除いてこれらのヒントは無視されます[ 5 ] ↑ ↑ 彼はその後引退から復帰し、自らを「BDFL名誉会長」と称している。 Python の↑ は、 C++ のような言語では del同じように動作しませんでは、このような単語はデストラクタを 呼び出してヒープ メモリを解放するために使用されます。delete↑ PEP [ 80 ] とも呼ばれる ↑ Pythonの新機能について説明する ↑ デザイン上の問題点を説明する場合、または一般的なガイドラインを提供する場合 ↑ Pythonでプロセスを説明する
参考文献 ↑ 「Python 全般に関する FAQ – Python 3 ドキュメント」。docs.python.org。2024年 7 月 7 日 取得 。 ↑ "Python 0.9.1 パート 01/21" . alt.sources archives. 2021年8月11日のオリジナルから アーカイブ済み 。 2021年 8月11日 に取得。 ↑ 「Python 3.14.6 と 3.13.14 が利用可能になりました!」 2026 年 6 月 10 日 2026 年 6 月 11 日 取得 . ↑ 「Pythonはなぜ動的言語であり、かつ強力な型付け言語なのか」 。Python Wiki 。 2021年3月14日のオリジナルから アーカイブ済み 。 2021年 1月27日 取得。 1 2 van Rossum, Guido; Levkivskyi, Ivan. "PEP 483 – 型ヒントの理論" . Python Enhancement Proposals (PEPs) . 2020年6月14日のオリジナルから アーカイブ済み 。 2018年 6月14日 に取得。 ↑ von Löwis, Martin; Cannon, Brett. "PEP 11 – CPython プラットフォームのサポート" . Python 拡張提案 (PEP) . 2024 年 4 月 22 日 取得 . ↑ "PEP 738 – サポート対象プラットフォームとして Android を追加 | peps.python.org" . Python 拡張提案 (PEP) . 2024 年 5 月 19 日 取得 . 1 2 「他のプラットフォーム用の Python をダウンロード」 . Python.org . 2020 年 11 月 27 日のオリジナルから アーカイブ済み. 2023 年 8 月 18 日 取得 . ↑ "test – Python 用回帰テストパッケージ" . Python 3.7.17 ドキュメント . 2022 年 5 月 17 日のオリジナルから アーカイブ済み. 2022 年 5 月 17 日 取得 . ↑ "platform – 基盤となるプラットフォームの識別データへのアクセス" . Python 3.10.4 ドキュメント . 2022 年 5 月 17 日のオリジナルから アーカイブ済み. 2022 年 5 月 17 日 取得 . 1 2 3 Venners, Bill (2003 年 1 月 13 日). "Python の誕生" . Artima Developer . Artima. 2016 年 9 月 1 日時点のオリジナルから アーカイブ済み。2007 年 3 月 22 日 取得 。 ↑ Cannon, Brett (2015年2月20日). "PEP 488 – PYOファイルの削除" . Python Enhancement Proposals (PEPs) . 2026年1月16日のオリジナルから アーカイブ済み。 2026年 2月28日 取得 。PYC ファイルは、インタプリタの起動時に最適化レベルが指定されていない場合に生成され、読み込まれるバイトコードファイルです[...] .pyc↑ Ahlstrom, James C. (2001 年 10 月 11 日). "PEP 273 – Zip アーカイブからのモジュールのインポート" . Python 拡張提案 (PEP) . 2026 年 2 月 25 日のオリジナルから アーカイブ済み。2026 年 2 月 28 日 取得 。 動的モジュールには 、、、 などの拡張機能があります 。 .dll.pyd.so↑ Harper Smith, Emma (2017年9月9日)。 「PEP 561 – 型情報の配布とパッケージ化」 。Python 拡張提案(PEP) 。 2025年12月7日のオリジナルから アーカイブ。 2026年 2月28日 取得 。 「スタブ」 - 型情報のみを含むファイルで、実行時コードは含まれていません(ファイル名はで終わります.pyi)。↑ Hammond, Mark; von Löwis, Martin (2011年3月15日). "PEP 397 – Windows 用 Python ランチャー" . Python 拡張提案 (PEP) . 2026年2月4日のオリジナルから アーカイブ済み。 2026年 2月28日 取得 。 [...] ランチャーの「コンソール」バージョンは .py ファイルに関連付けられ、「Windows」バージョンは .pyw ファイルに関連付けられています。 ↑ Holth, Daniel; Moore, Paul (2013年3月30日). "PEP 0441 – Python ZIPアプリケーションサポートの改善" . Python拡張提案(PEP) . 2015年11月16日のオリジナルから アーカイブ済み。 2015年 11月12日 取得 。 ↑ "Starlark Language" . bazel.build . 2020年6月15日のオリジナルから アーカイブ済み。 2019年 5月25日 取得 。 1 2 「そもそもPythonはなぜ作られたのか?」 . 一般的なPython FAQ . Python Software Foundation. 2012年10月24日のオリジナルから アーカイブ済み。 2007年 3月22日 取得 。 私はCWIのABCグループでインタプリタ型言語の実装に豊富な経験があり、このグループで作業することで言語設計について多くのことを学びました。これが、ステートメントのグループ化にインデントを使用することや、非常に高レベルなデータ型を含めることなど、多くのPython機能の起源です(ただし、詳細はPythonではすべて異なります)。 ↑ 「Ada 83 リファレンス マニュアル (raise ステートメント)」 。 archive.adaic.com。2019 年 10 月 22 日のオリジナルから アーカイブ済み 。2020 年 1 月 7 日 取得 。 1 2 Kuchling, Andrew M. (2006 年 12 月 22 日). "Guido van Rossum 氏へのインタビュー (1998 年 7 月)" . amk.ca . 2007 年 5 月 1 日の オリジナル からアーカイブ済み。2012 年 3 月 12 日 取得 。 私は夏を DEC のシステム研究センターで過ごし、そこで Modula-2+ を知りました。Modula-3 の最終報告書は、ほぼ同時期にそこで書かれていました。そこで学んだことは、後に Python の例外処理、モジュール、およびメソッドが明示的にパラメータ リストに 'self' を含むという事実に現れました。文字列スライスは Algol-68 と Icon から来ています。 1 2 3 "itertools – 効率的なループのためのイテレータを作成する関数" . Python 3.7.17 ドキュメント . 2020 年 6 月 14 日にオリジナルから アーカイブ. 2016 年 11 月 22 日 に取得 . このモジュールは、APL、Haskell、および SML の構造に触発された多数のイテレータ構築ブロックを実装しています。 ↑ van Rossum, Guido (1993). "An Introduction to Python for UNIX/C Programmers". Proceedings of the NLUUG Najaarsconferentie (Dutch UNIX Users Group) . CiteSeerX 10.1.1.38.2023 . C の設計は理想とは程遠いものの、Python への影響は大きい。 1 2 「クラス」 . Pythonチュートリアル . Pythonソフトウェア財団。 2012年10月23日のオリジナルから アーカイブ。 2012年 2月20日 取得 。 これはC++とModula-3のクラスメカニズムを組み合わせたものです。 ↑ Lundh, Fredrik. "Call By Object" . effbot.org . 2019年11月23日のオリジナルから アーカイブ済み 。 2017年 11月21日 取得。 "CLU"を"Python"に、"record"を"instance"に、"procedure"を"function or method"に置き換えると、Pythonのオブジェクトモデルのかなり正確な説明が得られます。 ↑ Simionato, Michele. "The Python 2.3 Method Resolution Order" . Python Software Foundation. 2020年8月20日時点のオリジナルから アーカイブ済み 。 2014年 7月29日 取得。C3 メソッド自体はPythonとは何の関係もありません。なぜなら、Dylanの開発者によって考案され、Lispプログラマー向けの論文で説明されているからです。 ↑ Kuchling, AM 「関数型プログラミングのハウツー」 。Python v2.7.2 ドキュメント 。Python Software Foundation。2012 年 10 月 24 日のオリジナルから アーカイブ。2012 年 2 月 9 日 取得 。 リスト内包表記とジェネレータ式は、関数型プログラミング言語 Haskell から借用した、このような操作の簡潔な表記法です。 ↑ Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (2001 年 5 月 18 日). "PEP 255 – シンプルなジェネレータ" . Python 拡張提案 . Python ソフトウェア財団. 2020 年 6 月 5 日のオリジナルから アーカイブ済み。2012 年 2 月 9 日 取得 。 ↑ 「その他の制御フローツール」 。Python 3 ドキュメント 。Python Software Foundation。2016 年 6 月 4 日のオリジナルから アーカイブ。2015 年 7 月 24 日 取得 。 多くの要望に応えて、Lisp のような関数型プログラミング言語によく見られるいくつかの機能が Python に追加されました。lambda キーワードを使用すると、小さな匿名関数を作成できます。 ↑ "re – 正規表現操作" . Python 3.10.6 ドキュメント . 2018 年 7 月 18 日にオリジナルから アーカイブ済み. 2022 年 9 月 6 日 に取得 . このモジュールは、Perl にあるものと同様の正規表現マッチング操作を提供します。 ↑ "CoffeeScript" . coffeescript.org . 2020年6月12日のオリジナルから アーカイブ済み。 2018年 7月3日 取得 。 ↑ Rauschmayer, Axel (2013年2月24日). "JavaScriptにおけるPerlとPythonの影響" . 2ality.com . 2018年12月26日のオリジナルから アーカイブ済み 。 2015年 5月15日 取得。 ↑ アクセル・ラウシュマイヤー。 「第3章:JavaScriptの性質と影響」 。 『Speaking JavaScript』 。O'Reilly。 2018年12月26日時点のオリジナルより アーカイブ。 2015年 5月15日 閲覧 。 ↑ ベザンソン、ジェフ; カルピンスキー、ステファン; シャー、ビラル B.; エデルマン、アラン (2012 年 2 月)。 「なぜ Julia を作成したのか」 。Julia ウェブサイト 。2020 年 5 月 2 日のオリジナルから アーカイブ済み。2014 年 6 月 5 日 取得 。 私たちは、Python と同じくらい汎用的なプログラミングに使えるものが欲しいのです [...] 1 2 Krill, Paul (2023年5月4日). 「Mojo言語はAI開発のためにPythonとMLIRを融合させる」 . InfoWorld . 2023年5月5日のオリジナルから アーカイブ済み 。 2023年 5月5日 に取得。 1 2 Bini , Ola (2007). Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform . Berkeley: APress. p. 3. ISBN 978-1-59059-881-8 。1 2 Lattner, Chris (2014 年 6 月 3 日). "Chris Lattner のホームページ" . Chris Lattner. 2018 年 12 月 25 日のオリジナルから アーカイブ済み。2014 年 6 月 3 日 取得 。Swift 言語は、言語のエキスパート、ドキュメントの達人、コンパイラ最適化の達人、そしてアイデアを洗練させ、実戦テストするのに役立つフィードバックを提供した非常に重要な社内ドッグフーディング グループのチームによるたゆまぬ努力の産物です。もちろん、Objective-C、Rust、Haskell、Ruby、Python、C#、CLU など、挙げきれないほど多くの言語からアイデアを取り入れ、この分野の他の多くの言語が苦労して得た経験からも大いに恩恵を受けています。 1 2 "V ドキュメント (概要)" . GitHub . 2024 年 12 月 24 日 取得 . ↑ デイブ・クールマン著 「A Python Book: Beginning Python, Advanced Python, and Python Exercises」 第1.1節。 2012年6月23日に オリジナル (PDF) からアーカイブ済み。 ↑ 「PEP 484 – 型ヒント」 。Python 拡張提案。2025 年 10 月 27 日 取得 。 ↑ "mypy – Python のオプションの静的型付け" . mypy-lang.org . 2025 年 8 月 17 日 取得 . ↑ 「Python 3.15 の新機能」 。2026 年 1 月 26 日 に取得。 ↑ Sultana, Simon G.; Reed, Philip A. (2017). "入門コンピュータサイエンスコースのカリキュラム:学界と産業界からの推奨事項の特定". The Journal of Technology Studies . 43 (2): 80– 92. doi : 10.21061/jots.v43i2.a.3 . ISSN 1071-6084 . JSTOR 90023144 . 1 2 3 van Rossum, Guido (2009年1月20日). "Pythonの簡単なタイムライン" . Pythonの歴史 . 2020年6月5日のオリジナルから アーカイブ済み. 2009年 1月20日 取得 . ↑ van Rossum, Guido (2000年8月29日). "SETL (以前は: 範囲リテラルについてあまり積極的ではなかった)" . Python-Dev (メーリングリスト). 2018年7月14日のオリジナルから アーカイブ済み。 2011年 3月13日 取得 。 ↑ フェアチャイルド、カーリー (2018 年 7 月 12 日)。 「グイド・ヴァン・ロッサム、Python の終身慈悲深い独裁者の役割から退任」 。Linux Journal。2018 年 7 月 13 日のオリジナルから アーカイブ 。2018 年 7 月 13 日 取得 。 ↑ Smith, Nathaniel J.; Durbin, Ee. "PEP 8100 – 2019 年 1 月運営評議会選挙" . Python 拡張提案 (PEP) . Python ソフトウェア財団。2020 年 6 月 4 日のオリジナルから アーカイブ済み。2019 年 5 月 4 日 取得 。 ↑ Python コア チームとコミュニティ。 「PEP 13 – Python 言語ガバナンス」 。Python 拡張提案 (PEP) 。2021 年 5 月 27 日のオリジナルから アーカイブ。2021 年 8 月 25 日 取得 。 ↑ ブリッグス、ジェイソン R.;リポヴァチャ、ミラン (2013)。 子供向けの Python: 遊び心あふれるプログラミング入門 。米国カリフォルニア州サンフランシスコ: スターチプレスはありません。 ISBN 978-1-59327-407-8 。LCCN 2012044047。OCLC 825076499。OL 26119645M。 ↑ Kuchling, AM; Zadka, Moshe (2000年10月16日). 「Python 2.0の新機能」 . Python Software Foundation. 2012年10月23日のオリジナルから アーカイブ済み。 2012年 2月11日 取得 。 ↑ Peterson, Benjamin. "PEP 373 – Python 2.7 リリース スケジュール" . python.org . 2020 年 5 月 19 日時点のオリジナルから アーカイブ済み. 2017 年 1 月 9 日 取得 . ↑ Coghlan, Alyssa. "PEP 466 – Python 2.7.x のネットワーク セキュリティ強化" . Python 拡張提案 (PEP) . 2020 年 6 月 4 日のオリジナルから アーカイブ済み。2017 年 1 月 9 日 取得 。 ↑ 「Python 2 のサポート終了」 . Python.org . 2020年1月12日のオリジナルから アーカイブ済み 。 2019年 9月22日 取得。 ↑ Peterson, Benjamin. "PEP 373 – Python 2.7 リリース スケジュール" . Python 拡張提案 (PEP) . 2020 年 1 月 13 日のオリジナルから アーカイブ済み。2019 年 9 月 22 日 取得 。 ↑ マティップ (2023 年 12 月 25 日)。 「PyPy v7.3.14 リリース」 。 ピーピー 。 2024 年 1 月 5 日のオリジナルから アーカイブ 。 2024 年 1 月 5 日 に取得 。 ↑ Peterson, Benjamin (2020年4月20日). "Python 2.7.18、Python 2の最終リリース" . Python Insider . 2020年4月26日のオリジナルから アーカイブ済み。 2020年 4月27日 取得 。 ↑ 「Python バージョンの状況」 . Python 開発者ガイド . 2025 年 11 月 12 日 取得。 ↑ The Cain Gang Ltd. 「Python メタクラス: 誰が? なぜ? いつ?」 (PDF) 。2009 年 5 月 30 日に オリジナル (PDF)からアーカイブ済み。2009 年 6 月 27 日 に取得 。 ↑ 「3.3. 特殊なメソッド名」 . Python 言語リファレンス . Python ソフトウェア財団. 2018 年 12 月 15 日時点のオリジナルから アーカイブ済み. 2009 年 6 月 27 日 取得 . ↑ "PyDBC: Python のメソッドの事前条件、事後条件、およびクラス不変条件" 。2019 年 11 月 23 日にオリジナルから アーカイブされました。2011 年 9 月 24 日 に取得されました 。 ↑ 「Python の契約」 。2020 年 6 月 15 日のオリジナルから アーカイブ済み。2011 年 9 月 24 日 取得 。 ↑ "PyDatalog" 。 2020年6月13日にオリジナルから アーカイブされました 。 2012年 7月22日 に取得。 ↑ 「Pythonで全てをまとめよう」 . Python.org . 2024年 9月30日 取得 。 ↑ 「参照カウント」 。Python インタープリタの拡張と埋め込み。Docs.python.org。2012年 10 月 18 日に オリジナル から アーカイブ 。2020 年 6 月 5 日 に取得 。Pythonは と を多用するため 、メモリ リークと解放されたメモリの再利用を回避する戦略が必要です。選択された方法は 参照カウント と呼ばれます。 malloc()free()}1 2 Hettinger, Raymond (2002 年 1 月 30 日). "PEP 289 – ジェネレータ式" . Python 拡張提案 . Python ソフトウェア財団. 2020 年 6 月 14 日のオリジナルから アーカイブ済み。2012 年 2 月 19 日 取得 。 ↑ "6.5 itertools – 効率的なループのためのイテレータを作成する関数" . Docs.python.org. 2020年6月14日のオリジナルから アーカイブ済み。 2016年 11月22日 取得 。 1 2 Peters, Tim (2004 年 8 月 19 日). "PEP 20 – Python の禅" . Python 拡張提案 . Python ソフトウェア財団. 2018 年 12 月 26 日時点のオリジナルから アーカイブ済み。2008 年 11 月 24 日 取得 。 ↑ Lutz, Mark (2022年1月)。 「Pythonの変更点 2014+」 。 Learning Python 。 2024年3月15日のオリジナルから アーカイブ済み。 2024年 2月25日 取得 。 ↑ 「『Pythonの禅』のルールに関する混乱」 " . ディスカッション。Python.org . Python ヘルプ。 2022 年 5 月 3 日。2024 年 2 月 25 日のオリジナルからアーカイブ済み。 2024 年 2 月 25 日 取得 。↑ Ambi, Chetan (2021年7月4日) 「最も物議を醸したPythonの「セイウチオペレーター」」 " . Python 簡略化 (pythonsimplified.com) . 2023 年 8 月 27 日のオリジナルからアーカイブ済み。2024年 2 月 5 日 取得 。↑ Grifski, Jeremy (2020年5月24日). 「Pythonの「セイウチ演算子」をめぐる論争」 . The Renegade Coder (therenegadecoder.com) . 2023年12月28日のオリジナルから アーカイブ済み。 2024年 2月25日 取得 。 ↑ ファン・ケメナーデ、ヒューゴ(2026年6月2日)。 「Python 3.15.0 ベータ 2 が登場しました!」 。 Python インサイダー 。 2026 年 6 月 18 日 に取得 。 ↑ Bader, Dan. "Python 文字列フォーマットのベストプラクティス" . Real Python (realpython.com) . 2024 年 2 月 18 日時点のオリジナルから アーカイブ済み。2024 年 2 月 25 日 取得 。 ↑ マルテッリ、アレックス;レイヴンズクロフト、アンナ;アッシャー、デイビッド(2005)。Python クックブック、第2 版 。 オライリー メディア 。p.230。ISBN 978-0-596-00797-3 2020年2月23日にオリジナルからアーカイブされました。2015年 11月14日 に取得 。↑ 「Python Culture」 . ebeab . 2014年1月21日 。2014年1月30日の オリジナルからアーカイブ済み。 1 2 「PyJL を使用して Python を Julia にトランスパイルする」 (PDF) 。2023 年 11 月 19 日にオリジナルから アーカイブ (PDF) 。2023 年 9 月 20 日 に取得 。 必要な型情報を指定してコードの 1 行を手動で変更した後、52.6 倍の高速化が得られ、変換された Julia コードは元の Python コードよりも 19.5 倍高速になりました。 1 2 「 Pythonがウェブ上で強力な力を持つ15の方法」 。 2019年5月11日に オリジナル からアーカイブ済み 。 2018年 7月3日 に取得。 ↑ 「なぜPythonと呼ばれるのか?」 . 一般的なPython FAQ . Docs.python.org. 2012年10月24日のオリジナルから アーカイブ済み。 2023年 1月3日 取得 。 ↑ " – データ プリティ プリンタ – Python 3.11.0 ドキュメント" . docs.python.org . 2021 年 1 月 22 日のオリジナルから アーカイブ済み。2022 年 11 月 5 日 取得 。 pprintstuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']↑ 「コードスタイル」 。Python のヒッチハイカーズガイド。docs.python -guide.org。2021 年 1 月 27 日のオリジナルから アーカイブ済み 。2021 年 1 月 20 日 取得 。 1 2 3 Warsaw, Berry; Hylton, Jeremy; Goodder, David (2000 年 6 月 13 日). "PEP 1 – PEP の目的とガイドライン" . peps.python.org . 2026 年 5 月 6 日 取得 . 1 2 「Python 拡張提案 (PEP)」 。 2026 年 5 月 6 日 に取得。 1 2 3 「Python の PEP とは何ですか?」 。 believemy.com 。 2026 年 5 月 7 日 に取得。 ↑ 「Pythonは初心者プログラマーにとって良い言語ですか?」 . 一般的なPython FAQ . Python Software Foundation. 2012年10月24日のオリジナルから アーカイブ済み 。 2007年 3月21日 取得。 ↑ 「Pythonのインデントに関する誤解」 。Secnetix.de。 2018年2月18日の オリジナルからアーカイブ済み 。 2011年 4月19日 取得。 ↑ Guttag, John V. (2016年8月12日). Introduction to Computation and Programming Using Python: With Application to Understanding Data . MIT Press. ISBN 978-0-262-52962-4 。1 2 van Rossum, Guido; Warsaw, Barry. "PEP 8 – Python コードのスタイル ガイド" . Python 拡張提案 (PEP) . 2019 年 4 月 17 日のオリジナルから アーカイブ済み。2019 年 3 月 26 日 取得 。 ↑ "8. エラーと例外 – Python 3.12.0a0 ドキュメント" . docs.python.org . 2022年5月9日のオリジナルから アーカイブ済み. 2022年 5月9日 取得 . ↑ 「ハイライト: Python 2.5」 . Python.org . 2019年8月4日のオリジナルから アーカイブ済み。 2018年 3月20日 取得 。 ↑ 「Python 3.15 の新機能」 . Python ドキュメント. 2026 年 4 月 30 日 取得 . ↑ van Rossum, Guido (2009年4月22日). "末尾再帰の排除" . Neopythonic.blogspot.be. 2018年5月19日のオリジナルから アーカイブ済み 。 2012年 12月3日 取得。 ↑ van Rossum, Guido (2006年2月9日). "言語設計は単にパズルを解くことではない" . Artimaフォーラム . Artima. 2020年1月17日のオリジナルから アーカイブ済み。 2007年 3月21日 取得 。 ↑ van Rossum, Guido; Eby, Phillip J. (2005 年 5 月 10 日). "PEP 342 – 拡張ジェネレータによるコルーチン" . Python 拡張提案 . Python ソフトウェア財団. 2020 年 5 月 29 日時点のオリジナルから アーカイブ済み。2012 年 2 月 19 日 取得 。 ↑ 「PEP 380」 。Python.org。 2020年6月4日のオリジナルから アーカイブ済み 。 2012年 12月3日 に取得。 ↑ "division" . python.org . 2006年7月20日のオリジナルから アーカイブ済み。 2014年 7月30日 取得 。 ↑ "PEP 0465 – 行列乗算専用の中置演算子" . python.org . 2020年6月4日のオリジナルから アーカイブ済み。 2016年 1月1日 に取得 。 ↑ 「Python 3.5.1 リリースと変更履歴」 . python.org . 2020年5月14日のオリジナルから アーカイブ済み 。 2016年 1月1日 に取得。 ↑ 「Python 3.8 の新機能」 。2020 年 6 月 8 日のオリジナルから アーカイブ済み。2019 年 10 月 14 日 取得 。 ↑ van Rossum, Guido; Hettinger, Raymond (2003年2月7日). "PEP 308 – 条件式" . Python Enhancement Proposals . Python Software Foundation. 2016年3月13日のオリジナルから アーカイブ済み。 2011年 7月13日 取得 。 ↑ "4. 組み込み型 – Python 3.6.3rc1 ドキュメント" . python.org . 2020年6月14日のオリジナルから アーカイブ済み 。 2017年 10月1日 に取得。 ↑ "5.3. タプルとシーケンス – Python 3.7.1rc2 ドキュメント" . python.org . 2020年6月10日のオリジナルから アーカイブ済み。 2018年 10月17日 取得 。 1 2 "PEP 498 – リテラル文字列補間" . python.org . 2020年6月15日のオリジナルから アーカイブ済み。 2017年 3月8日 取得 。 ↑ 「Python言語リファレンス、セクション3.3. 新スタイルクラスとクラシッククラス、リリース2.7.1」 。 2012年10月26日に オリジナル からアーカイブ済み。 2011年 1月12日 に取得 。 ↑ "PEP 484 – 型ヒント | peps.python.org" 。 peps.python.org 。 2023年11月27日のオリジナルから アーカイブ済み。 2023年 11月29日 取得 。 ↑ 「型付け — 型ヒントのサポート」 。Python ドキュメント 。Python Software Foundation。2020 年 2 月 21 日のオリジナルから アーカイブ済み。2023 年 12 月 22 日 取得 。 ↑ "mypy – Python のオプションの静的型付け" 。2020 年 6 月 6 日のオリジナルから アーカイブ済み。2017 年 1 月 28 日 取得 。 ↑ 「はじめに」 。mypyc.readthedocs.io 。 2023 年12月22日にオリジナルから アーカイブ済み 。 2023年 12月22日 に取得。 ↑ 「PythonがIEEE-754倍精度浮動小数点数を使用しないシステム」 。Stack Overflow 。 2026年 6月7日 取得 。 ↑ "15. 浮動小数点演算: 問題と制限 – Python 3.8.3 ドキュメント" . docs.python.org . 2020 年 6 月 6 日のオリジナルから アーカイブ済み. 2020 年 6 月 6 日 取得 . 現在 (2000 年 11 月) のほぼすべてのマシンは IEEE-754 浮動小数点演算を使用しており、ほぼすべてのプラットフォームは Python の float を IEEE-754 "倍精度" にマッピングします。 ↑ "ArrowNotImplementedError: データフレームに pandas.to_feather を適用した際に halffloat エラーが発生しました" . Stack Overflow . 2026年 6月8日 取得 . ↑ 「特殊な浮動小数点形式 — bitstring 4.3 ドキュメント」 . bitstring.readthedocs.io . 2026年 6月8日 取得 。 ↑ Zadka, Moshe; van Rossum, Guido (2001年3月11日). "PEP 237 – 長整数と整数の統一" . Python Enhancement Proposals . Python Software Foundation. 2020年5月28日のオリジナルから アーカイブ済み。 2011年 9月24日 取得 。 ↑ 「組み込み型」 。 2020年6月14日にオリジナルから アーカイブ済み 。 2019年 10月3日 に取得。 ↑ "PEP 465 – 行列乗算専用の中置演算子" . python.org . 2020年5月29日のオリジナルから アーカイブ済み。 2018年 7月3日 取得 。 1 2 Zadka, Moshe; van Rossum, Guido (2001 年 3 月 11 日). "PEP 238 – 除算演算子の変更" . Python 拡張提案 . Python ソフトウェア財団. 2020 年 5 月 28 日のオリジナルから アーカイブ済み。2013 年 10 月 23 日 取得 。 ↑ 「Pythonの整数除算の床関数がなぜあるのか」 。2010年8月24日。 2020年6月5日にオリジナルから アーカイブ済み 。 2010年 8月25日に 取得。 ↑ "round" 、 Python標準ライブラリ、リリース3.2、§2:組み込み関数 、 2012年10月25日にオリジナルから アーカイブ 、 2011年 8月14日に取得 ↑ "round" 、 Python標準ライブラリ、リリース2.7、§2:組み込み関数 、 2012年10月27日にオリジナルから アーカイブ 、 2011年 8月14日に取得 ↑ Beazley, David M. (2009). Python Essential Reference (第4 版). Addison-Wesley Professional. p . 66. ISBN 978-0-672-32978-4 。↑ カーニハン、ブライアン W.、リッチー、デニス M. (1988). C プログラミング言語 (第 2 版). p. 206 . 1 2 Batista, Facundo (2003 年 10 月 17 日). "PEP 327 – Decimal Data Type" . Python Enhancement Proposals . Python Software Foundation. 2020 年 6 月 4 日時点のオリジナルから アーカイブ済み。2008 年 11 月 24 日 取得 。 ↑ 「Python 2.6 の新機能」 。Python v2.6.9 ドキュメント 。2013 年 10 月 29 日。2019 年 12 月 23 日のオリジナルから アーカイブ済み。2015 年 9 月 26 日 取得 。 ↑ 「Pythonが研究に最適な10の理由(そしてそうでない理由もいくつか) – Hoyt Koepke」 。 ワシントン大学統計学部 。 2020年5月31日の オリジナルからアーカイブ済み。 2019年 2月3日 に取得 。 ↑ Shell, Scott (2014年6月17日) 「科学計算のためのPython入門」 (PDF) 。 2019年2月4日のオリジナルから アーカイブ (PDF) 。 2019年 2月3日 取得 。 ↑ Piotrowski, Przemyslaw (2006 年 7 月) 「Python Server Pages と Oracle 用の高速 Web 開発環境の構築」 Oracle Technology Network Oracle. 2019 年 4 月 2 日時点のオリジナルから アーカイブ済み。2012 年 3 月 12 日 取得 。 ↑ Eby, Phillip J. (2003年12月7日). "PEP 333 – Python Web Server Gateway Interface v1.0" . Python Enhancement Proposals . Python Software Foundation. 2020年6月14日のオリジナルから アーカイブ済み。 2012年 2月19日 取得 。 ↑ "PyPI" . PyPI . 2025年3月13日 。2025年2月22日のオリジナルから アーカイブ済み。 ↑ 「用語集:インタラクティブ」 . Python ドキュメント . v3.13.7 . 2025 年 8 月 31 日 取得 。 1 2 "IDLE — Python エディタおよびシェル" . Python ドキュメント . v3.13.7 . 2025 年 8 月 31 日 取得 . IDLE は、Python の統合開発および学習環境です。 ↑ 「IPython ドキュメント」 v9.5.0。2025 年 8 月 29 日。2025 年 8 月 31 日のオリジナルから アーカイブ済み。2025 年 8 月 31 日 取得 。 ↑ 「Visual Studio Code での Python」 。code.visualstudio.com。2025 年 12 月 1 日 取得 。 ↑ 「Project Jupyter」 。Jupyter.org 。 2023年10 月 12日のオリジナルから アーカイブ済み 。 2025年 4月2日 取得。 ↑ ハーパー、ダグ(2024年春)。 「思考の天蓋」 。WKU 物理学316。 ウェスタン ケンタッキー大学 。 2024年8月18日のオリジナルから アーカイブ。 2025年 8月31日 取得 。 ↑ 「 Enthought Canopy」 。Enthought 。 2017年7月15日の オリジナル からアーカイブ済み 。 2016年 8月20日 取得。 ↑ "PEP 7 – C コードのスタイル ガイド | peps.python.org" 。 peps.python.org 。 2022 年 4 月 24 日のオリジナルから アーカイブ済み。 2022 年 4 月 28 日 取得 。 ↑ "4. C および C++ 拡張機能の構築 – Python 3.9.2 ドキュメント" . docs.python.org . 2021 年 3 月 3 日のオリジナルから アーカイブ済み. 2021 年 3 月 1 日 取得 . ↑ van Rossum, Guido (2001年6月5日). "PEP 7 – Cコードのスタイルガイド" . Python拡張提案 . Pythonソフトウェア財団. 2020年6月1日のオリジナルから アーカイブ済み . 2008年 11月24日 取得. ↑ 「CPython バイトコード」 。Docs.python.org。 2020年6月5日のオリジナルから アーカイブ済み 。 2016年 2月16日 取得。 ↑ 「Python 2.5 の内部構造」 (PDF) 。 2012年8月6日のオリジナルから アーカイブ (PDF) 。 2011年 4月19日 に取得。 ↑ "Changelog – Python 3.9.0 documentation" . docs.python.org . 2021年2月7日のオリジナルから アーカイブ済み。 2021年 2月8日 取得 。 ↑ 「Pythonをダウンロード」 . Python.org . 2020年12月8日のオリジナルから アーカイブ済み 。 2020年 12月13日 取得。 ↑ 「VMS Python の互換性の問題 - VSI OpenVMS Wiki」 。wiki.vmssoftware.com。2026 年 6 月 8 日 取得 。 ↑ 「OpenVMS 用 Python および Python Wheels — VMS Software, Inc」 。docs.vmssoftware.com。2026 年 6 月 8 日 取得 。 ↑ "history [ vmspython ] " . www.vmspython.org . 2020年12月2日にオリジナルから アーカイブ済み 。 2020年 12月4日 に取得。 ↑ 「グイド・ヴァン・ロッサムへのインタビュー」 。Oreilly.com。 2014年7月16日のオリジナルから アーカイブ済み 。 2008年 11月24日 取得。 1 2 3 ペレイラ、ルイ。コウト、マルコ。リベイロ、フランシスコ。ルア、ルイ。クーニャ、ジャコム。フェルナンデス、ジョアンパウロ。ジョアン州サライバ(2017年10月23日)。 「プログラミング言語間のエネルギー効率: エネルギー、時間、メモリはどのように関係しているのでしょうか?」 。 ソフトウェア言語エンジニアリングに関する第 10 回 ACM SIGPLAN 国際会議の議事録 。 SLE 2017。米国ニューヨーク州ニューヨーク: コンピューティング機械協会。 pp. 256–267 。 土井 : 10.1145/3136014.3136031 。 ISBN 978-1-4503-5525-4 。↑ 「PyInstaller の機能と動作方法 」 ↑ 「PyPy互換性」 。Pypy.org。 2020年6月6日時点のオリジナルから アーカイブ済み 。 2012年 12月3日 取得。 ↑ チーム、PyPy (2019年12月28日)。 「ダウンロードとインストール」 。PyPy 。 2022年1月8日のオリジナルから アーカイブ済み 。 2022年 1月8日 に取得 。 ↑ 「CPythonとPypyの速度比較」 。Speed.pypy.org。 2021年5月10日のオリジナルから アーカイブ済み 。 2012年 12月3日 に取得。 ↑ 「コドン:Pythonとの違い」 。 2023年5月25日にオリジナルから アーカイブ済み 。 2023年 8月28日に 取得。 ↑ Lawson, Loraine (2023年3月14日). "MITが開発したコンパイラがPythonコードの高速化を実現" . The New Stack . 2023年4月6日のオリジナルから アーカイブ済み 。 2023年 8月28日 取得。 ↑ 「Python-for-EV3」 。LEGO Education 。 2020年6月7日のオリジナルから アーカイブ済み。 2019年 4月17日 取得 。 ↑ Yegularp, Serdar (2020年10月29日). 「Pystonが死から蘇り、Pythonを加速させる」 . InfoWorld . 2021年1月27日のオリジナルから アーカイブ済み 。 2021年 1月26日 閲覧。 ↑ "cinder: Instagramのパフォーマンス重視のCPythonフォーク" . GitHub . 2021年5月4日のオリジナルから アーカイブ済み. 2021年 5月4日 に取得 . ↑ Aroca, Rafael (2021年8月7日). "Snek Lang: ArduinoでPythonのような感覚" . Yet Another Technology Blog . 2024年1月5日のオリジナルから アーカイブ済み。 2024年 1月4日 取得 。 ↑ Aufranc (CNXSoft), Jean-Luc (2020年1月16日). "SnekboardがCircuitPythonまたはSnekプログラミング言語でLEGO Power Functionsを制御(クラウドファンディング) – CNX Software" . CNX Software – 組み込みシステムニュース . 2024年1月5日のオリジナルから アーカイブ済み。 2024年 1月4日 取得 。 ↑ Kennedy (@mkennedy), Michael. "Ready to find out if you're git famous?" . pythonbytes.fm . 2024年1月5日のオリジナルから アーカイブ済み。 2024年 1月4日 取得 。 ↑ Packard, Keith (2022年12月20日). 「Snekプログラミング言語:Pythonにインスパイアされた組み込みコンピューティング言語」 (PDF) . 2024年1月4日のオリジナルから アーカイブ (PDF) . 2024年 1月4日 に取得 . ↑ RustPython/RustPython 、RustPython Dev、2026年5月5日、 2026年 5月6日 取得 ↑ 「アプリケーションレベルの Stackless 機能 – PyPy 2.0.2 ドキュメント」 。Doc.pypy.org。2020 年 6 月 4 日のオリジナルから アーカイブ済み。2013 年 7 月 17 日 取得 。 ↑ 「Python の最適化計画」 。Google プロジェクト ホスティング 。2009 年 12 月 15 日。2016 年 4 月 11 日のオリジナルから アーカイブ。2011 年 9 月 24 日 取得 。 ↑ 「Nokia N900 での Python」 。Stochastic Geometry。2010 年 4 月 29 日。2019 年 6 月 20 日のオリジナルから アーカイブ済み。2015 年 7 月 9 日 取得 。 ↑ 「Brython」 . brython.info . 2018年8月3日のオリジナルから アーカイブ済み 。 2021年 1月21日 取得。 ↑ 「Transcrypt – ブラウザでPythonを実行」 。transcrypt.org 。 2018 年8月19日のオリジナルから アーカイブ済み 。 2020年 12月22日 取得。 ↑ 「 Transcrypt : PythonからJavaScriptへのコンパイラの構造」 。InfoQ 。 2020年12月5日のオリジナルから アーカイブ済み 。 2021年 1月20日 取得。 ↑ "Nuitka Home | Nuitka Home" . nuitka.net . 2020年5月30日のオリジナルから アーカイブ済み。 2017年 8月18日 取得 。 ↑ Guelton, Serge; Brunet, Pierrick; Amini, Mehdi; Merlini, Adrien; Corbillon, Xavier; Raynaud, Alan (2015年3月16日). "Pythran: 科学用Pythonプログラムの静的最適化を可能にする" . Computational Science & Discovery . 8 (1) 014001. IOP Publishing. Bibcode : 2015CS & D....8a4001G . doi : 10.1088/1749-4680/8/1/014001 . ISSN 1749-4699 . ↑ 「Python → 11l → C++ トランスパイラ」 。 2022年9月24日にオリジナルから アーカイブ済み 。 2022年 7月17日 に取得。 ↑ "google/grumpy" . 2020年4月10日。 2020年4月15日のオリジナルから アーカイブ済み 。 2020年 3月25日 取得- GitHub経由。 ↑ "プロジェクト" . opensource.google . 2020年4月24日のオリジナルから アーカイブ済み。 2020年 3月25日 取得 。 ↑ フランシスコ、トーマス・クラバーン著 「Googleの不機嫌なコードがPython Goを実現」 www.theregister.com 2021 年3月7日のオリジナルより アーカイブ済み 。 2021年 1月20日 閲覧 。 ↑ "IronPython.net /" . ironpython.net . 2021年4月17日にオリジナルから アーカイブされました。 ↑ "GitHub – IronLanguages/ironpython3: Dynamic Language Runtime 上に構築された .NET Framework 用の Python 3.x の実装" . GitHub . 2021 年 9 月 28 日のオリジナルから アーカイブ済み。 ↑ 「Jython FAQ」 。www.jython.org 。 2021年4月22日にオリジナルから アーカイブ済み 。 2021年 4 月22日 に取得。 ↑ Murri, Riccardo (2013). Performance of Python runtimes on a non-numeric scientific code . European Conference on Python in Science (EuroSciPy). arXiv : 1404.6388 . Bibcode : 2014arXiv1404.6388M . ↑ 「コンピュータ言語ベンチマークゲーム」 。 2020年6月14日のオリジナルから アーカイブ済み 。 2020年 4月30日 取得。 ↑ Python、Real。 「ママ、forループなし:NumPyを使った配列プログラミング – Real Python」 。realpython.com 。 2025年 10月15日 取得 。 1 2 Warsaw, Barry; Hylton, Jeremy; Goodger, David (2000年6月13日)。 「PEP 1 – PEPの目的とガイドライン」 。Python 拡張提案 。Pythonソフトウェア財団。 2020年6月6日のオリジナルから アーカイブ。 2011年 4月19日 取得 。 ↑ Cannon, Brett. "Guido、何人かの仲間、そしてメーリングリスト:Pythonはどのように開発されるか" . python.org . Python Software Foundation. 2009年6月1日の オリジナルからアーカイブ済み。 2009年 6月27日 取得 。 ↑ Edge, Jake (2022年2月23日). "PythonのバグをGitHubに移動 [ LWN.net ] " . 2022年10月2日のオリジナルから アーカイブ済み 。 2022年 10月2日 に取得。 ↑ "Python開発者ガイド – Python開発者ガイド" . devguide.python.org . 2020年11月9日のオリジナルから アーカイブ済み。 2019年 12月17日 取得 。 ↑ Hughes, Owen (2021年5月24日). 「プログラミング言語:Python 4.0がリリースされないかもしれない理由、開発者談」 . TechRepublic . 2022年7月14日のオリジナルより アーカイブ。 2022年 5月16日 閲覧 。 ↑ 「PEP 602 – Python の年間リリースサイクル」 。Python.org。2020年 6 月 14 日のオリジナルから アーカイブ済み 。2019 年 11 月 6 日 取得 。 ↑ Edge, Jake (2019年10月23日). "Pythonのリリースサイクルの変更 [ LWN.net ] " . lwn.net . 2019年11月6日のオリジナルから アーカイブ済み 。 2019年 11月6日 に取得。 ↑ Norwitz, Neal (2002年4月8日). " [ Python-Dev ] リリーススケジュール (以前は安定性と変更)" . 2018年12月15日のオリジナルから アーカイブ済み 。 2009年 6月27日 取得。 1 2 Aahz; Baxter, Anthony (2001 年 3 月 15 日). "PEP 6 – バグ修正リリース" . Python 拡張提案 . Python ソフトウェア財団。2020 年 6 月 5 日のオリジナルから アーカイブ済み。2009 年 6 月 27 日 取得 。 ↑ 「Python Buildbot」 . Python 開発者ガイド . Python ソフトウェア財団。2020 年 6 月 5 日時点のオリジナルから アーカイブ済み。2011 年 9 月 24 日 取得 。 1 2 「食欲をそそる」 . Python チュートリアル . Python ソフトウェア財団. 2012 年 10 月 26 日のオリジナルから アーカイブ済み。2012 年 2 月 20 日 取得 。 ↑ 「Pythonでは、ifブロックのreturnの後にelseを使うべきですか?」 。 Stack Overflow。Stack Exchange。2011年2月17日。 2019年6月20日のオリジナルから アーカイブ。 2011年 5月6日 取得 。 ↑フェヒリー 、 クリス(2002)。Python 。 ピーチピット・プレス。p. xv。ISBN 978-0-201-74884-0 2017年7月17日にオリジナルからアーカイブされました。2017年 5月9日 に取得 。↑ ルバノヴィッチ、ビル(2014)。 『Python入門』 。カリフォルニア州セバストポル: オライリー ・メディア。305ページ 。ISBN 978-1-4493-5936-2 2023年7月31日 に取得 。↑ エスターブルック、チャールズ。 「謝辞」 。cobra -language.com 。コブラ語。 2008年2月8日の オリジナルからアーカイブ。 2010年 4月7日 取得 。 ↑ "提案: イテレータとジェネレータ [ ES4 Wiki ] " . wiki.ecmascript.org. 2007 年 10 月 20 日の オリジナルからアーカイブ済み。2008 年 11 月 24 日 取得 。 ↑ Kincaid, Jason (2009年11月10日). 「GoogleのGo:PythonとC++を融合させた新しいプログラミング言語」 . TechCrunch . 2010年1月18日のオリジナルより アーカイブ。 2010年 1月29日 閲覧 。 ↑ 「Juliaを作成した理由」 。Julia ウェブサイト 。2012年2月。 2020年5月2日にオリジナルから アーカイブ済み 。 2014年 6月5日 に取得。 私たちは、Pythonと同じくらい汎用プログラミングに使えるものが欲しいのです[...] ↑ "Modular Docs – Why Mojo" . docs.modular.com . 2023年5月5日のオリジナルから アーカイブ済み . 2023年 5月5日 取得. Pythonファミリーの一員としてのMojo [..] Pythonを採用することで、構文の大部分が既に規定されているため、設計作業が大幅に簡素化されます。 [..] Mojoの適切な長期目標は、Pythonのスーパーセット(つまり、既存のプログラムと互換性がある)を提供し、ロングテールエコシステムを実現するためにCPythonをすぐに採用することだと判断しました。 Pythonプログラマーにとって、Mojoはすぐに馴染みやすいものになることを期待し、また、PythonがCやC++にフォールバックするようなことを可能にするシステムレベルのコードを開発するための新しいツールも提供することを期待しています。 ↑ スペンサー、マイケル (2023 年 5 月 4 日)。 「Mojo プログラミング言語とは?」 。 datasciencelearningcenter.substack.com。2023 年 5 月 5 日のオリジナルから アーカイブ済み 。2023 年 5 月 5 日 取得 。 ↑ "GDScript" . gdscript.com . 2025年 11月24日 取得 .
情報源 「人工知能のためのPython」 . Python Wiki. 2012年7月19日。2012年11月1日のオリジナルからアーカイブ済み。 2012年 12月3日 取得 。 ペイン、ジョセリン編(2005年8月)。「PythonによるAI」。AIエキスパートニュースレター 。Amzi!。2012年3月26日のオリジナルからアーカイブ。 2012年 2月11日 取得 。 「PyAIML 0.8.5: Pythonパッケージインデックス」。Pypi.python.org 。 2013年 7月17日 取得 。 ラッセル、スチュアート・J. &ノーヴィグ、ピーター (2009).人工知能:現代的アプローチ (第3 版). アッパー・サドル・リバー、ニュージャージー州:プレンティス・ホール. ISBN 978-0-13-604259-4 。
さらに読む ダウニー、アレン(2024年7月)。Think Python: How to Think Like a Computer Scientist (第3 版)。O'Reilly Media。ISBN 978-1-0981-5543-8 。 ルッツ、マーク(2013)。『Python入門』 (第5 版)。オライリー・メディア。ISBN 978-0-596-15806-4 。 サマーフィールド、マーク(2009)。Python 3 プログラミング (第 2 版)。アディソン・ウェスリー・プロフェッショナル。ISBN 978-0-321-68056-3 。 ルチアーノ、ラマーリョ(2022年5月)。流暢な Python 。オライリーメディア。ISBN 978-1-4920-5632-4 。
外部リンク 公式サイト Pythonのドキュメント Pythonチュートリアル CultRepo (2025年8月28日). Pythonの物語と、それがどのように世界を席巻したか | Python: The Documentary . 2026年 7月22日 取得 – YouTube経由。