文字列の操作
エスケープ文字
エスケープ文字は、バックスラッシュ \ の後に挿入したい文字を入力することで作成されます。
| エスケープ文字 | 表示されるもの |
|---|---|
\' | シングルクォート |
\" | ダブルクォート |
\t | タブ |
\n | 改行 |
\\ | バックスラッシュ |
\b | バックスペース |
\ooo | 8 進数値 |
\r | キャリッジリターン |
# エスケープ文字:バックスラッシュを使用して特殊文字を挿入します
# \n = 改行,\' = シングルクォート
print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
Raw 文字列 (生文字列)
Raw 文字列は、すべてエスケープ文字を完全に無視し、文字列内に現れるバックスラッシュをそのまま出力します。
# Raw 文字列 (r プレフィックス): バックスラッシュをリテラル文字として扱います
print(r"Hello there!\nHow are you?\nI\'m doing fine.") # \n がリテラルとして出力されます
Hello there!\nHow are you?\nI\'m doing fine.
Raw 文字列は、主に 正規表現 の定義に使用されます。
クイズ
ログインしてこのクイズに回答し、学習の進捗を追跡できます
Python で
rをプレフィックスとする Raw 文字列は何をしますか?A. すべての文字を大文字に変換する
B. バックスラッシュをリテラル文字として扱い、エスケープシーケンスを無視する
C. すべての空白を削除する
D. 文字列を反転させる
複数行文字列
print(
"""Dear Alice,
Eve's cat has been arrested for catnapping,
cat burglary, and extortion.
Sincerely,
Bob"""
)
Dear Alice,
Eve's cat has been arrested for catnapping,
cat burglary, and extortion.
Sincerely,
Bob
文字列のインデックス指定とスライス
H e l l o w o r l d !
0 1 2 3 4 5 6 7 8 9 10 11
インデックス指定
# 文字列のインデックス指定:位置 (0 から始まる) で文字にアクセスします
spam = 'Hello world!'
spam[0] # 最初の文字を返します:'H'
'H'
spam[4]
'o'
spam[-1]
'!'
スライス
# 文字列のスライス:[開始:終了] 構文を使用して部分文字列を抽出します
spam = 'Hello world!'
spam[0:5] # インデックス 0 から 4 までの文字を返します:'Hello'
'Hello'
spam[:5]
'Hello'
spam[6:]
'world!'
spam[6:-1]
'world'
spam[:-1]
'Hello world'
spam[::-1]
'!dlrow olleH'
クイズ
ログインしてこのクイズに回答し、学習の進捗を追跡できます
spam[::-1]は文字列に対して何を行いますか?A. 最初の文字を返します
B. 最後の文字を返します
C. 文字列を反転させます
D. すべての文字を削除します
fizz = spam[0:5]
fizz
'Hello'
in および not in 演算子
'Hello' in 'Hello World'
True
'Hello' in 'Hello'
True
'HELLO' in 'Hello World'
False
'' in 'spam'
True
'cats' not in 'cats and dogs'
False
upper(), lower() および title()
文字列を大文字、小文字、タイトルケースに変換します:
greet = 'Hello world!'
greet.upper()
'HELLO WORLD!'
greet.lower()
'hello world!'
greet.title()
'Hello World!'
isupper() および islower() メソッド
文字列が大文字または小文字であるかどうかを評価した後、True または False を返します:
spam = 'Hello world!'
spam.islower()
False
spam.isupper()
False
'HELLO'.isupper()
True
'abc12345'.islower()
True
'12345'.islower()
False
'12345'.isupper()
False
isX 文字列メソッド
| メソッド | 説明 |
|---|---|
| isalpha() | 文字列が文字のみで構成されている場合に True を返します。 |
| isalnum() | 文字列が文字と数字のみで構成されている場合に True を返します。 |
| isdecimal() | 文字列が数字のみで構成されている場合に True を返します。 |
| isspace() | 文字列がスペース、タブ、改行のみで構成されている場合に True を返します。 |
| istitle() | 文字列が、大文字で始まり、それに続く文字がすべて小文字である単語のみで構成されている場合に True を返します。 |
startswith() および endswith()
'Hello world!'.startswith('Hello')
True
'Hello world!'.endswith('world!')
True
'abc123'.startswith('abcdef')
False
'abc123'.endswith('12')
False
'Hello world!'.startswith('Hello world!')
True
'Hello world!'.endswith('Hello world!')
True
クイズ
ログインしてこのクイズに回答し、学習の進捗を追跡できます
startswith()は何を返しますか?A. 文字列が指定された部分文字列で始まる場合は
True、そうでない場合はFalseB. 一致する部分文字列
C. 部分文字列が始まるインデックス
D. プレフィックスのない新しい文字列
join() および split()
join()
join() メソッドは、リスト、辞書、タプル、または セット などのイテラブル内のすべての要素を取得し、それらを文字列に結合します。区切り文字を指定することもできます。
''.join(['My', 'name', 'is', 'Simon'])
'MynameisSimon'
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'
split()
split() メソッドは string を list に分割します。デフォルトでは空白文字を使用して要素を区切りますが、別の文字を選択して指定することもできます。
'My name is Simon'.split()
['My', 'name', 'is', 'Simon']
'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
' My name is Simon'.split()
['My', 'name', 'is', 'Simon']
' My name is Simon'.split(' ')
['', 'My', '', 'name', 'is', '', 'Simon']
クイズ
ログインしてこのクイズに回答し、学習の進捗を追跡できます
文字列に対して
split()を呼び出すと、何が返されますか?A. 文字列
B. 文字列のリスト
C. 文字列のタプル
D. 辞書
rjust(), ljust() および center() によるテキストの配置調整
'Hello'.rjust(10)
' Hello'
'Hello'.rjust(20)
' Hello'
'Hello World'.rjust(20)
' Hello World'
'Hello'.ljust(10)
'Hello '
'Hello'.center(20)
' Hello '
rjust() および ljust() のオプションの 2 番目の引数は、スペース文字以外の埋め文字を指定します:
'Hello'.rjust(20, '*')
'***************Hello'
'Hello'.ljust(20, '-')
'Hello---------------'
'Hello'.center(20, '=')
'=======Hello========'
strip(), rstrip(), および lstrip() による空白文字の削除
spam = ' Hello World '
spam.strip()
'Hello World'
spam.lstrip()
'Hello World '
spam.rstrip()
' Hello World'
spam = 'SpamSpamBaconSpamEggsSpamSpam'
spam.strip('ampS')
'BaconSpamEggs'
Count メソッド
適用された文字列内の指定された文字または部分文字列の出現回数をカウントします。オプションで開始インデックスと終了インデックスを指定できます。
sentence = 'one sheep two sheep three sheep four'
sentence.count('sheep')
3
sentence.count('e')
9
# 文字列の先頭から 6 文字以降の e の数を返します
sentence.count('e', 6)
8
sentence.count('e', 7)
7
Replace メソッド
指定された部分文字列のすべての出現を別の部分文字列に置き換えます。オプションで 3 番目の引数を使用して置換回数を制限できます。新しい文字列を返します。
text = "Hello, world!"
text.replace("world", "planet")
'Hello, planet!'
fruits = "apple, banana, cherry, apple"
fruits.replace("apple", "orange", 1)
'orange, banana, cherry, apple'
sentence = "I like apples, Apples are my favorite fruit"
sentence.replace("apples", "oranges")
'I like oranges, Apples are my favorite fruit'
クイズ
ログインしてこのクイズに回答し、学習の進捗を追跡できます
replace()メソッドは何を返しますか?A. 元の文字列を変更する
B.
Noneを返すC. 置換が行われた新しい文字列を返す
D. 置換された文字列のリストを返す