サイトアイコン 天文学者のpython・音楽・お料理レシピ

python入門講座|pythonを使ってみよう1|(ターミナルから直接操作する方法)[第4回]

ターミナルからpythonをサクッと使えるようになれば、計算機アプリはもう不要です!

Ciao!みなさんこんにちは!このブログでは主に
(1)pythonデータ解析,
(2)DTM音楽作成,
(3)お料理,
(4)博士転職
の4つのトピックについて発信しています。

今回は「アラサーOLのためのpython入門講座」です!
この講座では、プログラミング初心者アラサーOLのMi坊さんに、pythonを学習する上でのアドバイスを行います!
パソコンもプログラミングも初心者だけど、プログラミングができるようになりたい!」という方のためにstep-by-stepで解説していきます。

今日はpythonを実際に使ってみましょう!
pythonを動かす方法はいくつかありますが、今回は最も単純な方法をご紹介します!
環境構築等で操作したターミナル上で直接pythonを実行していきます。
コマンドを一つ一つ入力して実行することになります。
複雑な処理を行うには向いていませんが、簡単な計算ならサクッとできて便利です。

本格的にpythonの学習を始める前に、pythonでどんなことができるのかざっくり掴んでみるのが今回のゴールです!
一つ一つ説明しますので、一緒にやってみましょう!

Kaiko

この記事はこんな人におすすめ

  • 初心者だけどpythonを始めた!
  • とりあえずpythonを使ってみたい!
  • pythonで簡単な計算をしたい!

Abstract | サクッと計算するだけならターミナルからでOK

pythonを動かす最も簡単な方法は、ターミナル上にpythonを立ち上げ、そこにpythonのコマンドを入力して動かすことです。
bashやzshなどのターミナルの操作と同様、1行に1コマンドを入力してエンターで実行します。
実行結果がすぐに確認できるので、簡単な計算をサクッと行いたい時に便利です!
計算機アプリとは違い、計算式を入力できるので少し長い計算でも簡単にできますし、エクセルを起動するよりも速くできます。
簡単な計算をしたいときに使える方法なので、この記事でターミナル上にpythonを使う方法を習得しましょう!



Background | pythonを動かす方法はいくつかある

pythonを使うにはいくつかの方法があります。
主には

  1. ターミナル上で実行する
  2. Jupyter notebookで実行する
  3. スクリプトを書いてから実行する

の3つの方法があります。
ターミナル上で実行する方法は今回紹介するものです。
pythonの環境構築でやったように、ターミナル上にpythonを立ち上げ、ターミナルウィンドウ上にpythonのコマンドを入力して実行します。

Jupyter notebookとは、webブラウザ上にコマンドを入力してpythonのコマンドを実行していくやり方です。
「notebook」とあるように、処理と処理の間に文章で説明を書いたりしてひとつのレポートとして仕上げることができます。
こちらは次回以降でご紹介します。
pythonの習得にはJupyter notebookを使う方法が適しています。

スクリプトとは、一連のコマンドをひとつのテキストファイルにまとめたもので「ソースコード」と呼ばれることもあります。
相互に関係する処理を並べたり、いろいろな分岐をつくったり複雑な処理を実現することができます。
また、一連の処理を残すことができるので、同じ分析を別の入力ファイルに対して行うなど、再現性が必要になるときに重宝します。

pythonの実行方法を目的によって使い分ける

3つの方法には前述のような特徴があるため、私は目的によってこの3つを使い分けています。

  1. サクッと計算するだけ or 関数の挙動を確認するだけ → ターミナル上で実行
  2. やり方をいろいろ試しながら分析をしたい → Jupyter notebookで実行
  3. 複雑な処理をガッツリ組み上げて何度も実行したい → スクリプトを書いて実行

というイメージです。
1→2→3に行くに従って、分析の質と量が増えます。
分析の質と量に応じて使い分けます。



閑話休題 | Google Colaboratory (無料で使えるpython環境)

また、最近知った方法で、Google ColaboratoryというJupyter notebookをクラウド環境上で実行する方法があります(参照: 外部サイト→Goole ColaboratoryのFAQ)。
これはGoogleが主に教育向けに無料で提供しているpython(Jupyter notebook)の実行環境です。
前回の記事「アラサーOL|python環境構築入門(python3.9をM1 Macにインストールしよう!)」でご紹介した環境構築がほぼ不要で簡単にpythonを始められます。

