TIL

Today I Learned. 知ったこと、学んだことを書いていく

Python 3 文字列

Pythonの文字列はすべてイミュータブル(変更できない)

シングルクォートとダブルクォートのどちらでも定義できる

>>> 'Hello'
'Hello'
>>> "Hello"
'Hello'

2つの方法で表現できるのは、クォート文字を使った文字列を表現しやすくするため

>>> "'Taro,' said hello"
"'Taro,' said hello"
>>> '"Taro," said hello'
'"Taro," said hello'

3個のシングルクォート('‘')とダブルクォート("“")でも表現できる

これは複数行文字列を表すときに使う

>>> greeting = """おはよう
... こんにちは
... こんばんは"""
>>> greeting
'おはよう\nこんにちは\nこんばんは'

print()の出力と対話型インタープリタが自動で行うエコーには違いがある

>>> print(greeting)
おはよう
こんにちは
こんばんは

print()では文字列からクォートを取り除き、出力する

インタープリタでは前後にクォート文字をつけ、エスケープ文字を使って出力する

str() を使った型変換

str() でPythonのほかのデータ型を文字列に変換できる

>>> str(11)
'11'
>>> str(True)
'True'
>>> str(89.1)
'89.1'

\によるエスケープ

特別な文字とバックスラッシュ(\)を使って表現する

代表的な例として、改行(\n)やタブ(\t)がある

リテラルのバックスラッシュを表現したいときにはバックスラッシュを二つ重ねる(\\

+による連結

+演算子を使うことで、リテラル文字列や、文字列変数を連結できる

>>> "abc" + "defg"
'abcdefg'

文字列リテラルは並べるだけで連結できる

>>> "hello " "world"
'hello world'

*による繰り返し

*演算子を使うことで文字列を繰り返すことができる

>>> start = "Na" * 4 + "\n"
>>> middle = "Hey" * 3 + "\n"
>>> end = "Good bye"
>>> print(start + middle + end)
NaNaNaNa
HeyHeyHey
Good bye