2021-03-11に更新

Pythonのリテラル

Pythonの組み込み型の定数表記、リテラル (literal)をまとめました。

文字列のリテラル

単引用符'あるいは二重引用符"で文字を囲むことで文字列を表現できます。

円マーク(バックスラッシュ)\は特殊な記号で、エスケープや特定の文字を表現できます。

'文字列A' # => 文字列A
'文字列"B"' # => 文字列"B"
'文字列\'C\'' # => 文字列'C'
"文字列1" # => 文字列1
"文字列\"2\"" # => 文字列"2"
"文字列'3'" # => 文字列'3'
print("改\n行\r\nやタブ\t、円マーク\\含む文字列")
## =>
# 改
# 行
# やタブ   、円マーク\含む文字列

円マーク(バックスラッシュ)\を特殊文字として解釈させたくない場合は先頭にrまたはRをつけてraw stringsが使える。

print(r'c:\some\ttt\nnn\path')
## => c:\some\ttt\nnn\path

三連引用符("""、または、''')で複数行の文字列を扱える。

print('''A
B
C''')
# =>
# A
# B
# C

各行の末尾に円マーク(バックスラッシュ)\を置くと改行が行われないようになる。

print("""A\
B\
C""")
# => ABC

+で文字列の結合、*で繰り返しを行える。
文字列がリテラル(引用符で囲まれた文字)の場合 連続して並べることで自動で結合される。

"A" + "B" + "C" # => ABC
"A" "B" "C" # => ABC
"py" * 2 # => pypy

\N{Unicodeの名称}\uxxxx\Uxxxxxxxxでユニコード文字を表現できます。

print('\u26A1') # => ⚡
print('\U0001F308') # => 🌈
print('\N{FOR ALL}') # => ∀

フォーマット済み文字列リテラル (formatted string literal)

先頭にfまたはFのついた文字列でフォーマット済みの文字列を表現できます。

文字列中に波括弧を使用し{変数名}の形式で評価したい変数を埋め込む事ができます。
変数名に続けて{変数名!変換の形式}{変数名:書式指定}の形式で出力を指定します。

str = "テスト"
print(f"フォーマット済み文字列リテラル {str}")
# フォーマット済み文字列リテラル テスト
print(f"フォーマット済み文字列リテラル {str!s}") # s => str()で変換
# フォーマット済み文字列リテラル テスト
print(f"フォーマット済み文字列リテラル {str!r}") # r => repr()で変換
# フォーマット済み文字列リテラル 'テスト'
print(f"フォーマット済み文字列リテラル {str!a}") # a => ascii()で変換
# フォーマット済み文字列リテラル '\u30c6\u30b9\u30c8'

number = 12345.12345
print(f"フォーマット済み文字列リテラル {number}") # = > 12345.12345
print(f"フォーマット済み文字列リテラル {number:,}") # = > 12,345.12345
print(f"フォーマット済み文字列リテラル {number:.2f}") # = > 12345.12
print(f"フォーマット済み文字列リテラル {number:012.3f}") # = > 00012345.123

integer = 10
print(f"フォーマット済み文字列リテラル {integer}") # = > 10
print(f"フォーマット済み文字列リテラル {integer:d}") # = > 10 10進数
print(f"フォーマット済み文字列リテラル {integer:b}") # = > 1010 2進数
print(f"フォーマット済み文字列リテラル {integer:o}") # = > 12 8進数
print(f"フォーマット済み文字列リテラル {integer:x}") # = > a 16進数(小文字)
print(f"フォーマット済み文字列リテラル {integer:X}") # = > A 16進数(大文字)

整数リテラル

10進数に加えて、2・8・16進数表記で整数値を記述できる。
アンダースコアを無視される数値の区切りとして可読性のために使用可能です。

1
1_000_000 # = > 1000000 アンダースコアは数値を読みやすくするための区切りとして使える
0b1010 # => 10 2進数
0B1011 # => 11 2進数
0o16 # => 14 8進数
0O17 # => 15 8進数
0x2A # => 42 16進数
0X2B # => 43 16進数

浮動小数点数リテラル

小数のリテラルでは指数表記での記述ができる。
またアンダースコアを無視される数値の区切りとして使用可能です。

1.2345
123. # => 123.0
.12 # => 0.12
1.23e20 # => 1.23 * 10^20
1_234.123_456 # => 1234.123456

虚数リテラル

キーワードjまたはJで虚数を記述できる。

1j # 1j
1J # 1j
1 + 2j # 1 + 2j
1 + 2J # 1 + 2j

計算も可能。

1j ** 2 # => (-1+0j)
(1 + 2j) ** 2 # => (-3+4j)

バイト列リテラル

単引用符'または二重引用符"で文字列を囲み、先頭にプレフィックスbを付与することでバイト列リテラルを記述できる。

b'abc'
B'abc'
b"abc"
B"abc"
Originally published at marusankakusikaku.jp
ツイッターでシェア
みんなに共有、忘れないようにメモ

maru3kaku4kaku

Pythonこつこつ学習中。よく忘れる。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント