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

python入門講座 | 変数を使いこなそう1(変数の定義方法と基本ルール)[第12回]

変数を使いこなして速く正確にプログラミングできるようになりましょう!

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

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

今日はPythonの変数について解説します!
変数を使うことにより、ある値を一度定義するだけでプログラムの中で何度もその値を参照することができます。
まずは変数の宣言(値の定義)方法といくつかの基本ルールを覚えましょう!

Kaiko

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

  • 初心者だけどpythonを始めた!
  • pythonの基本的な使い方を知りたい!
  • 独学で学んだpythonの知識を整理したい!

Abstract | 変数を使いこなして速く正確なプログラミングを

プログラミングでは変数を使うことで速く正確なコーディングができるようになります。
値を一度定義(代入)しておけば、その値を使って計算するときなどにいつでも、変数を参照するだけで値を使うことができます。
値を変更したいときには変数を定義している一箇所だけ変更すれば他には変更する必要がありません。
計算の部分で値をベタ打ちにしていたら、その部分も書き換えないといけませんが、変数を使っておけば計算部分の変更は不要です。
変更箇所が最低限で済むので間違いも少なくなります。

また、変数の名前はわかりやすく付ける必要があります。
はじめはなかなか難しいですが、コードを書いているうちに良い名前を付けられるようになります。
このあたりは慣れとセンスなのでたくさんコードを書きましょう!



Method | 変数の定義方法と基本ルール

今回は初歩ということで、コードのなかでどのように変数を定義し、どのようにして参照するのか(利用するのか)ということからやっていきます。
また、変数を定義する際の基本ルールについてもお話します。

変数の定義方法

変数は

var = 123

という形で定義(宣言とも言う)します。上記のように書くことで「var」という名前の変数が定義され、「123」という整数値が代入されます。
このような状態を「変数varに値123が格納されている」などと言います。本講座でも時々出てくる表現です。
一度変数を定義すると、以降は「var」という変数を参照すれば123という数字を取り出すことができます。

プログラミングでは「=(イコール記号)」は代入演算子、すなわち「=」の左側に書かれた変数に右側に書かれた値を代入する演算子となります。
等号ではないので注意してください。ちなみに等号は「==(イコール記号2つ)」です。今後if文などを扱う際に解説します。

変数の参照方法

変数の値を参照する際には

print(var)

のようにします。
上記のように書くと、「var」に格納された「123」という値が出力されます。
“var”という文字列を出力したい場合にはダブルクオートかシングルクオートで囲います。

print("var") #"var" is printed instead of 123

変数の削除方法

一度定義した変数を削除する場合には

del var

とします。
簡単なプログラムを書く際には使うことはほとんどありませんが、扱うデータ量が大きい場合などはコンピュータのメモリ節約のために使うことがあります。
変数はメモリ(パソコン上の一時記憶領域)に保存されます。大きなデータを扱うとメモリの使用量も増えます。メモリの空きが少なくなると動作が極端に遅くなるため、大きなデータを扱う場合には不要な変数を削除することが必要です。ただ、入門講座ではそのようなデータを扱うことはほとんどありません。

他に変数の削除が必要になるのは、禁止されている文字列で変数名を定義してしまった場合です。
これについては以下で説明します。



変数を定義するときのルール

変数を定義する際は必ず守らなければならないルール(守らないとエラーになる)と様式上守るべきルールがあります。

守らなければならないルール

必ず守らなければならないルールは

  1. 変数名として使える文字は3種類
    1. アルファベット(大文字、小文字)
    2. 数字
    3. アンダースコア(_)
  2. 変数名を数字で始めることはできない
  3. 予約語は使用禁止
    例: if, for, whileなど
  4. 関数名と重複する文字列も使用禁止
    例: print, listなど

の4つです。
上記のうち1と2に違反すると即エラーとなります。
3と4では一旦はエラーなく処理ができますが、後々if文を使うときやprint関数を使うときにエラーになります。最初はエラーが出ないので見過ごしてしまうかもしれませんが、この類のエラーは厄介なのでルール3と4も守りましょう。

誤って予約語や関数名と重複する変数名を付けてしまったときにはdelコマンドで削除しましょう。
スクリプトを書いているときには変数名を変更して再実行すべきですが、Jupyter Notebookやコマンドプロンプトでインタラクティブに実行しているときには一度定義された変数は消えないので

守ることが推奨されるルール(様式上守るべきルール)

エラーにはならないけれども、様式上守るべきルールとしては、以前の記事「python入門講座 | pythonを使ってみよう3-4(pythonスクリプトのルールとフォーマットの基礎知識)」で取り上げたPEP-8に記載されたものです。
PEP–8とは読みやすいコードを書くためのPython公式ガイドラインです。
変数の名前をつけるときには以下のルールを守ることが推奨されています。

  1. 意味がわかる変数名にする
  2. 通常は小文字アルファベットとアンダースコアを使う
  3. 意味のない変数は一文字変数としても良い
  4. 一文字変数ではl(小文字エル)、o(小文字・大文字オー)、I(アイ)などの紛らわしいものは避ける

例えば、

my_pet = "cat"

