【Python】表示や連結など「文字列」の基礎的な扱い方のまとめ

Python
記事内に広告が含まれています。

Python学習第4弾。
今回は文字列についてまとめておきたいと思います。

Pythonの文字列

1. 文字列の基本的な作り方

1-1. print関数でそのまま表示

Pythonで文字列を作るには、文字列をシングルクォーテーション(‘)か、ダブルクォーテーション(“)で囲みます。
具体的には以下のように記述します。

↑ str_01.pyとして保存して実行してみます

python str_01.py

↑ ターミナルからの python の実行には上記のように記述します。

実行結果
nodoame.net
nodoame.net
日本語もOK
I am a Cat.
45

↑ 実際に実行した結果のキャプチャ

1-2. シングルクォーテーションを重ねるとエラー

シングルクォート、ダブルクォートはどちらでも文字列は作ることができますが、シングルクォートの場合は文字列中にシングルクォートを使用することで、エラーが発生します。
PHPでもよくあるやつですね。

↑ このように、シングルクォート中でシングルクォートを使うと。。。

↑ エラーが起きます

↑ 見事にエラー

解決方法

こういうときは潔くダブルクォーテーションを使うか、エスケープ文字のバックスラッシュ(キーボードの右上の方にある¥マーク)を使ます。

実行結果
I’m a Cat.
I’m a Cat.

↑ エラーは起きません

1-3. 変数に文字列を代入する

↑ str_04.py

文字列文字列文字列
This is a pen.

1-4. 三重引用符

複数行に渡って文字列を記述したい場合は、クォート文字を3つ続ける「三重引用符」を使って書く方法があります。
PHPでいうところの、ヒアドキュメントのような扱いなのでしょうか?

↑ str_05.py

実行結果

広島
阪神
巨人

広島、阪神、巨人が改行されて表示されましたが、広島の上、巨人の下が改行されて「空行」が入っています。
これを防ぐために、Pythonでは、三重引用符の直後にバックスラッシュ(キーボードの右上の方にある¥マーク)を書いて、改行しないようにするという手法がよくとられるとのことです。

↑ str_06.py

実行結果

↑ 空行がなくなりました

2. 文字列の連結

2-1. 「+」で単純に連結する

文字列の連結は 『+』 を使います。Javascriptと同じような感覚です。

↑ str_02_1.py

実行結果

↑ str_02_1.pyの結果

↑ 結果のキャプチャ

2-2. 「+=」で追記する

↑ str_02_2.py

実行結果

↑ str_02_2.pyの結果

↑ 結果のキャプチャ

2-3. 「*」で指定回数分繰り返す

↑ str_02_3.py

実行結果

↑ str_02_3.pyの結果

↑ 結果のキャプチャ

3. 文字列へ変換

数値を文字列に変換(str関数)

↑ str_03_1.py

実行結果

↑ str_03_1.pyの結果

↑ 結果のキャプチャ

テキストと数値を混ぜた文章を作成し表示させようとしますが、エラーとなります。
これはPHPでは出ないエラーですね。

エラーメッセージには『TypeError: can only concatenate str (not “int”) to str』とあり、直訳すると『strはstrとしか結合できません』となり、翻訳すると『strとintは結合できません』となる感じでしょうか。
ちなみにconcatenateは「結合るする、連結する」という意味の英単語です。

ということで、数値を文字列に変換する str関数 の出番です。

print関数のkion変数に、str変数を当てながら実行すると。。。

↑ 今度は問題なく表示されました

↑ 結果のキャプチャ

4. 文字列の置換

replaceメソッド

文字列の置換には replaceメソッド を使用します。
replace()の第一引数に検索する文字列、第二引数に新しい文字列を指定します。

実行結果

↑ 無事、ジョナサンがジョセフに変換されました

↑ 結果のキャプチャ

なお、replaceは関数ではなく、メソッドと呼ばれます。

関数とメソッドの違い

使い方、呼び出し方が、『第一引数に自分を呼び出したオブジェクトを代入するか、しないか』という違いがあり、変数や値の後にドット(.)を付けて呼び出します。

