文字列の基礎

入門Python3 2.3


Pythonでは文字列はシングルクォートかダブルクォートで囲むことで定義できます。まぁこれはだいたいどの言語でも似たようなものですね。

str1 = 'hello'
str2 = "world"
print(str1)
print(str2)
$ py main.py
hello
world


またクォートを3つ並べることで複数行の文字列を定義することができます。

str1 = '''foo
bar
baz'''
str2 = """1
2
3"""
print(str1)
print(str2)
$ py main.py
foo
bar
baz
1
2
3

ちなみにPythonには複数行のコメントアウトする構文が存在しないらしく、その為「"""」を擬似コメントアウトとして利用するらしいです。なんてこったい。


文字列の連結は+で行います。

print('foo'+"bar")
$ py main.py
foobar


「*演算子」を使うことで、文字列の繰り返しをすることができるようです。これは便利ですね。例えばFooという文字列を10個並べたい場合、for文などで繰り返す必要なく定義できるというわけです。

str = 'Foo' * 10
print(str)
$ py main.py
FooFooFooFooFooFooFooFooFooFoo


「[]演算子」を使うことで、文字列の一つに直接アクセスし取得することができます。

str = 'すごーい'
print(str[0])
print(str[1])
print(str[2])
print(str[3])
$ py main.py
す
ご
ー
い

この時、範囲外のデータにアクセスしようとすると例外が発生します

str = 'すごーい'
print(str[4])
$ py main.py
Traceback (most recent call last):
  File "main.py", line 7, in <module>
    print(str[4])
IndexError: string index out of range


また、Pythonの文字列はイミュータブルであり変更不可なので[]を使ってその一部を変更しようとすると例外になります。

str = 'すごーい'
str[0] = 'え'
$ py main.py
Traceback (most recent call last):
  File "main.py", line 4, in <module>
    str[0] = 'え'
TypeError: 'str' object does not support item assignment