Pythonの文字列

文字列リテラル

Pythonにおける文字列リテラルは、単引号または双引号で括られています。

hello 同等です。 "hello"

以下のように使用できます: print() 関数は文字列リテラルを表示します:

print("Hello")
print('Hello')

実行例

文字列を使って変数に割り当てる

変数名の後に等号と文字列を付けると、文字列を変数に割り当てることができます:

a = "Hello"
print(a)

実行例

多行の文字列

3つの引号を使用して多行の文字列を変数に割り当てます:

3つのダブルクォートを使用できます:

a = """Python は広く使用されている一般的な高レベルのプログラミング言語です。 
これは 1991年に Guido van Rossum によって初めて設計されました。 
そして Python Software Foundation によって開発されました。 
これは主にコードの可読性に焦点を当てて開発されました。 
そしてその文法は、プログラマーが少ない行のコードで概念を表現できるように設計されています。
print(a)

実行例

または 3つのシングルクォート:

a = '''Python は広く使用されている一般的な高レベルのプログラミング言語です。 
これは 1991年に Guido van Rossum によって初めて設計されました。 
そして Python Software Foundation によって開発されました。 
これは主にコードの可読性に焦点を当てて開発されました。 
そしてその文法は、プログラマーが少ない行のコードで概念を表現できるように設計されています。
print(a)

実行例

注記:結果では、コード中と同じ位置に改行符が挿入されます。

文字列は配列です

多くの他の人気のあるプログラミング言語と同様に、Python では文字列はユニコードキャラクターを表すバイト配列です。

しかし、Python にはキャラクターデータ型はなく、単一のキャラクターは長さが 1 の文字列です。

括弧を使って文字列の要素にアクセスできます。

位置 1 にある文字を取得します(最初の文字の位置は 0 です):

a = "Hello, World!"
print(a[1])

実行例

スライス

指定された範囲の文字を返すスライス文法を使用できます。

開始索引と終了索引を指定し、コロンで区切って、文字列の一部を返します。

位置 2 から位置 5(含まない)までの文字を取得します:

b = "Hello, World!"
print(b[2:5])

実行例

ネガティブインデックス

ネガティブインデックスを使用して文字列の末尾からスライスします:

文字列の末尾から数えて位置 5 から位置 1 までの文字を取得します:

b = "Hello, World!"
b = "Hello, World!"

実行例

print(b[-5:-2])

文字列の長さ

文字列の長さを取得する場合、len()関数を使用してください。

a = "Hello, World!"
len()関数は、文字列の長さを返します:

実行例

文字列メソッド

print(len(a))

Pythonには、文字列に使用できる組み込みメソッドが一式あります。

strip()メソッドは、先頭と末尾の空白文字を削除します:
a = " Hello, World! "

実行例

print(a.strip()) # returns "Hello, World!"

a = "Hello, World!"
lower()は小文字の文字列を返します:

実行例

upper()メソッドは大文字の文字列を返します:

a = "Hello, World!"
print(a.upper())

実行例

replace()は、別の文字列で文字列を置き換えます:

a = "Hello, World!"
print(a.replace("World", "Kitty"))

実行例

split()メソッドは、区切り文字のインスタンスを見つけると、文字列をサブストリングに分割します:

a = "Hello, World!"
print(a.split(",")) # returns ['Hello', ' World!']

実行例

私たちの文字列メソッドリファレンスマニュアルを使用して、より多くの文字列メソッドを学習してください。

文字列の確認

特定のフレーズや文字が文字列に含まれているかどうかを確認する場合は、inやnot inキーワードを使用できます。

以下のテキストに「ina」というフレーズが含まれているか確認してください:

txt = "China is a great country"
x = "ina" in txt
print(x)

実行例

以下のテキストに「ina」というフレーズが含まれていないか確認してください:

txt = "China is a great country"
x = "ain" not in txt
print(x) 

実行例

文字列連結(連結)

文字列を連結または組み合わせる場合、+演算子を使用できます。

変数aと変数bを変数cに統合します:

a = "Hello"
b = "World"
c = a + b
print(c)

実行例

それらの間にスペースを追加:

a = "Hello"
b = "World"
c = a + " " + b
print(c)

実行例

文字列フォーマット

Pythonの変数の章で学んだように、以下のように文字列と数字を組み合わせることはできません:

age = 63
txt = "My name is Bill, I am " + age
print(txt)

実行例

しかし、以下のように文字列と数字を組み合わせることはできません: format() 方法は文字列と数字を組み合わせます!

format() 方法は渡された引数を受け取り、それらをフォーマットし、占位符に配置します。 {} の文字列中:

使用 format() 数字を文字列に挿入する方法:

age = 63 
txt = "My name is Bill, and I am {}"
print(txt.format(age))

実行例

format() メソッドは無制限の数のパラメータを受け取り、それぞれの占位符に配置されます:

quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))

実行例

インデックス番号を使用できます {0} パラメータが正しい占位符に配置されることを確認するために:

quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))

実行例

文字列メソッド

Pythonには、文字列に対して使用できる内蔵メソッドのセットがあります。

注記:すべての文字列メソッドは新しい値を返します。それらは元の文字列を変更しません。

メソッド 説明
capitalize() 最初の文字を大文字に変換します。
casefold() 文字列を小文字に変換します。
center() 中央に配置された文字列を返します。
count() 指定された値が文字列内に何回出現するかを返します。
encode() 文字列のエンコードバージョンを返します。
endswith() 指定された値で終わる文字列がある場合、true を返します。
expandtabs() 文字列のタブサイズを設定します。
find() 指定された値を文字列内で検索し、見つかった位置を返します。
format() 指定された値を文字列内でフォーマットします。
format_map() 指定された値を文字列内でフォーマットします。
index() 指定された値を文字列内で検索し、見つかった位置を返します。
isalnum() 文字列のすべての文字がアルファベット数字である場合、True を返します。
isalpha() 文字列のすべての文字がアルファベット表に存在する場合、True を返します。
isdecimal() 文字列のすべての文字が小数である場合、True を返します。
isdigit() 文字列のすべての文字が数字である場合、True を返します。
isidentifier() 文字列が識別子である場合、True を返します。
islower() 文字列のすべての文字が小文字である場合、True を返します。
isnumeric() 文字列のすべての文字が数である場合、True を返します。
isprintable() 文字列のすべての文字が印刷可能である場合、True を返します。
isspace() 文字列のすべての文字が空白文字である場合、True を返します。
istitle() 文字列がタイトルルールに従っている場合、True を返します。
isupper() 文字列のすべての文字が大文字である場合、True を返します。
join() 可迭代オブジェクトの要素を文字列の末尾に結合します。
ljust() 文字列の左詰めバージョンを返します。
lower() 文字列を小文字に変換します。
lstrip() 文字列の左側のトリミングバージョンを返します。
maketrans() 変換に使用された変換テーブルを返します。
partition() 指定された文字列を三部分に分割したタプルを返します。
replace() 指定された値を指定された値に置き換えた文字列を返します。
rfind() 指定された値が最後に見つかった位置で文字列を検索し、その位置を返します。
rindex() 指定された値が最後に見つかった位置で文字列を検索し、その位置を返します。
rjust() 文字列の右詰めバージョンを返します。
rpartition() 文字列を三部分に分割したタプルを返します。
rsplit() 指定された区切り文字で文字列を分割し、リストを返します。
rstrip() 文字列の右側のトリミングバージョンを返します。
split() 指定された区切り文字で文字列を分割し、リストを返します。
splitlines() 改行符で文字列を分割し、リストを返します。
startswith() 指定された値で始まる文字列がある場合、true を返します。
strip() 文字列の切り取られたバージョンを返します。
swapcase() 大小文字を切り替えます。小文字が大文字になり、その逆も然りです。
title() 各単語の最初の文字を大文字に変換します。
translate() 変換された文字列を返します。
upper() 文字列を大文字に変換します。
zfill() 指定された数の 0 値で文字列の先頭に埋め込みます。

注記:すべての文字列メソッドは新しい値を返します。それらは元の文字列を変更しません。