Pythonのstr型について

この記事では、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

(Visited 9 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です