はOKですが、

t = "cat"

は上記1に違反しているので非推奨ということです。

的確な変数名をつけるにはセンスが必要です。
慣れるまではわかりやすい変数名をつけるのが難しいかもしれません。
たくさんコードを書いてセンスを磨きましょう!



Result | 実際にやってみよう!

さて実際にやってみましょう!
今回はJupyter Notebookでコーディングしましょう!

準備 | python notebookの新規作成

練習用ディレクトリに移動してJupyter Notebookを起動しましょう。
練習用ディレクトリをまだ準備していない場合はこちらの記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」に従ってホーム直下に「python_practice」というディレクトリを作りましょう。
いつものようにターミナルから行きます。ターミナルを起動し、ホーム直下のpython練習用ディレクトリに移動します。

cd ~/python_practice

anacondaの仮想環境が有効化されている(コマンドプロンプトの先頭に(base)などの仮想環境名が表示されている)ことを確認してJupyter Notebookを起動します。

jupyter notebook

仮想環境の有効化方法はこちらの記事「python入門講座|python環境構築(python3.9をM1 Macにインストールしよう!)」を参照してください。

ブラウザでJupyter Notebookが立ち上がるので、「practice_variable_definition」というpython3のnotebookを新規で開きましょう(図1)。詳しいやり方はこちらの記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」の「Python Notebookの起動」という章を見てください。

図1. python3のnotebookを新規作成

Python notebookが開いたらファイル名を付けましょう。
左上のファイルタブ→リネームで名前をつけることができます。
practice_variable_definitionとしてRenameボタンをクリックします。

変数の定義と参照

まずは変数を定義して参照する操作をしてみます。
わかりやすいように最初のセルをMarkdownセルに変更し、

# 変数の定義と参照

と入力して実行しておきましょう。
Markdownセルへの変更方法や記入方法については過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」の「Markdownセルを使ってみよう」の章を参照してください。

次のコードセルに

# definition
my_pet = "cat"
# print the variable
print(my_pet)

と入力して実行してみましょう。
コードセルの直下に「cat」と出力されます。
2行目でmy_petという変数が定義され、catという文字列が代入されています。
4行目でmy_petを参照し表示しています。変数に格納されているcatという文字列が表示されます。

ルール違反を試してみる

変数を定義するときのルールを違反してみて結果を見てみましょう。
例によって、さきほどの次のセルをMarkdownセルにして「# ルール違反の例」と書いて実行しておきましょう。
その下のコードセルに以下のように書いて実行してみてください。

# this is illegal definition of a variable
print = "illegal definition"
# print the variable without print function
print

‘illegal definition’と表示されるはずです。
1行目でprintという変数にillegal definitionという文字列を格納しています。
2行目はprint文を使わずに変数を直書きすることで値が表示されるようにしています。

次にこの変数をプリント文で参照してみましょう。

# print function is not able to be called
print(print)

と実行してください。以下のようなエラーが表示されるはずです。

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-2223c92d0779> in <module>
----> 1 print(print)

TypeError: 'str' object is not callable

このエラーは文字列(str)型の変数は関数として呼び出すこと(call)ができないという意味です。
printはprint関数を表す予約語ですが、printという名前の変数を定義して上書きしてしまいました。
この変数は文字列型なので「関数として呼べないよ」というエラーです。

上書きを解消するにはdelで変数を消去します。

# delete the variable
del print
print("illegal variable deleted")

と実行してみましょう。「illegal variable deleted」と表示されます。
2行目でprintという変数を消去しています。
そのおかげで3行目でprint関数が使えるようになりました。

気づいた方もいるかもしれませんが、Jupyter Notebookでは予約後が通常の文字とは別の色で表示されます。Atomエディタなどのプログラミングエディタでも同様です。
Jupyter Notebookでは「print = “illegal definition”」などとしたときの「print」の文字が緑色になっているはずです。
こうなっていたら予約語だから変数名にはできないなと気づきましょう。



練習問題

練習問題をやってみましょう!
以下の処理をするコードを書いてみてください!

  1. 変数my_hobbyに「programming」を代入してください
  2. print関数で「my_hobby」という文字列を出力してください
  3. print関数でmy_hobbyの中身を出力してください
  4. 変数nに1+2の計算結果を代入してください
  5. 変数nをprint関数で出力してください。

回答例

できたら回答例を確認しましょう!下の画面をスクロールすると回答例が見られます!

練習問題おつかれさまでした!
今日はここまでです。Python Notebookを終了方法がわからなければ過去記事「python入門講座|pythonを使ってみよう2(Jupyter Notebookを使う方法)」の「Python Notebookの起動・終了方法」の章を参照してください!



Conclusion | まとめ

最後までご覧いただきありがとうございました!
変数の定義と参照の方法を解説しました!

前回までとは打って変わって入門講座的な内容になりました!
変数を使いこなすことで早く正確にプログラミングができるようになります。
これからも練習して使いこなせるようになりましょう!

以上「python入門講座 | 変数を使いこなそう1(変数の定義方法と基本ルール)」でした!
またお会いしましょう!Ciao!



References | 参考

参考教科書

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

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