Python > データタイプ > 文字列


文字列

タブルクォートとシングルクォート
文字列中のバックスラッシュ

改行

\n
バックスラッシュをそのまま r'
print("""
line1
line2
line3
""")

文字列の掛け算
"Hi." * 3

文字列の足し算
"Pi" + "thon"
文字列そのままなら "Pi" "thon"
改行を無視 () or \

文字列のインデックス、スライス

word = "python"
word[0] # => w 前から1番め
word[-1] # => d 後ろから1番め
word[0:2] # (0+1)文字目から(2+1)-1文字目まで
len(word) # => 4

文字のメソッド

s.startswith('My') My で始まるか?
s.find('My') Myを探す
s.rfind('My') Myを後ろから探す

大文字/小文字

str.upper()
str.lower()
str.title()  # 単語の最初を大文字にする
 
# 判定なら is
str.isupper()
str.islower()
str.istitle()


文字の代入

str.format()
'a is {}'.format('a')
'a is {0}{1}{2}'.format(1,2,3)
'a is {2}{1}{0}'.format(1,2,3)
'a is {a}{b}{c}'.format(a=1,b=2,c=3)
str(x)

6.1.3. 書式指定文字列の文法
3桁なければ0で埋める
'{:0=3}'.format(_int)

文字列の検索

str.rfind(sub[, start[, end]])
右から探すが、返す「文字の位置」は左から数える
str.rfind

文字列の置換

str.replace("A","B")

文字列から整数へ

int(str)
失敗すると ValueError を返すので
try:
   int(str)
error: ValueError
   # Error処理
 
で処理する。

もしくは
str.isnumeric()
で数値として見ることができるかどうか判定して、できるなら変換する。
Pythonで文字列が数字か英字か英数字か判定・確認 - note.nkmk.me



数える

単純に文字数は、長さ、と考える
len(s)

文字(列)の出現回数を数える

s.count('t')
str.count(sub[, start[, end]]
str.count(...)

文字列とリスト

文字列をそのままリストのように扱える。
s = "hello"
s[0:3] # hel

ただし、「変更のできないリスト」なので、逆順に並べたりはできない。リストに変換させて、reversed()で逆順にする
s_l = reversed(list(s))


ただし、そのままでは文字列として「出力」されないので、.join() で結合する

s = "".join(s)

最終更新:2020年05月23日 22:00