実践編―30分でPythonを触ってみる(クスノキ・プロジェクトへの招待 Vol. 21)
こんにちは。インターン生の田頭です。クスノキ・プロジェクト第一弾へのたくさんのご応募、ありがとうございました。3月29日(日)のワークショップまで、残り1か月ほどとなりました。今回のブログでは、ワークショップに向けて皆様と一緒にPythonを動かしてみようと思います。
プログラミングを始めるには、まずPythonを動かすための「作業場所」や「準備一式」といった環境を準備しなければなりません。環境とは、授業を受けるための「教室」のようなものです。授業には、教室、机、黒板、教科書が必要です。先生(プログラム)だけが存在していても、教室がなければ授業はできません。Pythonのプログラミングにおいて、Python本体、ライブラリ、コードを書く画面といったものが教室にあたります。
・Pythonをインストールする
・パスを設定する
・ライブラリを入れる
といった準備作業を、環境構築と呼びます。この複雑な環境構築を行わなくともPythonを実行できるのが、Google Colaboratory(通称Colab)です。Colabは、Googleが提供しているサービスで、ブラウザ上でPythonを実行することができます。コードを書いて、実行ボタンを押すとすぐに結果が表示される便利なツールです。ワークショップ当日も、Colabを用いてプログラミングを行います。
では、実際にColabを使ってみましょう。新しいノートブックを開き、次のように入力してみて下さい。

そして、左側の▶ボタンを押します。処理が完了すると、▶ボタンの左側に緑のチェックマークがつきます。
Hello
と表示されたでしょうか。printは、「表示する」という意味です。カッコの中に書いた内容が、そのまま画面に出力されます。プログラミングとは、コンピュータに何をやってほしいか伝えることです。
次は、計算をしてみましょう。「+コード」を押すと、新しくコードを書くことができます。

上のコードをそれぞれ実行すると、すぐに答えが出力されます。Pythonでは、足し算は「+」、引き算は「-」、割り算は「/」、掛け算は「*」で表記します。
続いて、数字に名前を付けてみましょう。

2026
という結果が出力されたでしょうか。ここでは、
・xに2000をいれる
・yに26をいれる
・xとyを足す
ということをしています。x, yのような、データを入れておく箱のことを変数といいます。今は、変数に数値という型のデータを入れました。データの型には、数値のほかに、文字列、真偽値、配列型、辞書型など様々な種類があります。
先ほど用意した変数x, yを使って、関数を組んでみましょう。関数とは、ある処理をひとまとまりにして名前を付け、必要な時に呼び出せるようにしたものです。下のコードでは、引き算の処理にsubという名前をつけて関数にしています。a, bには任意の数値を代入することができます。

実行すると、
1974
という結果が出力されるはずです。今回は、aにxを、bにyを代入しました。
全角、半角やスペースの取り方を間違っていたり、実行する順番が間違っていたりすると、エラーがでることがあります。そういう時は、焦らずにエラーメッセージをみて、エラーの場所や種類を確かめてみてください。
最後に、少しだけ本格的なことをしてみます。次のコードを入力してみてください。

実行すると、グラフが表示されます。
たった数行のコードで、グラフを描くことができました。
import matplotlib.pyplot as pltでは、
・matplotlibという「グラフを描くための道具」を読み込む
・そのなかのpyplotという機能を使う
・pltという短い名前をつける
ということをしています。次に、横軸(x軸)と縦軸(y軸)の値を設定します。それが、
x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
の部分です。そして、
plt.plot(x, y)
というコードでグラフを描画します。最後に、
plt.show()
でグラフを画面に表示させています。

先ほどのコードに、一行追加してみました。実行すると、下のようにグリッドが表示されたグラフが出力されます。

このようにグリッドを追加できるだけではなく、軸ラベルや軸範囲を設定したり、メモリをカスタマイズしたりすることもできます。
今回のブログでは、
・文字を表示する
・計算をする
・数字に名前をつける
・関数を組む
・グラフを描く
といった操作を紹介しました。これらを組み合わせることで、データの分析が可能になります。このブログを参考に、是非、自分の手でコードを書き、プログラムを実行してみてください。
このブログが面白いと思って頂けますならば、インターンシップの励みになります。ソーシャルメディア等で拡散して頂けると幸いです。
※当ブログの記述内容は弊研究所の公式見解ではなく、執筆者の個人的見解です。
株式会社原田武夫国際戦略情報研究所・インターン生 田頭優花拝