Python

変数と型

Pythonであつかうものは、

数字、文字などさまざまです。 これらは変数に入れて扱うことができます。

anacondaをインストールした状態で、

ターミナルまたはコマンドプロンプトでipythonと入力し、スタートします。

programming@programmingnoMacBook-Air ~ % ipython
Python 3.7.6 (default, Jan 8 2020, 13:42:34)
Type ‘copyright’, ‘credits’ or ‘license’ for more information
IPython 7.12.0 — An enhanced Interactive Python. Type ‘?’ for help.

In [1]:

変数に数字や文字を入れる

aという記号に123という数字を入れます。

In [1]: a = 123

aと入力すると さきほどいれた123が出力されます。

In [3]: a
Out[3]: 123

bには文字xyzを入れます。
文字は’ ‘でくくります。

In [4]: b = ‘xyz’

bと入力すると、さきほどいれたxyzが出力されます。

このように、数字や文字をいれた、このaやbを
「変数」
と呼びます。

In [5]: b
Out[5]: ‘xyz’

ためしに、入力していない記号、適当にcなどと指定して呼び出してみます。

In [6]: c
—————————————————————————
NameError Traceback (most recent call last)
in
—-> 1 c

NameError: name ‘c’ is not defined

「そんな変数ないよ。」
と帰ってきます。

変数の型

このaに入れた数字と、bに入れた文字は違う型になります。
型というのは、「整数」「文字」のように入っているものの性質を示す言葉です。

type(変数) で変数の型がわかります。

In [7]: type(a)
Out[7]: int #整数型

In [8]: type(b)
Out[8]: str #文字列型

intは整数型
strは文字列型
を表します。

これらの型によってできることが違います。
例えば、

cに456という数字をいれると

In [9]: c = 456

In [10]: type(c)
Out[10]: int

こちらも整数型になります。

整数型どうしは計算ができます

In [11]: c – a
Out[11]: 333

In [12]: a + c
Out[12]: 579

型の違うa(整数型)とb(文字列型)を足すとエラーになります。

In [14]: a + b
—————————————————————————
TypeError Traceback (most recent call last)
in
—-> 1 a + b

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

「int(整数型)」と「str(文字列)」は足せないよ
と言われてしまいます。

注意 数字でも’ ‘で囲むと文字列型になる

注意すべきは、見た目が数字でも’ ‘で囲むと文字列型strとなり、
文字列型としての性質を持ちます。
dに’123’を入れます。

In [15]: d = ‘123’

In [16]: d
Out[16]: ‘123’

In [17]: type(d)
Out[17]: str

ここで文字列どうしには足し算 「 + 」が使用できます。

In [18]: b + d
Out[18]: ‘xyz123’

一方で、整数123と文字列’123’の足し算はエラーとなります。

In [19]: a + d
—————————————————————————
TypeError Traceback (most recent call last)
in
—-> 1 a + d

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

補足 使えない変数名

このページでは変数をa, b, c, dとして使用しましたが、ルールで使用できる変数の名前が決まっています。

使用できる変数名
  • a-z, A-Zのアルファベット, 0-9の数字, 漢字やひらがな
  • 数字で始まる名前は使えない
  • _以外の記号は使えない、スペースも使えない
  • 予約語(もともと使用用途が決まっている単語)は使えない

これらを踏まえて私は

  • _は使えるが最初の文字には使わない
  • よく使用する関数名・モジュール名は使用しない
  • 関数内では大文字は使わない

としています。
要は

変数はアルファベットで始まるわかりやすい英単語(スペースなし)

というわけです。

身長なら height1, height2とか height_1, height_2
体重なら weight1, weight2や、weight_1, weight_2

といった具合ですね。

Pythonの予約語について

予約語というのはpythonであらかじめ使用が決められている単語です。
for, ifなどです。
pythonのインタープリタで
import keyword
print(keyword.kwlist)
で出力できます。

import keyword
print(keyword.kwlist)

[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

これらの言葉を変数に指定するとエラーになります。

In [11]: for = 3
File “”, line 1
for = 3
^
SyntaxError: invalid syntax

「文法的におかしいよ」
と返ってきます。

 

数式を扱う場合、意外とやってしまいがちなのが”lambda”です。 ラムダ関数という機能があるのですが、知らずにギリシャ文字を変数にしていくとエラーになります。

In [15]: alpha = 1

In [16]: omega = 2

In [17]: lambda = 3
File “”, line 1
lambda = 3
^
SyntaxError: invalid syntax

こんな感じです。

このページのまとめ
  • 変数には数字や文字、いろいろなものが入る
  • 変数には型があり、type(変数)で確認できる
  • 型によってできる事が決まっている