見出し画像

Python - 変数について

このnoteでは、プログラミング初心者にむけて、Python変数に関する内容を、「変数とは何か」〜「実際の用途」にかけて解説しています。

このnoteを読んでわかる・できること
・変数とはなにか
・変数の使い方・ルール
・変数のデータ型とは何か
・変数へのデータの格納・変数に格納した値の確認

Pythonに限らず、プログラミング経験のない方でも理解できるように書いてますので、これからPythonのプログラミング学習を始めるようという方も、是非ご覧ください。

また、noteの後半では、学んだことを実際に動かして、何がどうなっているのか確認・理解するためのサンプルコードを掲載しています。

プログラミングは実際に動かすことがとても重要で、書かれているものを読むだけの学習に比べ、習得するスピードもとても早いです。

是非内容を読むだけではなく、実際に動かしてみてください。

変数とは

アセット 5

変数とはいろいろな形の値を格納する箱です。

箱の中には数値(100)・文字列(りんご)などといった、いろいろな形の値を格納することができます。

変数は、左側に[変数名]を記載し、イコール [ = ] を挟んで、右側に[値]を記載することで自動的に作成されます。

# 変数 a のなかに数値を格納する例
a = 100

# 変数 b のなかに文字列を格納する例
b = 'りんご'


格納した値の確認

変数へ格納した値は、 print() という命令を行うことで、かんたんに画面表示することができます。

以下のサンプルは、変数 [ a, b ] に格納した値をprint()で画面へ出力したものです。

# 変数 a の値を表示
>> print(a)
100

# 変数 b の値を表示
>> print(b)
りんご

printのカッコ() 内に、作成した [変数名]を指定することで、指定した変数に格納した値を出力できることがわかります。


変数の用途

アセット 6

では、変数とはどういったときに使うのでしょうか。

変数の用途は色々とありますが、特に多いのはプログラムの記述量を減らすことです。

具体的にどのように記述量を減らすことができるのか、1〜10の数字を順番に画面出力するプログラムを、変数を使わない・使う例でそれぞれ解説します。


例1:変数を使わない場合
変数を使わない場合、数字を出力する回数分(今回の場合は10回)の命令をを記載します。

# 変数を使わずに書いた例
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)


例2:変数を使う場合
変数を使う場合、だらだらと同じ内容の命令を書いたりしません。

以下の例では、[ for ] という指定する回数だけ処理を繰り返し実行させる命令を使って1〜10の数字を順番に出力しています。

# 変数を使って書いた例
for num in range(10):
    print(num)


2つのプログラムの実行結果は同じですが、記述量に大きく差があることがわかります。

変数を上手に使うことで、記述量を減らし、効率的にプログラムを作成することができるようになります。

順を追って効率的なプログラミング方法を習得し、上手に使えるようになりましょう。

なお、説明の中で出てきたプログラムは、今覚える必要ありません。

”変数を使うとこんなことができるんだ”というところだけ、覚えておいてください。


変数の命名ルール

アセット 7

既に説明している通り、変数は左側に [ 変数名 ] を記載し、イコール [ = ] を挟んで、右側に [ 値 ] を記載することで作成されます。

しかし、 [ 変数名 ] には、どんな値でも設定できるわけではありません。

Pythonでは変数の命名ルールが存在し、変数を作成するときは以下に記載するルールを守らなければいけません。


1. 先頭に数字は使えない
変数名先頭に数字を使うことはできません。


2. 予約として定義されている文字は使えない
予約後として定義されている以下の文字は、変数名として利用できません。
class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, passbreak, raise, returnNone, tryTrue, whileand, withas, yieldassert


3. 変数名に利用可能な文字
利用可能な文字列は以下のみです。
・小文字の英字(a-z)
・大文字の英字(A-Z)
・数字(0-9)
・アンダースコア( _ )


先頭のアンダースコア [ _ ]
記載していませんが、変数名の先頭にアンダースコア [ _ ] を利用した場合、Pythonでは特別な意味を持つことになります。
詳しい内容は、別のnoteで記載しますので、今は使わないようにしてください。


データ型とは

アセット 8

変数には型が存在し、それを ”データ型” または ”型(かた)” と呼びます。

型とは、変数に格納されているデータの種類(データタイプ)のことで、変数を扱う場合は、この型を意識する必要があります。

Pythonで多く利用される型の種類
・str型:文字列
・int型:整数
・float型:浮動小数点数
・bool型:真偽値
・list型:リスト
・tuple型:タプル
・dict型:辞書

このnoteではデータ型に関する詳しい説明は行いませんが、どのようなデータを指すのか理解できるよう、以下に各データ型の値を、変数に格納するサンプルを記載します。

# str型 (文字列)
a = '文字列'

# int型 (整数)
b = 1

# float型 (浮動小数点数)
c = 0.1

# bool型(真偽値)
d = True

# list型(リスト)
e = ["January", "February", "March"]

# tuple型(タプル)
f = ("January", "February", "March")

# dict型(辞書)
g = {"1": "January","2": "February", "3":"March"}


型を意識する必要がある理由
プログラムでは、型の異なるデータを使って計算や処理を行うことは原則できません。

例えば、以下のような「makioの年齢は30才です。」と文字列を出力するプログラムを実行した場合、Pythonではエラーが返され正常に動作しません。

>> # str型(文字列)の変数を作成
>> name = 'makio'

>> # int型(整数)の変数を作成
>> age = 30

>> # 変数[name][age]を繋げた文字列を出力
>> print(name + 'の年齢は' + age + '才です。')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

このエラーは、int型である [ age ] を、str型(文字列型)として、文字結合行おうとしているため起きています。

このようなエラーを回避するため、変数を使って処理を作成する場合は、型を意識するように注意してください。

なお、このエラーの場合は、変数の型を一時的に変換(int型→str型)する命令を加えることで回避することができます。

>> # 変数[name]と型変換(int → str)した[age]を繋げた文字列を出力
>> print(name + 'の年齢は' + str(age) + '才です。')
makioの年齢は30才です。​


実際にやってみよう

アセット 11

それでは、実際に変数を作成し、変数にどのような値が格納されているか確認する簡単なプログラムを実際に作って動かしてみましょう。

今回のプログラムは、とても簡単的なものなので、コンソールにて実行してください。

* [ >> ] から始まる行の内容を実際に打ち込んで実行してください。
* [ # ] から始まる行は、コメント行です。

動かす処理の内容
・ 値を格納
・ 値を確認
・ データ型を確認
# str型 (文字列)
>> a = '文字列'
>> print(a, type(a))
<class 'str'>

# int型 (整数)
>> b = 1

# float型 (浮動小数点数型)
>> c = 0.1

# bool型(真偽値)
>> d = True

# list型(リスト)
>> e = ["January", "February", "March"]

# tuple型(タプル)
>> f = ("January", "February", "March")

# dict型(辞書)
>> g = {"1": "January","2": "February", "3":"March"}


おわり

いかがだったでしょうか。

不明な用語・処理はありませんでしたか?

不明な内容に関しては、Googleなどの検索エンジンを使って、一つ一つ調べてみてください。

最初は大変ですが、色々なサイトを渡って調べる事で、いつのまにか理解できるようになっていくはずです。

わからない事を、積極的に調べる姿勢は非常に重要です。

是非、自分で調べる癖をつけ、調査・理解するスキルをあげるよう努力しましょう。



おわり


この記事が気に入ったらサポートをしてみませんか?