Pythonにおける、よく使われる文字列の表現方法
執筆者:南波真之
※本記事は吉政創成株式会社「Python学習とキャリアアップ」より寄稿されたコラムとなります。

私は現在、Pythonについて勉強を進めています。というのも、AIやデータ分析、アプリケーション開発など様々な状況でPythonは活用されており、テクノロジー業界で活躍していくためには必要だと思っているからです。
と言っても、私はエンジニアではない文系の人間です。
「解きながら学ぶ Pythonつみあげトレーニングブック」を使って、Pythonの一番基本的なところを学んでいます。そこで、自分で学習してきて感じたポイントや疑問、皆さんにシェアできることを書いていきます。
今回は、P.124〜P.129の部分になります。テーマはPythonでコードを書く際によく使う文字列の表現についてです。ここがわかるとコードがスッキリし、想定した文字列表現ができるようになります。
よく使われる文字列表現
文字列は、文章などのテキスト文字からなるデータのことです。一般的にString型と呼ばれます。例えば、「こんにちは。」「あなたの受付番号は321番です」などはすべて文字列という扱いになります。
ちなみに数字は整数型(Int型)や浮動小数点数型(float型)となります。
そんな文字列の表現方法は、printを使って表示するのが基本ですが、型変換をしてString型に直してからprintを使って表示するということも可能です。
文字列について復習できたところで、今回はいくつかの場合での文字列表現を見ていきます。どれもよく使われるものですので、一緒に確認していきましょう。
変数の値を文字列として表示させたい(f-string)
まずは、変数の値を表示する場合です。
通常は、+演算子を使って文字列連結をさせるという方法を取りますが、この場合値の間に半角スペースが入ってしまうことと、+演算子で連結させる値は文字列である必要があるため数字は文字列に型変換する必要があります。
mypet = '猫の猫助'
変数ageの値は整数
age = 5
カンマで値を区切ると、半角スペースができてしまう
print(mypet, 'は、今年', age, '才になりました。')
+演算子で連結させる場合は、整数を文字列に変換しないといけない
print(mypet + 'は、今年' + str(age) + '才になりました。')
↓出力結果
猫の猫助は、今年5才になりました。
カンマ区切りの場合と、+演算子での連結の場合を比較してみましたが、たしかにカンマ区切りの場合は半角スペースが出ますし、+演算子の場合は変数の値が数値(整数、小数)だとString型に型変換しないとうまくいきません。
そこで、f-stringを使うと効率的です。
使い方としては、最初にfを記載し、その後にクォーテーションを入れてテキストは変数を記載します。変数は{}で囲みます。
変数mypetの値は文字列
mypet = '猫の猫助'
変数ageの値は整数
age = 5
print(f'{mypet}は、今年{age}才になりました。')
↓出力結果
ちなみに、文字列変換をせずにそのまま実行するとどうなるのかというと、エラーになります。
print(mypet + 'は、今年' + age + '才になりました。')
↓出力結果
TypeError Traceback (most recent call last)
/var/folders/sr/rgb5j5g16n9_509d0nr0qq9r0000gn/T/ipykernel_68240/253287818.py in
1 # ちなみに、文字列変換しないとどうなるか
---> 2 print(mypet + 'は、今年' + age + '才になりました。')
TypeError: can only concatenate str (not "int") to str
「連結はString型のみが対応のため、今のint型はでは連結できません」というエラーです。
このf-stringを使えば余計なところを気にせずにコードもスッキリすることができますね。
エスケープシーケンス(バックスラッシュ)
Pythonには、特別な意味を持つエスケープシーケンスとして登録されているものもあります。バックスラッシュと組み合わせて使うことで様々な利用が可能です。
特に多いのが改行の「バックスラッシュ+n」です。
\n(日本のWindowsの場合バックスラッシュは\の記号で表現します)
sample = '本日は\n晴天なり'
print(sample)
↓出力結果
晴天なり
その他、クォーテーションもあります。
\'
sample = '本日は\'晴天\'なり'
print(sample)
↓出力結果
ここはエスケープシーケンスを使わないと、エラーが出てしまいます。
sample = '本日は'晴天'なり'
print(sample)
↓出力結果
これは覚えておけばコーディングで特に悩むことはなさそうです。
改行とクォーテーション以外には、タブの \t やバックスラッシュ文字を表現する \\ というのもあります。
その他、Windowsのファイルパス等の場合にバックスラッシュが多く利用されることがあります。その場合はraw文字列(未加工のraw)を使うことで、バックスラッシュをエスケープシーケンスではなく文字列として表現することも可能です。
三連引用符
3つのクォーテーション「"'」で囲んだ中の文字列は、その中で改行された部分はそのまま改行扱いになります。
比較的長めの文字列の場合に便利ですね。
name = '山田'
message_template = "'お疲れさまです。
田中です。
今週の水曜10時〜10時半のミーティングですが、
メンバーの都合により"今週は実施しない"事となりました。
よろしくお願いいたします。
"'
print(f'{name}さん、{message_template}')
↓出力結果
田中です。
今週の水曜10時〜10時半のミーティングですが、
メンバーの都合により"今週は実施しない"事となりました。
よろしくお願いいたします。
変数を2つ用意してやってみました。
3つのクォーテーションで囲んだ値の方はしっかりと改行もされており、ダブルクォートの部分も文字列として表現されていますね。
文字列の表現を理解してPythonを使いこなそう
今回は、Pythonでよく使われる便利な文字列の表現方法について紹介してきました。
Pythonで実装するロジックで計算などをしたあとにprintで出力することも多いと思います。出力結果は、ユーザーが直接見る部分ですので今回紹介したような表現方法を駆使してコーディングを進めていく必要がありますね。
インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。ご興味ある方は各講座のページを覗いてみてください。
南波真之
デジタル人材育成・助成金のお役立ち資料をダウンロード

デジタル人材育成や助成金活用のお役立ち資料などをまとめてダウンロードしていただけます。コンサルタントへの無料相談をご希望の方はこちらからお問い合わせください。
- DX人材の育成&事例紹介 リスキリングのロードマップ付き
- デジタル人材育成に使える助成金制度
- デジタルスキル標準 役割別おすすめ講座