Pythonに限らずプログラミングでは変数をうまく使いこなす必要があります。そこで、ここでは変数とは何かから、Pythonでの変数の定義(宣言)の方法と、変数の命名規則について詳しく解説します。
ぜひお役に立てていただければと思います。
1. Pythonの変数とは
Pythonにおける変数とは簡単にいうと「あるデータの名前」です。Pythonの学習を始める時、ほとんどの方は、数値(整数や浮動小数点数)や文字列を最初に学んだと思います。その数値や文字列が「データ」です。そして、そのデータにつけた名前が「変数」です。
ちょうど下図のように、特定のデータが入った箱に名前をつけるようなものです。
左の箱には、「これは文字列です」という文字列データが入っています。そしてこの箱に「text」というラベルを貼りました。右の箱には、「100」という整数データが入っています。そして、この箱には「number」というラベルを貼りました。このように、あるデータが入っている箱につけた名前(ラベル)が変数です。
こうすることで、そのデータを使いたい時に、その変数を言えば、すぐに扱えるようになるのです。
実際に例を見ていきましょう。
2. Pythonの変数にデータを代入する(変数宣言/定義)
Pythonでは = を使って、データに変数名をつけます。なお、変数名をつけることを「変数宣言や変数定義」といいます。
次のコードをご覧ください。
'''変数を作ってみましょう。'''
text = 'これは文字列です。' #textという変数に文字列データを代入しています。
'''確認してみましょう'''
text #変数textの中身を確認します。
このように、= の左側に変数名を、右側にその変数に入れたいデータを書きます。そして、変数にデータを入れることを「代入する」といいます。この場合は、「textという変数に、’これは文字列です。’というデータを代入する」といいます。
次に、text と書いています。Pythonでは変数名を書くと、その中身を出力してくれます。実行してみると、textに代入した ‘これは文字列です。’ というデータが表示されていますね。
文字列以外のデータの場合でも、やりかたは同じです。次のコードは整数データを変数numに代入しています。
'''変数を作ってみましょう'''
num = 100 #num という変数に数値データを代入しています。
'''確認してみましょう。'''
num #変数numの中身を確認します。
なお変数に入れたデータを出力するさまざまな方法を、『Pythonのprintで変数の中身を出力するいろいろな方法』で解説しているので、ぜひ併せてご覧ください。
ちなみに、他のプログラミング言語、例えばJavaだと、変数を定義する時、次のようにその変数に入るデータの型を宣言する必要があります。
'''整数(int)型の変数に値を代入する場合'''
int num; // 整数型の変数numを宣言
num = 100; // 変数cに100を代入
'''文字列型の変数に値を代入する場合'''
str text; // 文字列(str)型の変数textを宣言
text = "これは文字列です。"; // 変数cに100を代入
Pythonでは、変数の型を宣言する必要はなく、言語によって自動的に判別されます。見比べてみると、Pythonのコードの方が、はるかにシンプルで見やすいですね。
こうした点も、Pythonがプログラム初心者におすすめな理由の一つです。
3. Pythonの変数の命名規則
最後に変数名の名付け方のルールについて解説します。
Pythonの変数には命名規則があります。別に命名規則に沿っていなくてもコードは動きます。それでは、なぜ、これが重要なのでしょうか。
それは、あなた以外の他のプログラマが、一緒に仕事をするのがずっと楽になるからです。また命名規則を守ることで、将来的に、コードの改装などの必要が出てきたときに、その時間と手間を省くことができます。
Pythonでは場面に応じていくつかの命名規則のスタイルがあります。それが以下です。
- 単語の先頭を大文字でつなぐ:クラス名で使われる。
- 先頭の単語は小文字で始まり、続く単語は大文字:古いバージョンのメソッド名で使われている。メソッド名は今は小文字だけで書くのが通則だが、これを使用している開発者コミュニティも大きいのでどちらを使用するかはライブラリに従う。
- 大文字とアンダースコア:大文字で書き、単語の間はアンダースコアでつなぐ。定数名(グローバル変数名)で使われる。
- 小文字または小文字とアンダースコア:小文字で書く。複数の単語がある場合は全て小文字で書き、単語の間をアンダースコアでつなぐ。変数名、関数名、メソッド名、プロパティ名で使われる。
- 先頭か最後をアンダースコアにする:特殊メソッドで使われている。
この中で、Pythonの変数名は、小文字または小文字とアンダースコアでつけるのが慣習です。同時に、次の3つの点にも注意しましょう。
- 変数名の一文字目には数字は使えない。
- +, -, /, %, (, ), # のような演算子や記号は使えない。
- and, as, breakなどの予約語は使えない。
予約語とは、Pythonの中であらかじめ使われている名前です。次のものは変数名として使うことはできません。
False | class | finally | is | return |
None | continue | for | lambda | try |
True | def | from | nonlocal | while |
and | del | global | not | with |
as | elif | if | or | yield |
assert | else | import | pass | break |
except | in | raise |
また、変数名は短く書くよりも、意図をわかりやすく表現するほうが重要です。省略形の変数名をつけたことで、その変数の意図が曖昧になったと感じるなら、完全な単語を使いましょう。例えばaやbではなくtextやnumとしましょう。
以下にいくつか例を書いておきます。
'''Pythonの変数名の命名規則'''
#小文字または小文字+アンダースコアを使います。
text = 'これは文字列です。'
text1 = 'これは文字列1です。'
text_a = 'これは文字列aです。'
num = 100
num_a = 10000
num_b = 0.0001
#小文字でも次のものは何を表しているか分かりません。
z = 'これは文字列です'
abc = 100
#変数名にこれらは使いません。
TEXT = 'これは文字列です。'
TEXT_ONE = 'これは文字列です。'
TextOne = 'これは文字列です。'
textOne = 'これは文字列です。'
#予約語と同じ変数名は使えません。
for = 'これは文字列です。'
def = 1
#一文字目に数字は使えません
1text = 'これは文字列です。'
#演算子や記号は使えません。
text&a = 'これは文字列です。'#NG
num+ = 100
プログラミングは、コードの書き方にその人の腕が反映されます。こうしたことをしっかりと守れて書けているかどうかも、プログラマとして認められる上で非常に重要なので、おろそかにしないように心がけましょう。
コメント