より単純にまとめると、

  • 単独で呼び出しできるのが「関数」(≒ オブジェクトを代入しない)
  • 変数や値に付けて呼び出すのが「メソッド」(≒ オブジェクトを代入する)

となります。

上の例でもstr変数にドットでつないでreplaceを使用する形となっています。

5. 文字列の分割

splitメソッド

文字列の分割は splitメソッド を使用します。
spritメソッドは特定の区切り文字を指定して文字列を区切ることができ、戻り値は「リスト(list)」という形で返します。なお、区切り文字のデフォルトは空白文字となります。

実行結果

↑ 結果はリスト形式で返されました(見た感じ、JSのオブジェクトとよく似ていますね)

↑ 結果のキャプチャ

spritメソッドの第二引数では分割回数を指定することができます。

次のコードでは2回分割しているので、
’Jonathan’と、’Joseph’、’Jotaro-Josuke-Giorno’
の3つに分割されます。

実行結果

↑ 結果

↑ 結果のキャプチャ

6. 文字列の桁揃え(ゼロパディング)

rjustメソッド

文字列の左に値を埋める場合は rjustメソッド を使います。
rjust()の第一引数が埋めた後の桁数、第二引数が埋め込む文字列です。
ゼロ以外の文字列も埋め込み可能です。

実行結果

zfillメソッド

特定の文字列を指定せずゼロで桁埋めする場合は zfillメソッド を使います。

 

7. 文字列の検索

7.1 findメソッド / rfindメソッド

findメソッド は指定の文字列の位置をインデックス番号で返します。
見つからない場合は-1を返します。

インデックス番号とは0から始まる、文字の位置番号と考えてもらって問題ありません。

findメソッド

実行結果

↑ 前から検索していくので、先頭ということで「0」が返ります。
Linux という「文字のかたまり」を検索対象として指定しているので、それがあたった番号を返します。

実行結果

↑ 同じ文字列で Apache を検索対象文字とした場合は「5」が返ります。

実行結果

↑もっと単純な文字列にして、対象文字を検索。左から参照していくので、1が返ります

rfindメソッド

rfindメソッド は、指定の文字列を後ろ(右端)から探してその位置(インデックス番号)を返します。
インデックス番号は、左端からの位置を返します。

実行結果

↑ 2回めの「b」を検索し、左端からのインデックス番号である4が返ります

7.2 countメソッド

該当する文字がいくつ存在するかを知りたい時はcountメソッドを使います。

実行結果

↑ 日本語でも問題ありません。
早口言葉で有名な語句の中から「ぴょこ」の個数をカウントすると8が返ります。

実行結果

↑ 1個しかない語句を対象とすると、ちゃんと1が返ります

7.3 in文

指定の文字列が存在するかどうかをブール値(True or False)で返します。

実行結果

↑ 含まれる文字だとTrueが返ります

実行結果

↑ 含まれない文字だとFalseが返ります

8. 大文字・小文字変換

指定の文字列を大文字・小文字へ変換するには upperメソッド もしくは lowerメソッド を使います。
読んで字のごとく、upperメソッドで大文字、lowerメソッドで小文字化します。

実行結果

9. 先頭・末尾の削除

stripメソッド・lstripメソッド・rstripメソッド

両端にある不要な文字列の削除には stripメソッド を使います。
lstripメソッド は先頭文字(左)、rstripは末尾文字(右)にあるものを削除します。
引数で消したい文字を指定することができ、引数を指定しない場合は空白を除去します。

実行結果

↑ 空白が削除されました

実行結果

↑ (わかりにくいですが)空白が削除されました

実行結果

↑ 文字列の前後にある空白が削除されました

実行結果

↑ 左端の「Jo」が削除された結果が返ります

 

まとめ

以上、9項目に分けて文字列の基礎的な扱い方をまとめてみました。
記事としては若干長かった気もしますが、本当に基礎的なことですので、覚えておいて損はない内容だと思います。

皆さんのPythonライフの一助になればと思います。

Python
スポンサーリンク
toogieをフォローする
タイトルとURLをコピーしました