データ型
組み込み型
https://docs.python.org/ja/3/library/stdtypes.html
- int
- bool
True == 1
False == 0
- bool
参考:
真偽値
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
orFalse
に変換できる
参考:
シーケンス型 - 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