このところ、データサイエンティストによるデータ分析記事が様々な切り口で興味深々です。どうやら皆さんPythonでプログラミングをしているようです。私もやってみたくなってきました。そこで、PythonのインストールからHello worldまでやってみました。なお、プログラム実行のため「黒い画面(ターミナル)」のコマンドに触れました。苦手だった黒い画面の理解もすすんで一石二鳥だ!!
【目次】:
- データ分析にはPythonが向いているらしい
- スクリプト言語四天王
- Pythonのインストール
- 黒い画面(ターミナル)を起動!
- UNIXコマンドを叩く
- REPL(対話実行モード)で四則演算
- Pythonファイルを作成
- cdコマンドでPythonフォルダに移動
- pwdコマンドでフォルダのパスを確認
- lsコマンドでファイル一覧表示
- .pyファイルのPythonプログラム実行
- 黒い画面はコマンドの実行、出力ができる場所
- CUIを使う理由は環境を超えるため
- 最後に
データ分析にはPythonが向いているらしい
Pythonというと「最先端のイケてる言語」というイメージ。AI、機械学習、高収入、とか。でもなんだか漠然として、まだ自分が手を出す段階ではないなと。手の出し方自体もよくわからなかったし。
ただ、冒頭に書いたようにすごく面白いデータ分析系の記事がたいていPythonで分析されていた。こういうこと自分もやってみたいなーとだんだん興味が湧いてきた。
自らのホットエントリ体験もPythonで解析。技術ブロガーの素晴らしさを感じる!
— イイダリョウ (@idr_zz) 2018年11月13日
初めてはてなブックマークのホットエントリーに掲載されたので、アクセスログを解析してみた - 今日も窓辺でプログラム https://t.co/9zDrewKQun
どうにもこうにもこういうデータ解析の世界に惹かれてしまう。すごいなぁ。
— イイダリョウ (@idr_zz) 2018年11月14日
因子分析でテニスのサーブ力・リターン力を定量化してみた – 戦略コンサルで働くデータサイエンティストのブログ https://t.co/mrtBK9AwCr
スクリプト言語四天王
サーバサイドに「スクリプト言語四天王」*1というのがあって調べるうちに違いがわかってきた。
- Perl:かつてCGIがWebに特化し、一世風靡した。カウンターや掲示板が作られた。
- Python:人工知能、機械学習だけでなくデータ分析、タスク自動化、Webアプリなど用途が広い
- PHP:Webに特化。フレームワークはCakePHPが有名。WordPressにも採用されている。
- Ruby:国産の言語!フレームワークRuby on RailsがWebに特化。
Pythonが人工知能向けというよりも、他の3つがWebメインでPythonは用途が広いんですね。
※参考:Perl、Python、PHP、Rubyについて - Qiita
Perlは今から手を出さなくてもいいかな…と個人的には思っていて、PHPはある程度触れていて、PythonとRubyが未知の世界です。
今はデータ分析に興味があるので先にPythonに挑戦します。体系的に理解するために書籍「Pythonの教科書」を購入しました!
Pythonのインストール
Macでは最初から「Python2」がインストールされているのですが、書籍では「Python3」を推奨していたので、インストールしてみる。
プログラミング言語を「インストール」ってどういうこと?と思う方もいるかもしれないが、言語はただ書いただけでは文字列でしかないわけで、その言語を認識して処理を実行する環境が必要です。
その実行環境としての「Python」をPC内にインストールするわけです。
下記のページからファイルをダウンロード。
「Downroad Python 3.x.x」ボタンをクリックするとOSに合ったファイルがダウンロードできます。
ダウンロードしたファイル「python.3.x.x〜.pkg」ファイルをWクリック
指示に従い進んでいくと…
インストール完了!
黒い画面(ターミナル)を起動!
さあいよいよPythonを書いてみましょう!
Pythonプログラムの実行には「黒い画面」が必要なようです。そう、あの黒い画面ですよ…。
AltJSやらNode.JSやらWebPackやらDockerやら、最近のフロントエンド技術はたいてい黒い画面で実行されていますよね。
それでは、ドキドキしながら黒い画面を開いてみましょう。黒い画面…Windowsでは「コマンドプロンプト」、Macでは「ターミナル」といいます。
「アプリケーション」の中の「ターミナル」を開いてみる。それ!
ごめん、白かった。「黒い画面」のイメージが強いですが、ターミナルのデフォルトでは「白い画面」ようです。こっちの方が見た目がテキストエディタチックで緊張しないので、このまましらばらく触ってみるw
私はこれまで黒い画面にはそれほど触れることがありませんでした。しかしPythonの体験のために必要とあらば、ここらでがっつり黒い画面を経験してみるのもいいかもしれない。(上記のフロントエンド技術も身近に感じられるかもしれないし)
ちなみに1行目は前回のログイン日時。二行目は操作対象(コンピュータ名、ディレクトリ、ユーザ名)です。最後にあるドル$
マークはとても大事な記号。後述しますね!
UNIXコマンドを叩く
さて、ターミナルには「UNIXコマンド」という命令を書いていきます。単に「コマンドを叩く」なんて言い方もされますね。
行の最後にはドル$
マークが表示されます。コマンドはこのドル$
マークの後に入力します。
まず$
の後ろにpython3
と打ちます。
$ python3
Python3を起動してね、という命令です。エンターで実行!
Python3が起動されました。
一番最後に>>>
と表示されています。これはPythonの「REPL(対話実行モード)」と言ってPythonのプログラムをその場で実行し、すぐに結果を表示できます。
REPL(対話実行モード)で四則演算
それではさっそくREPLで四則演算を書いてみます。
1〜9までを掛け算します。(この時点でどのくらいになるのか、文系の私には想像もつきませんw)
>>> 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9
エンターを押して実行です!
おお!すぐに答えが!「362,880」なんですね!
実際にターミナルで全てのPythonプログラムを書くのは現実的ではありませんが、ここでPythonの命令が実行できるということはテストやデバッグなどを行えるということです!(JSでよくつかうalert()
やconsole.log()
のイメージです)
なお、REPL状態を終了させたい場合はexit()
を入力します。
>>> exit()
Pythonファイルを作成
次に、Pythonのファイルを作って、その中にPythonの命令を書いてみましょう。ファイルの拡張子は.py
です。
デスクトップにpython
というフォルダを作り、その中にhello.py
というファイルを保存します。(文字コードはいつもとおなじUTF-8
にしてください)
中にはいわゆる「Hello world」的なコードを書きます。文字の出力はprint()
というメソッドです。
print("はろー、ぱいそん。")
メソッドの後ろにカッコが付くのはJSやPHPと同じですね。引数に文字列はろー、ぱいそん。
を入れています。
なお、JSやPHPは行末にセミコロン;
が必要ですが、Pythonの行末は不要です。
cdコマンドでPythonフォルダに移動
ふたたびターミナルを起動しましょう。また$
のあとにコマンドを書きます。
コマンドは結構強烈な略字がたくさんあります。昔は少しでも少ない文字数にしたかったようです。*2
たとえばcd
は「Change directory」など、まるでDAI語みたいな世界です。
※参考: DAIGOが放つ斬新な略語DAI語録まとめ!爆笑必至50選!!
それではcd
コマンドでターミナルの中でhello.py
ファイルに移動しましょう。
cd Desktop/python
でデスクトップ直下のpython
フォルダに移動。
$ cd Desktop/python
エンターで実行!
最初にチルダ~
だったところがpython
になりました。「pthon
フォルダに移動したよー」という意味です。ほんとかなー?
なお、~
はホームディレクトリという意味です。
pwdコマンドでフォルダのパスを確認
cd
コマンドでpthon
フォルダに移動したようなんですが、画面がテキストだけなので半信半疑。ここら辺が黒い画面のもどかしさです。
pwd
コマンドはファイルやフォルダのパスを確認することができます。(pwd
ってパスワードみたいですが「print working directory」とのこと)
$ pwd
エンターで実行!
Desktop/python
と表示された。どうやら信じていいようです!
lsコマンドでファイル一覧表示
次はls
コマンド。「list directory contents」リストのことですね。
フォルダの中のファイル一覧を表示します。
$ ls
エンターで実行!
ファイル一覧が表示!一覧といっても1ファイルですが、ちゃんとhello.py
があるよー、と教えてくれてます。
.pyファイルのPythonプログラム実行
さあいよいよ、.py
ファイルの中のPythonプログラムを実行します!
python3
コマンドのあとにファイル名を指定します。
$ python3 hello.py
エンターで実行!
おお!さきほどhello.py
の中でかいた文字列はろー、ぱいそん。
が表示されました!
ファイルの中のprint()
メソッドが動いて結果がターミナルに表示されたということです。
黒い画面はコマンドの実行、出力ができる場所
これまで、黒い画面はあまり触らなかったので、どういう存在なのかいまいちわかってなかったんですが、これはコマンド(命令)を書いてその場で出力結果を得られる場所なんですね。
例えば. js
ファイルの命令→実行→出力はブラウザがメインですがコンソールやアラートにも出力可能です。
//jsファイル→ブラウザに出力 document.querySelector("#hoge").innerHTML = "はろー、じぇいえす。"; //jsファイル→コンソールに出力 console.log("はろー、じぇいえす。"); //jsファイル→アラートに出力 alert("はろー、じぇいえす。");
今回行ったのは.py
ファイルの命令→実行→ターミナルに出力です。
.pyファイルの命令を
print("はろー、ぱいそん。")
ターミナルにコマンドで実行
$ python3 hello.py
ターミナルに出力
はろー、ぱいそん。
そう考えると、普段やっていることと出力場所が変わっただけでたいして変わりませんね!
CUIを使う理由は環境を超えるため
ターミナルやコマンドプロンプトは「CUI」といいます。WindowやMacのOS自体は「GUI」です。
MacやWindowsが出る前のコンピュータといてば、マウスもなくキーボードだけで黒い画面にコマンドを打って操作をするCUIが普通でした。
ウィンドウのフォルダやファイルをドラッグしたりコピペしたり、GUIで直感的な操作をしていると現代では、CUIはとてもわかりにくく感じます。それでもCUIを使うメリットって何でしょうか?
- CUI(Character User Interface):テキストのコマンドだけでコンピュータの全てを操作
- GUI(Graphical User Interface):マウスでウィンドウ、ファイル、フォルダを操作できる
私たちのPCは1台ごとにモニター、キーボードなど入力、出力機器がセットになっています。PCのローカル環境で操作をするにはGUIで問題ありません。
一方、サーバはWebサーバ、メールサーバ、DBサーバ、FTPサーバなど複数のハードを操作します。サーバは本体のみでモニター、キーボードなどが付いてないことが多いです。*3
そういった環境では遠隔のマシーンからサーバーにアクセスしてCUIで操作する方が使い勝手がよくなるんだな、と理解しました。
- PC:1台ごとにモニター、キーボードが付いている=GUIでOK
- サーバ:複数台のサーバで本体のみ=CUIで遠隔からアクセスして操作する
そしてCUIはPCローカルでもいろんな実行環境を超えてファイルやフォルダにアクセス、操作ができる。それがCUIを使う理由かな、とイメージできました。
- 黒い画面で複数のサーバマシンを超えて遠隔操作できる
- 黒い画面でnode.js、python、rubyなどの実行環境を超えて操作できる
最後に
Pythonに触れることで、副次的に黒い画面(白かったけどw)のUNIXコマンドの理解も深まりました。ターミナルを利用する別の技術にも入りやすくなる気がします。node.jsやRubyなどをやっていきたいですね。
Pythonについても進めていきます。以前、JSとPHPの書式を比較した記事を書きました。次回はこれと同じような比較記事を書きます!
※参考: PHPの基本を理解するためにJSと比較する - クモのようにコツコツと
※参考:Web開発環境の記事まとめ
qiita.com