コンテンツにスキップ

変数

次のようなコードを書いて色々な変数を出力してみましょう。

#!/usr/bin/env python


def main():
    x = 10      # 変数の定義
    print(x)


if __name__ == '__main__':
    main()

数値型

整数 int

x = 10

浮動小数点 float

x = 3.14

数値演算

数値に対しては四則演算ができます。

# 加算
total = 5 + 10

# 減算
difference = 95.5 - 4.3

# 乗算
product = 4 * 30

# 除算
division = 56.7 / 32.2

# 商
quotient = 62 // 12

# 剰余
remainder = 43 % 5

整数 / 整数 の結果

整数に対する / は Python 2 系と 3 系では意味が変わります。

バージョン 挙動 5 / 2 = ?
2.x.x 2
3.x.x 除算 2.5

真偽値 bool

真偽値を扱うための型です。

x = True
y = False

文字列 str

x = 'Hello, World!'
y = '日本語'

f-string

文字列の先頭に f を付けると文字列内に変数や式の埋め込みができるようになります。

x = 10
s1 = f'The value of x is {x}'           # 'The value of x is 10'
s2 = f'The value of x * x is {x * x}'   # 'The value of x * x is 100'

f-string を使わなくても次のようにも書けます。

s1 = 'The value of x is {}'.format(x)
s2 = 'The value of x * x is {}'.format(x * x)

f-string は '...'.format() のシンプルな書き方を提供する機能です。

バイト byte

バイト列を扱う型です。

x = b'0xDEADBEEF'

コレクション型

コレクション型は複数の値をまとめて扱える型の総称です。

リスト list

配列を扱うための型です。リストの各要素は必ずしも同じ型である必要はありません。

x = [0, 1, 2, 3, 4]
y = [10, 3.14, 'Hello, World!']

要素の末尾に , が入っていても構文として正しいです。

 x = [
    10,
    3.14,
    'Hello, World!',    # OK
]

要素の追加は次のようにします。

x.append(100)

また要素参照は次のようにします。

x = [10, 3.14, 'Hello, World!']

x[0]    # 10
x[1]    # 3.14
x[2]    # 'Hello, World!'

添字には負の数も指定できます。負の数を指定した場合は末尾の要素から参照されます。

x = [10, 3.14, 'Hello, World!']

x[-1]    # 'Hello, World!'
x[-2]    # 3.14
x[-3]    # 10

要素が空のリストを作る場合は x = [] とします。

タプル tuple

リストとよく似た扱いができる型ですが、タプルは要素の変更も追加もできません。

x = (0, 1, 2, 3, 4)
y = (10, 3.14, 'Hello, World!')

要素参照はリストと同じようにしてできます。() はただの飾りであり、必須ではありません。タプルになるかどうかは , が含まれているかどうかで決まります。

x = 10, 3.14, 'Hello, World!'   # 3 要素のタプル
y = 20,                         # 1 要素のタプル

ただし空のタプルを作りたいときは () を使います。

x = ()

Note

要素の変更が必要ない場合はリストよりタプルを使う方が安全です。

アンパック代入

リストやタプルの要素を複数の変数に同時に代入する構文を アンパック代入 といいます。

x = (10, 3.14, 'Hello, World!')
a, b, c = x     # a: 10, b: 3.14, c: 'Hello, World!'

代入元と代入先の要素数は一致している必要があります。

x = [0, 1, 2, 3, 4]
a, b, c = x     # エラー

しかし代入先の変数に * を付けておくと、その変数はリスト型になるため、要素数が一致しなくてもアンパック代入ができるようになります。

x = [0, 1, 2, 3, 4]
a, b, *c = x     # a: 0, b: 1, c: [2, 3, 4]

辞書 dict

キーに対する値を管理するための型です。

x = {'name': 'John Doe', 'age': 30}

x['name']   # 'John Doe'
x['age']    # 30

要素が空の辞書を作る場合は x = {} とします。

集合 set

重複を取り除いて複数の要素を扱うための型です。

x = {0, 1, 2, 2, 3, 4, 4}   # {0, 1, 2, 3, 4}

set() を使うとリストやタプルから集合を作ることができます。

x = set([1, 1, 2, 3, 4, 4])                 # {1, 2, 3, 4}
y = set(('x', 'x', 3.14, [1, 2], [1, 2]))   # {'x', 3.14, [1, 2]}

空の集合を作る場合は x = set() とします。x = {} としても空の辞書となるので注意してください。

None

変数に None というキーワードを代入すると、その変数はどの型にも属さない変数になります。

x = None

変数は用意したいけど、どのような値を入れるかは後で決めたいといったケースでは None が使用されます。

定数

Python には定数の概念がありません。しかし、書き換えを想定しない変数は大文字で書いて定数であることを示すというルールがあります。

PI = 3.14