Google Colaboratory 最大のメリット | GPUが無料で使える

簡単に始められる以上に、Google Colaboratoryの強力なメリットがGPUが使えることです。
GPUとはパソコンの頭脳に該当する部分です。
通常のパソコンにはCPUという処理装置が搭載されていて、これがパソコンの頭脳の役割を担っています。
GPUはCPUが立体的に集まったようなとにかくすごい頭脳だと思ってください。

Google Colaboratory、私はまだ使ったことがないのですが使ってみたいです。
そのときはどこかにレポートします!

今回はターミナルからサクッと動かす

今回の記事では、まずはサクッとpythonを動かせるようになることが目的なので、ターミナルから直接動かす方法をご紹介します!
pythonを習得すると、計算機アプリを立ち上げるよりも今回の方法でpythonを使ったほうが早く正確にさっくり計算ができるようになります!
ぜひサクッとpythonを動かせるようになりましょう!



Contents | ターミナルからpythonを直接動かす方法

さっそくターミナルを立ち上げてpythonを使ってみましょう!
Dockのアイコンからターミナルのウィンドウを開いてください。
Dockにターミナルを登録していない方は登録しておきましょう(こちらの記事を参考→「アラサーOL|ターミナル操作入門(pythonを学び始める前に1)」)!
ちなみにターミナルを閉じるときはウィンドウの✗ボタンで閉じるか⌘+Wで閉じればプロセスが終了します。

仮想環境の確認と有効化

ターミナルを起動したら

(base) kaiko ~ %

のように、コマンドラインの先頭に(base)が付いていることを確認してください。
もし付いていなかったら、仮想環境を有効化します。
ターミナルで

conda activate

を実行します。

base以外の仮想環境を使う場合にはそれを有効化します。
前回の記事「アラサーOL|python環境構築入門(python3.9をM1 Macにインストールしよう!)」ではpy38やpy39という名前の仮想環境を作りました。
例えばpy39を有効化したい場合は

conda activate py39

を実行します。
baseに戻りたい場合は

conda activate

を実行します。

ターミナルでのpythonの起動・終了方法

まずはpythonを起動と終了の方法です。

pythonの起動方法 | python

ターミナルで

python

を実行します。
するとpythonが起動し、下図1のようにpythonのversionなどが表示されます。

図1. python起動

コマンドプロンプトの先頭が”>>> “になっていることに注目です。
これが「ターミナルがpython環境に入っている状態」です。
この状態であれば、ターミナルをpythonのコマンドプロンプト(pythonへの入出力を行う装置)として使うことができます。
>>> のあとにコマンドを入力して実行すると、pythonのコマンドとして処理されます。

pythonの終了方法1 | exit()

pythonを終了する方法はいくつかあります。
まずは、pythonのexitコマンドを使って終了する方法です。
pythonのコマンドプロンプトに

exit()

と入力しましょう。
すると下図2のようになります。

図2. exit()でpythonを抜ける

これでpythonが終了し、pythonを抜けてzshのコマンドプロンプトに復帰することができます。
コマンドプロンプトの先頭が”>>>”ではなく”(base) kaiko ~ %”に戻っていることに注目してください。
この状態で入力したコマンドはターミナル(zsh)のコマンドとして処理されます。

pythonの終了方法2 | Cntrl + D

終了方法の2つ目は「Cntrl+D」のショートカットを使う方法です。
まずはpythonを立ち上げてください。
その状態で「Cntrl+D」を押すと、下図3のようになります。

図3. 「Cntrl+D」でpythonを終了する

コマンドプロンプトがzshに戻ってきましたね!

pythonの終了方法3 | ターミナルを閉じる

3つ目はターミナルそのものを閉じる方法です。
いま操作しているターミナルのウィンドウだけを閉じる場合、

のいずれかで行うことができます。
ターミナルウィンドウを複数開いている場合は、いま操作しているものだけが綴じます。

ターミナルを全て終了する場合には、いずれかのターミナルウィンドウが最前面にある状態にして

