未経験大学生によるPython入門日誌-第1話

約束の

どうもこんにちは。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)

TurtleGraphics

で?っていう感じですが、リファレンスが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(パス)と書くと、その場で参照先?を追加出来るらしいということあたりがちょっと大事な印象を受けました。

場所へ

今回は疲れたのでここまでにします。

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

Yuki.K

1995年生まれ。慶應SFCを2018年3月に卒業予定(予定) 夢も希望もなくキャンパスを彷徨っていたところ、夢と希望いっぱいのBPS村に引きずり込まれてしまった大学生アルバイト。 雑用担当

Yuki.Kの書いた記事

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