【Python】 文字列を操作する方法を解説!サンプルコード付き
プログラミングにおいて文字列を操作することは多くの局面を占めることだと思います。
計算した結果を文字列として表示したり、検索した結果を文字列として表示したりするなど画面に何かを表示するときに文字列はたくさん使われます。
今回は文字列の以下の内容について解説します。
・文字列とは
・文字列の基本的な操作方法
・文字列で使用できるメソッド
目次
文字列とは
「文字列」とはその名の通り、「文字が列になったもの」のことを言います。
その為、「0文字の文字列(スペースとか)」や「1文字だけの文字列」も存在します。
文字列の書き方
文字列は下記のようにします。
1 2 |
"おはようございます。" 'こんにちは' |
“(ダブルクォーテーション)や'(シングルクォーテーション)で囲むことで文字列と認識します。
そして、囲まれた文字列をそのまま出力します
文字列の基本的な操作方法
一行の文字列を扱う
一行の文字列を扱うには先ほども言いましたが、‘(シングルクォート)か”(ダブルクォート)で囲むことで出力することができます。
例
1 2 3 |
print("こんにちは") print("こんばんは") |
出力結果
こんにちは
こんばんは
辞書にはリストと違って 「順序」という概念がありません。どのキー とどの値のペアかという情報のみが保持さ れています
複数行の文字列を扱う
複数行の文字列を扱う場合には”'(トリプルクォート)を使用します。
”'(トリプルクォート)を使用することで文字列の途中に改行を入れることができます。
例
1 2 3 |
print("""おはようございます。 今日は気持ちの良い朝ですね。 散歩でもしましょう。""") |
出力結果
おはようございます。
今日は気持ちの良い朝ですね。
散歩でもしましょう。
文字をエスケープして改行やタブを入れる
¥nのように特定の文字をエスケープして特別な意味を持たせたものをエスケープシーケンスと言います。
¥nを入れることでトリプルクォートを使って実際に改行するよりも一行のコードで複数行の文字列を作成することができます。
例
1 2 3 |
word = ("おはようございます。\n今日は気持ちの良い朝ですね。\n散歩でもしましょう。") print(word) |
出力結果
おはようございます。
今日は気持ちの良い朝ですね。
散歩でもしましょう。
エスケープシーケンスは下記の表のように¥n以外にありますので確認しておきましょう。
エスケープシーケンス | 説明 |
---|---|
¥0 | NULL文字 |
¥b | バックスペース |
¥n | 改行 |
¥r | 復帰 |
¥t | タブ |
¥’ | 文字としてのシングルクォーテーション |
¥” | 文字としてのダブルクォーテーション |
¥¥ | 文字としてのバックスラッシュ |
文字を連結する
文字を連結するには四則演算子の「+」を使用します。
左右の値が数位の場合は加算の演算子になりますが、どちらか一方の値が文字列なら文字列結合演算子として機能します。
例
1 2 3 4 |
gree = "明けましておめでとうごさいます。" gree2 = "今年もよろしくお願いします。" print(gree + gree2) |
出力結果
明けましておめでとうごさいます。今年もよろしくお願いします。
文字列を繰り返す
文字列を繰り返すには文字列の後に「*数字」を追記します。
「*」は直前の文字列を繰り返す演算子となります。
例
1 2 3 4 |
gree = "明けましておめでとうごさいます。" * 3 + "\n" gree2 = "今年もよろしくお願いします。" * 3 + "\n" print(gree + gree2) |
出力結果
明けましておめでとうごさいます。明けましておめでとうごさいます。明けましておめでとうごさいます。
今年もよろしくお願いします。今年もよろしくお願いします。今年もよろしくお願いします。
文字の長さを調べる
文字の長さを調べるにはlen()関数を使用します。
len()関数は、文字列の文字数を数えた結果を返します。
入力文字数を制限するような機能で、文字数をチェックする場合に使うことができます。
1 |
len(文字列) |
例
1 2 3 4 5 6 |
gree = "明けましておめでとうごさいます。" gree2 = "今年もよろしくお願いします。" gree3 = gree + gree2 print(len(gree3)) |
出力結果
30
文字列の中から必要なものだけ取り出す
文字列の中から必要なものだけ取り出すには[](ブランケット演算子)を使用します。
[](ブランケット演算子)は文字列の中から1文字を取り出すことができます。
1 |
文字列[インデックス] |
文字列のインデックスは0から始まり、2番目が1、3番目が2になります。
また、インデックスの前に「-」をつけることで右端から取り出すことができます。
例
1 2 3 4 5 |
gree = "明けましておめでとうごさいます。" [5] gree2 = "今年もよろしくお願いします。"[-4] print(gree) print(gree2) |
出力結果
お
し
特定の文字を目印にして文字列を切り分ける
特定の文字を目印にして文字列を切り分けるにはsplit()関数を使用します。
split()関数は文字列に含まれる任意の文字を区切り文字として、文字列を切り分けます。
1 |
string.split(セパレーター) |
split()関数について詳しく知りたい場合は【Python】文字列を分割!split()関数の使い方を解説を先にご覧ください。
例
1 2 3 4 5 |
gree = "明けましておめでとうごさいます。" gree2 = "今年もよろしくお願いします。" gree3 = gree + gree2 print(gree3.split("。")) |
出力結果
[‘明けましておめでとうごさいます’, ‘今年もよろしくお願いします’, ”]
特定の文字を間に挟んで文字列同士を連結
特定の文字を間に挟んで文字列同士を連結するにはjoin()を使用します。
join()はリストに中に格納されたここの文字列を連結して一つの文字列にまとめることができます。
1 |
間に挟む文字列.join(文字列リスト) |
例
1 2 |
list1 = ['明けましておめでとうごさいます。', '今年もよろしくお願いします。', ''] print("\n".join(list1)) |
出力結果
明けましておめでとうごさいます。
今年もよろしくお願いします。
文字列の一部を置き換える
文字列の一部を置き換えるにはreplace()メソッドを使用します。
replace()メソッドは指定した文字列を別の文字列に置き換えることができます。
1 |
文字列.replace(書き換える文字列, 書き換え後の文字列,買い替える回数) |
例
1 2 3 4 |
list1 = "大きなカブがありました。大きな老人と大きな子供が一緒に引き抜こうとしています。" list1 = list1.replace("大きな", "とても大きな", 2) print(list1) |
出力結果
とても大きなカブがありました。とても大きな老人と大きな子供が一緒に引き抜こうとしています。
書式を設定して文字列を自動生成する
書式を設定して文字列を自動生成するにはformat()メソッドを使用します。
format()メソッドは文字列の中に別の文字列を持ってきて埋め込むことができます。
1 |
文字列{}文字列.format(埋め込む文字列) |
format()関数について詳しり知りたい場合は【Python】format()関数を使って書式変換を行う!サンプルコードあり!を先にご覧ください。
例
1 2 3 |
gree = "ようこそ{}さん。今日はをお買い求めでしょうか?".format("鈴木") print(gree) |
出力結果
ようこそ鈴木さん。今日はをお買い求めでしょうか?
文字列の位置を調べる
文字列の位置を調べるにはfind()メソッドを使用します。
find()メソッドは指定した文字列のインデックスを調べることができます。
1 |
文字列.find(位置を調べる文字列) |
例
1 2 3 |
mail = "xxxxxxxxxxx@example.com" print(mail.find("@")) |
出力結果
11
小文字から大文字、大文字から小文字への変換
小文字から大文字へ変換するにはupper()メソッド、大文字から小文字への変換するにはlower()メソッドを使用します。
upper()メソッドはアルファベットを大文字に、lower()メソッドはアルファベットを小文字に変換することができます。
アルファベット以外に使用した場合は何も変わりませんので注意してください。
1 2 |
英文字.upper() 英文字.lower() |
例
1 2 3 4 5 6 7 |
mail_1 = "example1111@example.com" print(mail_1.upper()) mail_2 = "EXAMPLE1111@example.com" print(mail_2.lower()) |
出力結果
EXAMPLE1111@EXAMPLE.COM
example1111@example.com
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。