10.変数

プログラムでは入力されたデータを使い回す機能があります。
それが変数という概念です。

変数を用いることで入力したデータを再利用できるようになります。

変数を宣言と値の代入

変数名 = 値

= は代入を表す演算子(代入演算子)
= の左側に右側を代入する。

In [1]:
a = 12345
b = 23456

個数が合えば複数同時に宣言と代入が行える。

In [2]:
a,b,c = 4,5,6
d,e,f = '10','20','30'

変数名に使用できる文字

a - z のアルファベット(大文字と小文字)
0 - 9 までの数字
_ (アンダースコア)

変数名は自分で考えて付けるものなのでなんでも良いですが
中に格納するデータがどんなものかを考えて名称をつけるのが良いでしょう

この講義ではアンダーバーで2つ以上の英単語を用いることを推奨します。
例:
magic_spell_name
attack_point

なお変数名は予約語や組み込み関数名に該当するものでなければ
なんでも付けることができます。

予約語などについては次項で

変数の使い方

In [3]:
# 変数 a に 数値の12345 を代入する
a = 12345
# 変数 b に 数値の23456 を代入する
b = 23456
# 変数 a と b を足した結果を出力する
print(a + b)
35801
In [4]:
# 変数c にa + b の結果を代入する
c = a+b
# 結果
print(c)
35801

同じ変数名に値を代入すると上書きされる。

In [5]:
# 変数 a に数値の123を代入
a = 123
print(a)

# 変数 a に数値の234を代入
a = 234
print(a)
123
234
In [6]:
a,b = 12345,23456
print(a)
print(b)

# a + b の結果を再度 a に代入する(上書き)
a = a+b
print(a)
12345
23456
35801

プログラムではデータの形も重要!!

文字と数値は一緒に計算できない

In [7]:
a = '文字'
b = 1
print(a + b)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-7-2c4cb487c08a> in <module>()
      1 a = '文字'
      2 b = 1
----> 3 print(a + b)

TypeError: Can't convert 'int' object to str implicitly

TypeError : 変数 a と b のデータの形が違うので計算できない(変換できない)という意味合いのエラー

数値の型と文字の型ではデータの形が違うため一緒にすることができない

データの形の確認

type 関数を使って変数のデータ型を確認する

type(変数名)

In [8]:
# 変数aとcは数値、bは文字列を代入
a,b,c = 1 , '3' , 4
print(type(a))
print(type(b))
print(type(c))
<class 'int'>
<class 'str'>
<class 'int'>

int は整数
str は文字列を表す

変数に格納したもののことを「オブジェクト」と呼んだりもします。