Pythonことはじめ
AI関連の学習をするにあたってPythonも知っておかねばと思い書籍を読んでいる。
言語としての特徴
ブロックの表現はインデントで行う
Pythonと言うとブロックの表現を中括弧ではなくインデントで行うというところが特徴的だろう。このインデントの深さは、PEP8(後述)ではスペース4つを使うということになっている。*1
またタブかスペースのどちらがいいかというとスペースのほうが好まれ、Python3だとこれらの混在は許されない。*2
標準ライブラリが豊富
PythonにはBatteries Included(バッテリー同梱)という哲学があるそうで、これに基づき標準ライブラリが豊富に揃っている。例えば、以下のようなもの。標準でこれらが使用できるのはありがたい。
- email
- 電子メールメッセージを管理する
- json
- csv
- CSVファイルの読み書き
- sqlite3
- SQLiteデータベースライブラリのラッパー
- configparser
- iniファイル形式の設定ファイルのパーサー
長い歴史
作者のGuido van Rossumの1989年のクリスマス休暇から開発が始まり、1994年1月にPython1.0がリリースされた。開発開始から数えると30年ほどあり歴史は長い。その後Python2系が2000年10月、現在の最新メジャーバージョンであるPython3系は2008年にリリースされた。
PEP(Python Enhancement Proposals)
PythonにはPEPと呼ばれる拡張提案の仕組みがある。コーディング規約やリリーススケジュール、様々なインターフェース定義など、Pythonに関する様々な情報が文書としてまとめられている。
PEP8:Style Guide for Python Code
Pythonの標準ライブラリのコーディング規約だが、多くのPythonプロジェクトがこれに従っている。
PEP20:The Zen of Python
Pythonの設計ガイドライン。Pythonを対話モードで起動してimport this
と入力すると確認できる。
PEP257:Docstring Conventions
ドキュメントの書き方。PythonではDocstringと呼ばれるドキュメントを埋め込む。Docstringには関数などの仕様を記述する。使い方は3つのクォートで囲むだけ。help()やエディタ、IDEなどで表示され、可読性の向上に貢献する。
def printHoge(n): """引数+ほげほげする関数 :param n:文字列 """ print(n+"hogehoge")
help(printHoge)とすると、Docstringの内容が確認できる。
インストール
単に学習目的ならインストーラをダウンロードして実行するのが早そう。
・Windows
Add Python to PATHにチェックをつける。
Python3のインストール - python.jp
・Mac
MacOS 版のインストール - python.jp
pip、venv、pyenv
venv、pyenvは特定の環境が要求されたときのために使用する。学習目的であれば最新を使っておけば良いのであまりお世話になることはなさそう。
pip
Pythonパッケージのインストールなどを行うユーティリティ。Python3.4以降には標準で付属している。
venv
仮想環境の作成と管理を行うためのモジュール。pipによるパッケージの導入状態を独立させることができる。Python3.3で標準機能として取り込まれた。
venv — Creation of virtual environments — Python 3.8.5 documentation
pyenv
Pythonのバージョンを切り替えることができるツール。プロジェクトごとに使用するPythonのバージョンが異なる場合に便利。