Python
「Python」とは・「Python」の意味
「Python」とは、スマホアプリの制作や人工知能の開発などの用途で使用される、無料でダウンロードが可能なプログラミング言語である。Pythonは、オランダ人のGuido van Rossum(グイド・ヴァンロッサム)によって1994年に開発された。「Python」という名前の由来は、グイド・ヴァンロッサムが好きだったイギリスのBBCが制作したコメディ番組「Monty Python's Flying Circus」だとされている。コードの記述がシンプルであり、ライブラリも豊富に用意されていることや、組み込み開発や機械学習などの開発も可能なことから、多くの分野で使用されているプログラミング言語である。
(1)Pythonは、オブジェクト指向のデータ構造になっているプログラミング言語である。(ただし、オブジェクト指向言語の中にも手続き型言語の特徴が内在しているため、厳密な区別は困難である。)オブジェクト指向言語は、コードをオブジェクト(もの)という部品として扱うため、再利用性や保守性が高いという特徴がある。そのため、メンテナンスの手間が比較的かからず、カスタマイズも容易で、複数の開発者による大規模なシステム開発に向いているなどのメリットがある。その反面、コードが複雑になる傾向にあり、全体の構造を理解することが難しくなることがデメリットである。
(2)Pythonは、インタプリタ言語である。インタプリタ言語は、1行ずつコードを機械語に翻訳する(コンパイルする)言語である。1行ずつ処理が可能なため、プログラムをすぐに実行できてエラーの検出がしやすいという特徴をもっている。その分、ソースコードをまとめて機械語に翻訳するコンパイラ言語と比較すると、実行速度が遅くなる傾向にある。
(3)Pythonは、コードの記述を簡潔にできるように開発された言語であるため、ソースコードが読みやすく、初心者でも分かりやすい言語設計になっている。それには、組み込み関数の名称が、英語と意味と関連させて付けられていることが理由として挙げられる。例えば、「set()」は集合を表現した型、「max()」は最大値を取得する、「ascii()」はASCIIコードで表現される文字列を返す、「hash()」はハッシュ値を取得する、「open()」はファイルを開く、「print()」は文字列や数値を出力するなど、英語から関連して関数の動作を想起できるため、学習難易度が低いと言われている。この特徴を有しているために、ソースコードの記述は非常にシンプルになる。例えば、「Hello World」を表示するプログラムをC言語と比較すると次のようになる。
<C言語>
#include
int main(void)
{
printf("Hello World¥n");
return 0;
}
<Python>
print("Hello World")
このように、Pythonは開発に必要な関数の定義が用意されており、コードの記述がシンプルになるため、人間にも読みやすい言語設計になっている。
(4)Pythonには標準ライブラリが豊富に用意されており、拡張性が高い。そのため、効率的に開発を行うことができるというメリットがある。よく使われるライブラリとしては、「math(数学的な処理を行うための関数を備えたライブラリで、複雑な計算をするときに有効なライブラリ)」、「random(ランダムな数値=乱数を生成するためのライブラリ)」、「Pillow(画像の読み込みや拡大などの処理をするためのライブラリ)」、「pandas(データをグラフ化したり統計量を表示したりするのに使われるデータ解析用のライブラリ)」、「os(ディレクトリの作成やファイルの操作などのOSに依存している処理を行うためのライブラリ)」、「pip(パッケージのインストールやアップデートなどが簡単にできるようになる、パッケージを管理・操作するためのライブラリ)」「sklearn(教師あり学習や教師なし学習、モデルの評価などの機械学習のアルゴリズムを実装している、機械学習の開発には必要不可欠なライブラリ)」、「NumPy(複雑な計算処理や多次元配列の計算ができるなど、計算を効率的に行うことが可能でPythonの処理速度も向上する、科学技術の計算で使われるライブラリ)」などが挙げられる。特に、機械学習に関するライブラリが充実しており、AIの開発の分野での活躍が期待されるプログラミング言語である。
「Python」の読み方
「Python」は「パイソン」と読む。「Python」の熟語・言い回し
「Python」は英語の固有名詞であるため、「Python」という言葉を使った熟語や言い回しは存在しない。しかし、インターネット上では「Python資格」、「Python用語」といった言葉を使用している場面が見られるため、それぞれの解釈を解説していく。Python資格とは
Pythonのスキルを証明するための資格のこと指す表現である。Pythonの資格には、「一般社団法人Pythonエンジニア育成推進協会」が主催の「Python3 エンジニア認定基礎試験」、「Python3 エンジニア認定実践試験」、「Python3 エンジニア認定データ分析試験」がある。出題範囲や参考教材、合格正答率なども公表されているため、受験対策がしやすい資格となっている。その他にも、海外の団体が運営しているPythonの資格試験もあるが、試験内容は全て英語で出題されるため、プログラミングのスキル以上に英語のスキルが必要になることには注意が必要である。
Python言語とは
Pythonは、WEBアプリケーションの開発、人工知能(AI)の開発、ビッグデータの分析、組み込みアプリケーションの開発などを目的として使用されるプログラミング言語である。Python自体がプログラミング言語であり、「Python言語」という表現は「プログラミング言語言語」のような二重表現になってしまうため誤用であると考えられる。
Python用語とは
「Python用語」という表現はPythonで用いられる特有の用語を表現した言葉と考えられるが、一般的に使われる表現ではない。なぜなら、Pythonで用いられる用語は、あくまでもプログラミング言語の用語として一般的に使用されているからである。ただし、コードで考えると話は別である。コードは各言語によって異なっており、PythonにもPython独自の構文の書き方や関数の使い方が存在するからである。ただし、このことは他のプログラミング言語にも共通していることであり、このことを理由に「C言語用語」、「JavaScript用語」、「Ruby用語」などという表現で区別するものではない。
なお、Pythonを学習する上で欠かせないプログラミング用語を例に挙げると、以下のようなものが挙げられる。
「変数(へんすう)…データ(文字列や数値)を格納しておくことができる、固有の名前を付けた領域のこと
「クラス」…オブジェクト指向プログラミングで使用される、Integer、String、Arrayなどのオブジェクトが属している種類のこと
「メソッド」…オブジェクト指向プログラミングで使用される、クラスに定義されている処理のまとまりを部品化して名前を付けたもの
「関数(かんすう)」…任意の値を与えることで、決められた処理をする命令のこと
「引数(ひきすう)」…関数やメソッドに与える値のこと
「戻り値(もどりち)」…引数が関数やメソッドの処理を経て返ってきた値のこと
「フレームワーク」…WEBアプリケーションやシステムを開発するために必要な基本的な機能のまとまり
「ライブラリ」…インターネット経由で誰でも使用できるように、汎用性の高いプログラムをまとめたもの
「モジュール」…メソッドを共同利用するための部品のこと
「データベース」…コンピュータにデータを保存しておいたり、保存しておいたデータを取り出したりするための仕組み
「SQL (エスキューエル:Structured Query Language)」…データベースにアクセスするために必要な言語
これらの用語は、Pythonをはじめとしたオブジェクト指向言語に使用される用語であるため、Pythonを学習する上で理解しておくべき用語(Python用語)として紹介されることがある。
Python
Python Software Foundationの下で開発されているオブジェクト指向スクリプト言語。独自のオープンソースライセンス「Pythonライセンス」によって配布される。
Webアプリケーションで多く利用されているPHPのような特定の用途に向けたものではなく、汎用性が高い。C/C++によって書かれたライブラリによって機能を拡張することができる。GTK+をPythonで使えるようにするモジュール「PyGtk」を使ってGUIアプリケーションを開発したり、Apacheのモジュール「mod_python」を使ってWebアプリケーションを開発したりと、さまざまな用途に利用される。CMSであるZopeもPythonによって書かれている。
関連見出し
Apache
Zope
GTK+
関連URL
Python Programming Language(http://www.python.org/)
Python Software Foundation(http://www.python.org/psf/)

Python
Pythonとは、グイド・ヴァンロッサムによって開発されたオープンソースのプログラミング言語の名称である。Pythonは、今日において世界で最も普及した言語の一つであり、ファイルサイズが小さいこと、文法が平易で習得が容易なことなどが特徴となっている。また、Pythonのインタプリタには、Stackless Python、Jython、IronPythonなど様々なものがあり、これらと区別して、オリジナルのC言語で実装されたPythonは特に「CPython」と呼ばれる。
参照リンク
python.org - 公式サイト
Python
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/03/18 00:51 UTC 版)
Python(パイソン)はインタープリタ型の高水準汎用プログラミング言語である。
一次文献
- ^ “Python Release Python 3.11.0”. Python.org (2022年10月25日). 2022年10月27日閲覧。
- ^ Chapter 3. The Nature of JavaScript - Speaking JavaScript、2019年4月19日閲覧
- ^ 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
- ^ TIMTOWTDI。there's more than one way to do it
- ^ a b “Design and History FAQ — Python 3.9.6 documentation”. docs.python.org. 2021年8月26日閲覧。
- ^ typing --- 型ヒントのサポート — Python 3.10.0b2 ドキュメント
- ^ "A mapping object maps hashable values to arbitrary objects." The Python Standard Library - Python ver3.11.2. 2023-03-01閲覧.
- ^ Windows (MS)にPython (Anaconda)を導入する(6つの罠) https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679
- ^ exaloop/Codon
- ^ "Python-based compiler achieves orders-of-magnitude speedups", MIT News, (March 14, 2023).
- ^ “Python for S60”. 2007年1月17日閲覧。
- ^ “KEKB: An Asymmetric Electron-Positron Collider for B-Factory in KEK”. 2007年1月17日閲覧。
- ^ “Python for Scientists and Engineers”. 2015年8月9日閲覧。
- ^ a b c d Python Developers Survey 2017 - Results
- ^ TSpython 発言
- ^ “EDU-SIG: Python in Education”. 2011年5月16日閲覧。
- ^ プレス発表 基本情報技術者試験における出題を見直し:IPA 独立行政法人 情報処理推進機構
- ^ 文部科学省初等中等教育局情報教育・外国語教育課 高等学校情報科「情報Ⅰ」教員研修用教材(本編)「第3章 コンピューターとプログラミング」(2019年5月)
- ^ “Foundations of Sports Analytics: Data, Representation, and Models in Sports”. Coursera. 2022年2月2日閲覧。
- ^ a b c “Moneyball and Beyond”. Coursera. 2022年2月2日閲覧。
- ^ a b c “Prediction Models with Sports Data”. Coursera. 2022年2月2日閲覧。
- ^ “Wearable Technologies and Sports Analytics”. Coursera. 2022年2月2日閲覧。
- ^ “Introduction to Machine Learning in Sports Analytics”. Coursera. 2022年2月2日閲覧。
- ^ “Why was Python created in the first place?”. General Python FAQ. Python Software Foundation. 2007年3月22日閲覧。
- ^ "Python 2.7.18はPython 2.7の最後のリリースであり、したがってPython 2の最後のリリースである "
- ^ Peterson, Benjamin (2020年4月20日). “Python Insider: Python 2.7.18, the last release of Python 2”. Python Insider. 2020年4月27日閲覧。
- ^ a b “Python Documentation by Version”. Python Software Foundation. 2014年3月20日閲覧。
- ^ a b 17. Development Cycle — Python Developer's Guide
- ^ 佐野裕史. “【入門者必見】Python2と3、どっちを学習すべき?違いを徹底解説!”. 株式会社 侍. 2016年9月21日閲覧。
- ^ By the numbers: Python community trends in 2017/2018 | Opensource.com
- ^ “【Changes/Python 3 as Default”. Fedora Project. 2016年9月21日閲覧。
- ^ kuromabo. “Ja”. Ubuntu.com. 2016年9月21日閲覧。
- ^ Red Hat Enterprise Linux 7 Chapter 53. Deprecated Functionality - Red Hat Customer Portal
- ^ “登場! Python 3.0 - 2系との違いを比較”. マイナビ (2009年1月1日). 2014年3月13日閲覧。
- ^ “「Python 3.1」正式版リリース”. OSDN Corporation (2009年7月1日). 2014年3月13日閲覧。
- ^ “Python 3.1リリース”. OSDN Corporation (2009年6月30日). 2014年3月13日閲覧。
- ^ “Python 3.2リリース”. OSDN Corporation (2011年2月22日). 2014年3月13日閲覧。
- ^ 末岡洋子 (2012年10月1日). “仕様変更凍結が解除され新機能が追加された「Python 3.3」、ついにリリース”. SourceForge.JP. 2014年3月13日閲覧。
- ^ 後藤大地 (2014年3月18日). “Python 3.4登場”. マイナビニュース. 2014年3月20日閲覧。
- ^ 末岡洋子 (2014年3月18日). “「Python 3.4」リリース、標準ライブラリを強化”. SourceForge.JP. 2014年3月20日閲覧。
- ^ 後藤大地 (2015年9月13日). “Python 3.5.0登場”. マイナビニュース. 2015年11月5日閲覧。
- ^ “「Python 3.5」正式版がリリース – 新機能が多数追加”. ソフトアンテナブログ (2015年9月14日). 2015年11月5日閲覧。
- ^ 末岡洋子 (2016年12月26日). “「Python 3.6」がリリース”. OSDN. 2017年5月26日閲覧。
- ^ 末岡洋子 (2018年6月29日). “「Python 3.7」リリース、型アノーテーションの強化などさまざまな機能が追加される”. OSDN. 2018年7月11日閲覧。
- ^ What's New In Python 3.9 — Python 3.9.12 ドキュメント
- ^ What's New In Python 3.10 — Python 3.10.4 ドキュメント
- ^ “Welcome to Python.org” (英語). Python.org. 2020年8月10日閲覧。
- ^ “History and License”. 2016年12月5日閲覧。 "All Python releases are Open Source"
- ^ a b Peters, Tim (2004年8月19日). “PEP 20 – The Zen of Python”. Python Enhancement Proposals. Python Software Foundation. 2008年11月24日閲覧。
- ^ “About Python”. Python Software Foundation. 2012年4月24日閲覧。, second section "Fans of Python use the phrase "batteries included" to describe the standard library, which covers everything from asynchronous processing to zip files."
- ^ Lemburg, Marc-André (2000年3月10日). “PEP 100 -- Python Unicode Integration”. Python Enhancement Proposals. Python Software Foundation. 2014年2月12日閲覧。
- ^ What’s New in Python 2.4
- ^ PEP 3120 -- Using UTF-8 as the default source encoding | Python.org
- ^ PEP 538 -- Coercing the legacy C locale to a UTF-8 based locale | Python.org
- ^ PEP 540 -- Add a new UTF-8 Mode | Python.org
- ^ “PEP 0263 -- Defining Python Source Code Encodings”. Python Enhancement Proposals. Python Software Foundation (2001年6月6日). 2014年2月12日閲覧。
- ^ "Wheel attempts to remedy these problems by providing a simpler interface between the build system and the installer." PEP 427 -- The Wheel Binary Package Format 1.0
- ^ a b “Quotes about Python”. 2007年1月15日閲覧。
- ^ “Python 2 から Python 3 への移植”. Python Software Foundation. 2014年3月13日閲覧。
- ^ PEP 373 -- Python 2.7 Release Schedule | Python.org
- ^ “Sunsetting Python 2” (英語). Python.org. 2019年9月22日閲覧。
- ^ What's New In Python 3.7 — Python 3.7.5 ドキュメント
- ^ What's New In Python 3.8 — Python 3.8.0 ドキュメント
Python(パッケージ)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/26 03:18 UTC 版)
「自然順」の記事における「Python(パッケージ)」の解説
Python 2, Python 3ではnatsortパッケージを利用して自然順の照合ができる。
※この「Python(パッケージ)」の解説は、「自然順」の解説の一部です。
「Python(パッケージ)」を含む「自然順」の記事については、「自然順」の概要を参照ください。
Python(ハールウェーブレット)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/16 06:10 UTC 版)
「多重解像度解析」の記事における「Python(ハールウェーブレット)」の解説
ハールウェーブレットの離散ウェーブレット変換は下記のリフティングスキーム(英語版)の数式にて行える。入力を x として、 x e ( z ) {\displaystyle x_{e}(z)} は入力 x の先頭を1番目として偶数番目の要素、つまり、x[1::2]、 x o ( z ) {\displaystyle x_{o}(z)} は奇数番目の要素、つまり、x[0::2]。c が低周波成分(基底関数がスケーリング関数)、d が高周波成分(基底関数がウェーブレット関数)。 ( c d ) = ( 1 1 / 2 0 1 ) ( 1 0 − 1 1 ) ( x e ( z ) x o ( z ) ) {\displaystyle {\begin{pmatrix}c\\d\end{pmatrix}}={\begin{pmatrix}1&1/2\\0&1\end{pmatrix}}{\begin{pmatrix}1&0\\-1&1\end{pmatrix}}{\begin{pmatrix}x_{e}(z)\\x_{o}(z)\end{pmatrix}}} ハールウェーブレットの離散ウェーブレット変換のソースコードは下記のようになる。入力は x で NumPy の配列で与える。多重解像度解析をしたい場合は、x = c して長さが1になるまで繰り返す。 ϕ n , k ( t ) = 2 n ϕ ( 2 n t − k ) {\displaystyle \phi _{n,k}(t)={\sqrt {2^{n}}}\phi (2^{n}t-k)} の形の基底関数の係数にしたい場合は、c *= sqrt(2) と d /= sqrt(2) をする。 d = x[0::2] - x[1::2]c = x[1::2] + d / 2 ハールウェーブレットの逆離散ウェーブレット変換のソースコード。 x[1::2] = c - d / 2x[0::2] = d + x[1::2]
※この「Python(ハールウェーブレット)」の解説は、「多重解像度解析」の解説の一部です。
「Python(ハールウェーブレット)」を含む「多重解像度解析」の記事については、「多重解像度解析」の概要を参照ください。
Python(Bior2.2双直交ウェーブレット)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/16 06:10 UTC 版)
「多重解像度解析」の記事における「Python(Bior2.2双直交ウェーブレット)」の解説
Bior2.2双直交ウェーブレット(2階Bスプライン、線形スプライン)の離散ウェーブレット変換は下記のリフティングスキームの数式にて行える。 z {\displaystyle z} は一つ次の要素、 z − 1 {\displaystyle z^{-1}} は一つ前の要素を表す。 ( c d ) = ( 1 ( z − 1 + 1 ) / 4 0 1 ) ( 1 0 − ( 1 + z ) / 2 1 ) ( x e ( z ) x o ( z ) ) {\displaystyle {\begin{pmatrix}c\\d\end{pmatrix}}={\begin{pmatrix}1&(z^{-1}+1)/4\\0&1\end{pmatrix}}{\begin{pmatrix}1&0\\-(1+z)/2&1\end{pmatrix}}{\begin{pmatrix}x_{e}(z)\\x_{o}(z)\end{pmatrix}}} Bior2.2の離散ウェーブレット変換のソースコード。配列の境界で足りない分は対称パディングで埋めている。 y = np.pad(x, (4, 2), "symmetric")d = y[2::2] - (y[1:-2:2] + y[3::2]) / 2c = y[3:-2:2] + (d[:-1] + d[1:]) / 4d = d[1:] Bior2.2の逆離散ウェーブレット変換のソースコード。 x[1::2] = c[1:] - (d[:-1] + d[1:]) / 4x[0] = 2 * d[0] + x[1]x[2::2] = d[1:-1] + (x[1:-2:2] + x[3::2]) / 2
※この「Python(Bior2.2双直交ウェーブレット)」の解説は、「多重解像度解析」の解説の一部です。
「Python(Bior2.2双直交ウェーブレット)」を含む「多重解像度解析」の記事については、「多重解像度解析」の概要を参照ください。
固有名詞の分類
- Pythonのページへのリンク