理由はそのうち考える

まずやってみよう

Pythonことはじめ

AI関連の学習をするにあたってPythonも知っておかねばと思い書籍を読んでいる。

gihyo.jp

言語としての特徴

ブロックの表現はインデントで行う

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に関する様々な情報が文書としてまとめられている。

www.python.org

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以降には標準で付属している。

pip - python.jp

venv

仮想環境の作成と管理を行うためのモジュール。pipによるパッケージの導入状態を独立させることができる。Python3.3で標準機能として取り込まれた。

venv — Creation of virtual environments — Python 3.8.5 documentation

pyenv

Pythonのバージョンを切り替えることができるツール。プロジェクトごとに使用するPythonのバージョンが異なる場合に便利。

GitHub - pyenv/pyenv: Simple Python version management