Pythonにおける、よく使われる文字列の表現方法

私は現在、Pythonについて勉強を進めています。というのも、AIやデータ分析、アプリケーション開発など様々な状況でPythonは活用されており、テクノロジー業界で活躍していくためには必要だと思っているからです。

と言っても、私はエンジニアではない文系の人間です。

解きながら学ぶ Pythonつみあげトレーニングブック」を使って、Pythonの一番基本的なところを学んでいます。そこで、自分で学習してきて感じたポイントや疑問、皆さんにシェアできることを書いていきます。

今回は、P.124〜P.129の部分になります。

テーマはPythonでコードを書く際によく使う文字列の表現についてです。ここがわかるとコードがスッキリし、想定した文字列表現ができるようになります。

目次

よく使われる文字列表現

文字列は、文章などのテキスト文字からなるデータのことです。一般的にString型と呼ばれます。例えば、「こんにちは。」「あなたの受付番号は321番です」などはすべて文字列という扱いになります。

ちなみに数字は整数型(Int型)や浮動小数点数型(float型)となります。

そんな文字列の表現方法は、printを使って表示するのが基本ですが、型変換をしてString型に直してからprintを使って表示するということも可能です。

詳細はこちらをご覧ください。

Pythonの基礎、4つのデータ型と型変換

文字列について復習できたところで、今回はいくつかの場合での文字列表現を見ていきます。どれもよく使われるものですので、一緒に確認していきましょう。

変数の値を文字列として表示させたい(f-string)

まずは、変数の値を表示する場合です。

通常は、+演算子を使って文字列連結をさせるという方法を取りますが、この場合値の間に半角スペースが入ってしまうことと、+演算子で連結させる値は文字列である必要があるため数字は文字列に型変換する必要があります。

変数mypetの値は文字列
mypet = ‘猫の猫助’
変数ageの値は整数
age = 5
カンマで値を区切ると、半角スペースができてしまう
print(mypet, ‘は、今年’, age, ‘才になりました。’)
+演算子で連結させる場合は、整数を文字列に変換しないといけない
print(mypet + ‘は、今年’ + str(age) + ‘才になりました。’)

↓出力結果

猫の猫助 は、今年 5 才になりました。

猫の猫助は、今年5才になりました。

カンマ区切りの場合と、+演算子での連結の場合を比較してみましたが、たしかにカンマ区切りの場合は半角スペースが出ますし、+演算子の場合は変数の値が数値(整数、小数)だとString型に型変換しないとうまくいきません。

そこで、f-stringを使うと効率的です。

使い方としては、最初にfを記載し、その後にクォーテーションを入れてテキストは変数を記載します。変数は{}で囲みます。

f-stringを使った場合
変数mypetの値は文字列
mypet = ‘猫の猫助’
変数ageの値は整数
age = 5

print(f'{mypet}は、今年{age}才になりました。’)

↓出力結果

猫の猫助は、今年5才になりました。

ちなみに、文字列変換をせずにそのまま実行するとどうなるのかというと、エラーになります。

# ちなみに、文字列変換しないとどうなるか
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を使えば余計なところを気にせずにコードもスッキリすることができますね。

(参考)7.1.1. フォーマット済み文字列リテラル – 公式ドキュメント

エスケープシーケンス(バックスラッシュ)

Pythonには、特別な意味を持つエスケープシーケンスとして登録されているものもあります。バックスラッシュと組み合わせて使うことで様々な利用が可能です。

特に多いのが改行の「バックスラッシュ+n」です。

\n(日本のWindowsの場合バックスラッシュは\の記号で表現します)

# 改行を入れる
sample = ‘本日は\n晴天なり’
print(sample)

↓出力結果

本日は
晴天なり

その他、クォーテーションもあります。

\’

# クォーテーションを入れる
sample = ‘本日は\’晴天\’なり’
print(sample)

↓出力結果

本日は’晴天’なり

ここはエスケープシーケンスを使わないと、エラーが出てしまいます。

# クォーテーションを入れる
sample = ‘本日は’晴天’なり’
print(sample)

↓出力結果

SyntaxError: invalid syntax

これは覚えておけばコーディングで特に悩むことはなさそうです。

改行とクォーテーション以外には、タブの \t やバックスラッシュ文字を表現する \\ というのもあります。

その他、Windowsのファイルパス等の場合にバックスラッシュが多く利用されることがあります。その場合はraw文字列(未加工のraw)を使うことで、バックスラッシュをエスケープシーケンスではなく文字列として表現することも可能です。

print(r‘\Users\workspace\python3\test.py’)

三連引用符

3つのクォーテーション「”’」で囲んだ中の文字列は、その中で改行された部分はそのまま改行扱いになります。

比較的長めの文字列の場合に便利ですね。

3つのクォーテーションで改行をかんたんに
name = ‘山田’
message_template = ”’お疲れさまです。
田中です。
今週の水曜10時〜10時半のミーティングですが、
メンバーの都合により”今週は実施しない”事となりました。
よろしくお願いいたします。
”’
print(f'{name}さん、{message_template}’)

↓出力結果

山田さん、お疲れさまです。
田中です。
今週の水曜10時〜10時半のミーティングですが、
メンバーの都合により”今週は実施しない”事となりました。

よろしくお願いいたします。

変数を2つ用意してやってみました。

3つのクォーテーションで囲んだ値の方はしっかりと改行もされており、ダブルクォートの部分も文字列として表現されていますね。

文字列の表現を理解してPythonを使いこなそう

今回は、Pythonでよく使われる便利な文字列の表現方法について紹介してきました。

Pythonで実装するロジックで計算などをしたあとにprintで出力することも多いと思います。出力結果は、ユーザーが直接見る部分ですので今回紹介したような表現方法を駆使してコーディングを進めていく必要がありますね。

インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。

よく、「プログラミングは独学でもなんとかなる」という情報もありますが、新しいことを学んでいく際の近道は「プロに教えてもらうこと」です。

インターネット・アカデミーはキャリアサポートも充実しており、一人ひとりに専任のキャリアプロデューサーがサポートしてくれるため中途半端になることがありません。

ご興味ある方は各講座のページを覗いてみてください。無料カウンセリングもできます。

Pythonの基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」

Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」

※上記の講座は「解きながら学ぶ Pythonつみあげトレーニングブック」を基にした研修コースではありません。

良い記事だなって思ったら、是非シェアをお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次