Python
Quentin Charatan, Aaron Kans: Programming in Two Semesters: Using Python and Java, Springer, (2022).
John Hunt: A Beginners Guide to Python 3 Programming, Springer, (2023).
John Hunt: Advanced Guide to Python 3 Programming, Springer, (2023).
大和田勇人、金盛克俊:「Pythonで始めるプログラミング入門」、コロナ社、ISBN 978-4-339-02498-2(2015年10月13日)。
滝澤成人:「Python [基礎編] ワークブック」、カットシステム、ISBN 978-4-87783-837-9(2018年5月10日)。
松浦健一郎、司ゆき:「わかるPython [決定版] 」、SBクリエイティブ、ISBN 978-4-7973-9544-0(2018年5月22日)。
柴田望洋:「新・明解Python入門」、SBクリエイティブ 、ISBN 978-4815601522(2019年5月30日)。
亀田健司:「1週間でPythonの基礎が学べる本」、インプレス、ISBN 978-4-295-00853-8(2020年3月11日)。
kivy:オープンソースで商用利用も可能なので、スマホアプリの販売が可能。androidアプリもiOSアプリも作成することが可能
tkinter:pythonの標準ライブラリで簡単にGUIアプリを作成可能。ネットでの情報が最も多い
PyQt:クロスプラットフォームで作成可能だが、商用利用は有償
xPython:クロスプラットフォームで動作可能なGUIアプリを作成可能
Pythonはインタプリタ上で実行することを前提に設計している。以下の特徴をもっている:
動的な型付け
ガベージコレクション
マルチパラダイム
モジュール・クラス・オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
インデントが意味を持つ「オフサイドルール」が特徴的である。
以下に、階乗 (関数名: factorial)を題材にC言語と比較した例を示す。
Pythonのコード:
わかりやすく整形されたC言語のコード:
この例では、Pythonと整形されたC言語とでは、プログラムコードの間に違いがほとんど見られない。しかし、C言語のインデントは構文規則上のルールではなく、単なる読みやすさを向上させるコーディングスタイルでしかない。そのためC言語では全く同じプログラムを以下のように書くこともできる。
わかりにくいC:
Pythonではインデントは構文規則として決められているため、こうした書き方は不可能である。Pythonではこのように強制することによって、ソースコードのスタイルがその書き手にかかわらずほぼ統一したものになり、その結果読みやすくなるという考え方が取り入れられている。これについては賛否両論があり、批判的立場の人々からは、これはプログラマがスタイルを選ぶ自由を制限するものだ、という意見も出されている。
NumPy, SciPyなどの高速な数値計算ライブラリの存在により、データサイエンスや科学技術コンピューティングにもよく用いられる。NumPy, SciPyの内部はC言語で書かれているので、動的スクリプト言語の欠点の一つである動作速度の遅さを補っている。Numba を使うと、Python のコードが LLVM に JITコンパイルして利用可能であり、非常に高速な計算ができる。TensorFlow などのライブラリにより GPU 上で高速に計算するライブラリも充実している。
JetBrains とPythonソフトウェア財団による共同調査によると、2017年10月現在、最も主要な用途は何かというアンケートで、用途の27%がデータサイエンス(そのうち18%がデータ解析、9%が機械学習)である。
2000年に公開。ガベージコレクションやUnicode、リストを導入した。一躍メジャーな言語となった。多くの機能はHaskellを参考にして導入している。
バージョン2.4には、子プロセスの起動やコマンドを実行できるsubprocessモジュールが実装された。
2.6以降のバージョンには、2.xから3.xへの移植を助ける「2to3 ツール」と「lib2to3 モジュール」を含んでいる。2.7が2.xの最後のバージョンで、2.7のサポートは2020年1月1日までである。ただし、サポート終了後に 2.7.18 を2020年4月にリリースし、これが最後の 2.7.x になる。これ以上のセキュリティパッチやその他の改善はリリースされない。