のどちらかを行います。
これで、全てのターミナルウィンドウが閉じ、「プロセスが終了した状態」になります。
前述のように「Command + W」でウィンドウが閉じただけではプロセスとしては終了しておらずバックグラウンドで生き残っています。
iPhoneで例えると、アプリ使用中にホーム画面に戻ったような状態です。
「Command + Q」では、バックグラウンドも含めて完全に終了します。
iPhoneで例えると、アプリの画面をスワイプアップして終了した状態です。

pythonが起動された状態でターミナルウィンドウを閉じたりターミナルを終了しようとすると、下図4のように確認されます。
これで「終了」を選ぶと、ターミナルごと終了するのでpythonも終了します。

図4. ターミナル終了でpythonを終了するときの確認画面



まずはHello, worldを出力してみよう

では実際にpythonに何かコマンドを投げてみましょう。
まずはpythonを起動し、pythonのコマンドプロンプトに入ります。
コマンドプロンプトの先頭が

>>> 

となっていることを確認してください。

確認したら、

print("Hello, world")

と入力して実行してみましょう。
下図5のように、コマンドを入力した行のすぐ下に「Hello, world」と表示されます。

図5. Hello, world

print関数「print()」の使い方

上記で入力した「print()」の部分をprint関数と呼びます。

pythonの関数

関数とは、何らかの入力に対して何らかの処理を行い、何らかの出力を返す装置です。
入力のことを「引数」や「argument」、「arg」と呼びます。
pythonの関数は「関数名()」という形になっており、()の中に引数を入力します。

print関数の場合は、「文字列」という形式の引数を取り、それをコマンドプロンプト上に表示するという処理を行う関数です。
出力は存在しません。
コマンドプロンプト上への表示が出力と思われがちですがそうではありません。
この表示はただ処理を行なった結果です。

print関数と引数

上のHello, worldの例では、print関数に”Hello, world”という「文字列」という形式の引数として与えています。
pythonでは、ダブルクオーテーション「”」やシングルクオーテーション「’」で囲まれた部分が文字列として認識されます。
シングルクオーテーションでもOKなので、

print('Hello, world')

としても同じ結果が得られます。

ダブルクオーテーションで囲まれた中身は文字列になるので、例えばそこにシングルクオーテーションがあっても、それは文字として認識されます。

print("Hello, 'my' world")

と実行してみましょう。

Hello, 'my' world

と表示されるはずです。

シングルクオーテーションとダブルクオーテーションを入れ替えて試してみてください。
同様の結果が得られるはずです。



簡単な演算をしてみよう

せっかくなので簡単な演算をしてみましょう。
pythonをはじめ多くのプログラミング言語では四則演算やもっと複雑な計算などいろいろな演算ができます。
今回はさわりだけということで

をやってみましょう。
まずはターミナル上でpythonを立ち上げ、pythonのコマンドプロンプトに入ってください。

足し算 | +

足し算は”+”(プラス)演算子を使います。
演算子は英語でoperatorです。白ワインのカクテルではありません。

2 + 3

と入力すれば、5と表示されるはずです。”2″や”3″といった数字や演算子の間には半角スペースを一つ入れるのが基本ですが、入れなくても構いません。
また、print文を使って

print(2+3)

としても同じ結果になります。
ターミナルから直接pythonを操作するとprint文を書かなくても結果が表示されますが、スクリプトで実行する場合などの他の方法だと表示されないのでprint文を書く必要があります。

引き算 | –

引き算は”-“(マイナス)演算子を使います。

2 - 7

とすれば-5と表示されるはずです。

掛け算 | *

掛け算には”*”(アスタリスク)演算子を使います。

3 * 5

を実行すると、15と表示されるはずです。

割り算 | /

割り算には”/”(スラッシュ)演算子を使います。

7 / 5

を実行すると1.4と表示されます。

商の計算 | //

商の計算には”//”(スラッシュ2個)演算子を使います。

13 // 3

を実行すると4と表示されます。

余りの計算 | %

余りの計算には”%”(パーセント)を使います。

13 % 3

を実行すると1と表示されます。

冪乗の計算 | **

冪乗の計算には”**”(アスタリスク2個)を使います。

