データ型

組み込み型

https://docs.python.org/ja/3/library/stdtypes.html

  • int
    • bool
      • True == 1
      • False == 0

参考:

真偽値

https://docs.python.org/ja/3/library/stdtypes.html?#truth-value-testing

  • オブジェクトはデフォルトでは真
  • 次の場合は偽:
    • __bool__() メソッドが False を返す
    • __len__() メソッドが 0 を返す

偽と判定されるもの:

  • None, False
  • 数値型のゼロ: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空のシーケンス: '', (), [], {}, set(), range(0)

Tips:

  • 組み込み関数 bool() を使うと他の型のオブジェクトを True or False に変換できる

参考:

シーケンス型 - list, tuple, range

ミュータブルなものとイミュータブルなものがある。tupleオブジェクトはイミュータブルらしい。

共通の演算:

  • len(s) … 長さ

ミュータブル

listオブジェクトとか。

演算:

  • s.append(x) … 要素追加

参考:

テキストシーケンス型 - str

https://docs.python.org/ja/3/library/stdtypes.html#text-sequence-type-str

strクラスのオブジェクト、即ち文字列。

See also:

スライス - 部分文字列

Examples:

s = "abcdef"
s[1:3] #=> "bc"

参考:

マッピング型 - dict

https://docs.python.org/ja/3/library/stdtypes.html?highlight=dict#mapping-types-dict

ミュータブルなオブジェクト。
hashableな値を任意のオブジェクトに対応付ける。

SYNOPSIS:

# 生成
d = {'foo': 1, 'bar': 'BAR', 'baz': {'x': True}}

# 演算
len(d)
d[key]
d[key] = value
del d[key]
key in d
key not in d
iter(d)
clear() # 全てのエントリを削除
copy() # shallow copy
get(key[, default])

ループ処理

Examples:

d = {'key1': 1, 'key2': 2, 'key3': 3}

for key in d:
  print(key)

for key in d.keys():
  print(key)

for val in d.values():
  print(val)

for key, val in d.items():
  print(key, val)

# タプル
for tup in d.items():
  print(tup) #=> ('key1', 1)

参考:

ヌル - None

None オブジェクト

バイトオブジェクト - bytes, bytearray

https://docs.python.org/ja/3/library/stdtypes.html#bytes-objects

  • bytes … 不変型。リテラル: b'...'
  • bytearray … 可変型。リテラル構文はないので、コンストラクタで生成する

replace

https://docs.python.org/ja/3/library/stdtypes.html#bytes.replace

bytes.replace(old, new[, count])
bytearray.replace(old, new[, count])

oldをnewにすべて置換する。countがある場合、先頭からcount個数分だけ置換する。

型ヒント

https://docs.python.org/ja/3/library/typing.html

Python 3.5から使えるようになったようだ。
実行時には影響を与えないそうだ。

参考: Pythonの型ヒント、UnionとTypeVarの違いを理解する | DevelopersIO

Union

いずれかの型にマッチすればOKとする型ヒント。

Union[X,Y] ならば、 X または Y の型にマッチすればOK。

Python 3.7からは X | Y と書けるようになった。
See https://docs.python.org/ja/3/library/stdtypes.html#types-union