この記事では、Pythonの文字列型(str型)について詳しく見ていきましょう。
str型とは?
s = "ABC"
print(s) # ABCと表示されます。
Pythonでは、文字列はstr型で表現します。 一言で言うと str型は、immutable(更新不可)なsequenceです。
str型固有の性質は少なく、sequenceとしての(sequence共通の)性質であるものが多いので、是非、sequenceについてご確認ください。 → Pythonのsequenceについて
「Pythonのstr型について説明してください」とIT企業の面接で尋ねられたら、「immutableなtextのsequenceです」と答えられれば完璧ですね(`・ω・´)b
str型はimmutable(更新不可)である
str型はimmutable(更新不可)なオブジェクトなので部分的に書き換えることはできません。
s = "ABC"
s[1] = "D" # TypeError : 'str' object does not support item assignment
str型はsequenceである
str型はsequenceなので、list , tuple , rangeオブジェクトなどと同様にシーケンス演算ができます。
str型が空である判定
str型はsequenceで、長さ0のsequenceはfalsy(False扱い)であるため、次のように書けます。
s = "ABC"
if s:
print("s is Truthy") # sがNoneでなく、かつ、""でもなければここが実行されます。
str型の加算
str型に対する加算は文字列の連結となっています。これは、str型がsequenceなので、sequence同士の加算が連結となるという性質によるものです。(list型でも同様に連結になります。)
x = "ABC"
y = "DEF"
print(x+y)
# ABCDEF
str型の乗算
str型に対する乗算は、文字列の繰り返しとなっています。これは、str型がsequenceなので、sequenceに対するintの掛け算は、その回数だけ繰り返されたsequenceになるという性質によるものです。(list型でも同様に繰り返されたsequenceになります。)
x = "ABC"*3
print(x)
# ABCABCABC
また、”ABC”*0だと0回の繰り返し、すなわち””(空の文字列)になります。
PythonではFalseが0、Trueが1と等価なので、次のようにtがTrueかFalseかで表示する文字列を選択することができます。
t = True
print("ABC"*t + "DEF"*(not t))
# ABC
t = False
print("ABC"*t + "DEF"*(not t))
# DEF