約束の
どうもこんにちは。BPS用務員の片山です。
Rubyの勉強をしていこうと思ったのですが、流行に弱いのでハローワールドまでいって満足したので、今回は巷で大流行中のPythonに入門していきます。
BPSはRubyの会社らしいですけど僕はしがない用務員バイトなのでPythonやっても怒られない……よね……よね?
すごい
入団編
OSXにも標準でPythonが入っているみたいなのでまずはバージョンをチェックします。
$ python --version
Python 2.7.10
OSX10.11標準のPythonはバージョン2.7.10みたいですね。
このまま使ってもいいかなと思ったのですが、一応pyenvを入れて3.5.1もインストールしました。
$ pyenv install 3.5.1
新たなる翼編
臨
ハローワールドをしていきます。
ここではPython3の対話モードを使います。
$ python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)
>>> print("Hello,World!")
Hello,World!
良い感じですね。
Cだと
#include<stdio.h>
int main(void)
{
printf("Hello,World!");
return 0;
}
Brainf*ckでは
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.
になりますが、こうしてみるとPythonのコンパクトさに驚かされてしまいます。(Rubyもこんなんだったけど)
兵
Pythonでは改行を使って文の区切りを作るらしいです。
セミコロンは複数の文を一行で書きたいときに使うみたいです。
今回は対話モードを使っているのでセミコロンで区切って使っていきます。試しにやってみます。
>>> array = ['おしり','かゆい','ムズムズ']
>>> print(array[0]); print(array[1]); print(array[2])
おしり
かゆい
ムズムズ
いい感じですね。ムズムズしてきました。
闘
次はif文を使ってみます。
>>> array = [15,16,17]
>>> if array[0] == 15:
... print("yeah")
ではエラーが出ました。。。
理由は単純で、インデントしてないのが問題でした。
PythonはインデントにTab文字使うと極刑に処せられるという風のうわさを耳にしたので、しっかりとスペースを打っていきます。
面倒なのでスペース2つにします。
対話モードでもしっかりとインデント打たないとアカンのがキモですね。
>>> if array[0] == 15
>>> print("yeah!")
yeah!
細かい文法などは適宜調べながらやっていけばいいので、とにかくゴリゴリ進めていきます。
者
お次はこれ。Cでもこんなんありましたね。
>>> x = 1
>>> print("%05d" % x)
00001
"%05d"
と%x
の間にカンマが必要ないのが逆に違和感を感じます。
皆
そろそろ飽きてきたので、もう少し派手なことをやりたくなってきました。
ちょろっとググったらタートルグラフィックスなるものがあることが判明したので試してみました。
>>> from turtle import *
>>> forward(100)
で?っていう感じですが、リファレンスがPythonの公式サイトにありました。
陣
もう少し遊んでみようと思ったのですが、ここで、そもそもfrom
とかimport
ってなんやねん!ってなったのでそちらを調べることにしました。
色々調べてみた所、Pythonで書いたスクリプトは文字通りモジュール(module)として呼び出して使うことが出来て、複数のモジュールをフォルダでまとめたものがパッケージ(package)になるようです。そこで、それらを呼び出すのがfrom
とかimport
というわけで、from パッケージ import モジュール
的になるらしいです。
で、こういうことを知ると、当然「自作のものとか外部のものってどうしたらいいねん!ねん!」となるわけですが、これが案外、肝心なところの情報が少ないのです。「自作のものをモジュールとして使うにはimportしたらいいんだよ〜」っていう当然のことだけを書いてあるサイトばかりで、「そもそもどこに自作モジュール置けばいいんだよ!」っていう。
で、「Python モジュール 場所」とかで色々ググっていたところ、どうやらPYTHONPATHなるものがあるらしいのです。sys.path
ってのを実行するとPYTHONPATHの場所を確認出来るらしいこと(sysは標準のモジュールなのですがimport sys
)をやって、.bashrc
に書くことでPATHと同じようにPYTHONPATHを追加できるらしいこと、sys.path.append(パス)
と書くと、その場で参照先?を追加出来るらしいということあたりがちょっと大事な印象を受けました。
場所へ
今回は疲れたのでここまでにします。