5**3

とすれば、125が表示されます。
私は習慣的に冪乗ではスペースを開けませんが、

5 ** 3

とスペースを入れても構いません。
ただし、

5 * * 3

のようにアスタリスクの間にスペースを入れるとエラーになります。
“**”で一つの演算子だからです。
「SyntaxError: invalid syntax」と表示されますが、これは文法が間違っているというエラーです。

計算機アプリでやりにくい計算をしてみよう

ターミナル上のpythonでサクッと計算するとき、計算機アプリにはないメリットは計算式を書くことができることです。
さらに「変数」を使うと、特定の値を格納しておいて後で呼び出すことができてさらに便利ですが、今回はそこまでは踏み込まず、至極簡単な例で見てみましょう。

長い四則演算

例えば、1本98円のにんじん、1個58円のじゃがいも、1個38円のたまねぎをそれぞれ1個、5個、3個買うとします。
この計算は

98 * 1 + 58 * 5 + 38 * 3

でできますね。502円です。

カッコを使った計算

他には、カッコを使った計算も可能です。
上手い例が思いつかないので

1 + 2 * (3 + 5)

とやってみましょう。答えは17となって、3+5が先に計算されます。

1 + 2 * 3 + 5

とは異なる結果になります。

ここまでを実行してexit()すると、下図のような入力と出力が得られているはずです。

図6. 簡単な計算の実行例



Discussion | ターミナル上でpythonを実行するデメリット

ターミナル上でpythonを実行する方法のデメリットは、

といったものです。
これらはサクッと簡単にpythonが実行できるというメリットの裏返しでもあります。
ターミナル上でpythonを実行する際には、ターミナル(bashやzsh)でコマンドを実行したときと同様、一行ずつコマンドを入力しては実行します。
実行したいコマンドの結果がすぐに確認できるのでサクッと計算するぐらいなら使いやすい一方で、複数行に渡る長い処理が書きくいといったデメリットが必然的に生じます。

長い処理をするのが面倒

ターミナル上でpythonを実行する方法では、コマンドを一行ずつ「書いては実行、書いては実行」とやっていくので、長い処理を書いて実行するのがかなりめんどくさいです。
例えば、for文を組んで繰り返し処理をするとかif文で分岐処理をする程度でも面倒です。
この程度の処理を行うのであれば、Jupyter notebookを使うかスクリプトを書くほうが良いです。

同じ分析を再現するのが面倒

データサイエンスを始め、プログラミングを使った業務では、

などと、再現性が重要になることがしばしばあります。
ターミナル上でpythonを実行する方法では、所望の処理をいちいち書かなければならないため、同じ処理を明日も明後日もやろうと思ったらその処理をいちいち入力しないといけません。
bashやzsh同様、過去に実行した履歴を「↑」をクリックすることで呼び出すこともできますが、pythonを終了してしまうとこれもできなくなります。

再現性が求められる際には、Jupyter notebookを使うかスクリプトを書くほうが良いです。
特に同じ分析を何度も行う必要がある場合には、スクリプトを書きます。
スクリプトはソースコードとも呼ばれ、一連のコマンドや処理をひとつのテキストファイルにまとめたものです。
bashやzshのターミナル上でコマンドをひとつ実行するだけですべての処理が完了します。
入力となるファイルを変えたりすることもできるので、同じ分析を何回も行う場合に便利です。



Conclusion | まとめ

最後までご覧いただきありがとうございました!
Macのターミナル上でpythonを動かす方法をご紹介しました!

ターミナル上でpythonを動かす方法は、サクッと計算をしたいときや個別の関数の挙動を調べるような場合に重宝します。
pythonを使いこなせば、サクッと計算をしたいような場合に、計算機アプリやエクセルを立ち上げるよりも早く正確に(プログラミングのほうが入力ミスを防ぎやすい)できます。
pythonを習得して素敵なプログラミングライフを手に入れましょう!

以上、「python入門講座|pythonを使ってみよう|(ターミナルから直接操作する方法)」でした!
またお会いしましょう!Ciao!



References | 参考

参考教科書

今回からは以下の教科書を参考にして進めています!より詳しく学びたい方は入手してみてください!

モバイルバージョンを終了