自分にとってPythonとは?

こんにちは,Pyenteです.

今回は自分なりにPythonについてまとめてみたいと思います.

はじめに

私がPythonに出会ったのは3年前で,キッカケは機械学習というものを知って勉強したときでしょうか.

というか3年前(研究室所属前)まで授業以外ではほとんど勉強してなかったので,Pythonなんて素敵言語知らなかったです.

それからはPythonばっか使ってますが,たまに授業で習ってたJavaC++HaskellRuby(RoR),Goなんかに浮気してましたけど,ずっとPythonです.

Pyenteという名前も実はPython + Serpente(伊語で蛇)でそれ以前はSylphy(ヨーロッパ神話の風の精霊だったかな?)とか使ってました.

読み方は…まぁ適当にパイソンとセルテンペなんてパイエンテとかピエンテとか読んでますが,造語だしニックネームなので呼ばれることは考慮してません.

↑ここまで雑談

ここからは自分なりにPythonのいいところを説明していきたいと思います.

ちなみにPython2とPython3があり,今でもちらほらとPython2の記事を見かけますが,今から勉強する人は必ずPython3を勉強しましょう.

Python2は一部の会社などでしか使われていませんし,これからPython3に移行していくでしょう(サポートも切れるし).

Pythonの特徴

Pythonは意外と色々な種類があり,普通のPythonはCPythonというものです.

知っている方はいるかと思いますがPyPyやJythonなどがあります.

ここについてはあとで説明したいと思います.

Pythonはまずコードが読みやすい点が一番強いと思います.

Pythonは文法がシンプルなので,最低限のコードで記述でき,またブロックをインデントで表す(オフサイドルール)ので,わかりやすいと思います.

例えば,Cなんかではifforなどを{}で書きますよね?

Pythonはインデントとブロックの始まりを:で明示するんです.

それに初心者でも学びやすいと言われているので,人気もあります.

あとはライブラリが豊富で何かしらあるのでなんでもできる…という印象が強いです.

実際にWebやAI,機械学習で使われてますしね.

あとはCやJavaというコンパイルを事前に行うコンパイラ言語ではなく実行時にコンパイルと実行を行う(厳密には違う)インタプリタ言語です.

これによりコンパイラ言語より実行に時間がかかる…のですが,PythonはCで書かれているので実際はそこまで遅くないです.

それに高速で実行できるような場合も多々あります.

ライブラリが豊富と書きましたが,実際はいくつか有名なものがあるのでそれについて説明します.

機械学習ではTensorFLow,Web系ではDjangoがよく使われています.

機械学習は人によって好みが分かれると思いますが,最初はscikit-learnというものが機械学習全部を網羅しているので勉強にはうってつけだと思います.

あとは前述したTensorFlowTheanoとかChainerとかがディープラーニングでは使われていますね.

この前GA(遺伝的アルゴリズム)をやったときにはDeapにお世話になりました.

WebはFlaskとかBottleとかありますが,自分はDjangoが一番使いやすいと思います.

実際に使われているサービス

PythonではWebアプリケーション,デスクトップアプリケーション,組み込みアプリケーション,ゲーム,機械学習,データ解析などに使われていますが,大規模なサービスにも使われています.

WebアプリではYoutubeInstagramDropboxなどが有名どころでしょう.

あとは自分がよく使うEvernotePythonらしいです.

機械学習,AIではPepperというロボットにはPythonで作られた感情エンジンが搭載されています.

Pythonの基本文法

ここでは多くは語りません.

よく使うものをメモ書き程度に書いていきます.

# これがコメントです
# 変数
x = 2 # int型
x = 2.0 # float型
x = 'Hello World' # str型 "でも可
x = True # bool型 最初は大文字

# 配列
a = [] # 空の配列
b = [0, 1, 2, 3, 4, 5] # 初期化
b[0] # bの1番目
b[-1] # 配列bの最後から1番目
b[1:3] # スライスと呼ばれる.bの1番目から3番目の前までを配列で返す
b[:3] # bの最初から3番目の前までを配列で返す
b[3:] # bの3番目から最後までを配列で返す
b > 3 # bの3より大きいものをTrueで返す.このとき[False, False, False, False, True, True]となる
b.append(6) # bに6を追加
len(b) # bの要素数
b.sort() # ソートしてくれる.簡単

# for
for i in b: # bを順番にiに格納してループ
    print(i) # iを表示

# 0から9までを順番に
for i in range(10):
    print(i)

# if
if a == 1:
    print("A")
elif a == 2: # else ifではなくelif
    print("B")
else:
    print("C")

# 辞書型
d = {}
d["a"] = "A"
print(d["a"]) # A

こんなものですかね.スライスはよく使います.

あとはzip関数とかも使います.

辞書型も使いやすいです.

values()とかitems()とかで簡単にループできます.

あと書いてないのだとラムダ式とかリスト内包表記とか簡潔にかけて便利です.

Pythonでよく使うライブラリ

Pythonのインストール方は色々ありますが,自分はAnacondaをお勧めします.

これはインストールと同時に色々なライブラリも同時にインストールしてくれるためです.

またpipというパッケージインストーラからインストールも容易に行えます.

よく使うのは

  • Jupyter Notebook: プログラムを実行,実行結果を記録できる.Githubで見ることも可能
  • Numpy: 学術計算ライブラリ.ベクトル演算が容易
  • Pandas: データ解析ライブラリ
  • Scipy: 科学計算ライブラリ
  • matplotlib: グラフ描画ライブラリ

これらですかね.Jupyterは系統が違いますが…

この他にも覚えきれないほど色々ありますので,ググって見ると面白いですよ.

最後に

Macだと最初からPythonがインストールされてます.

コマンドプロンプトとかターミナルを使う自分にとって,pythonと打つとその場で実行テストできる(対話モード)のは結構好きな機能です.

モジュールがインストールできたかのチェックもできますし.

ではでは,今日はここまで!

良いPythonライフを!