見出し画像

【独習Python】raw文字列とフォーマット文字列

こんにちは(@t_kun_kamakiri)

こちらの参考書を毎日読んでいます。

エスケープシーケンス

Pythonでprint文の中で特殊な記号を用いると認識されない場合があります。

例えばprint文内でシングルコーテーション、ダブルクォーテーションを使いたい場合など。

●ダブルコーテーションを使いたい場合は全体をシングルクォーテーションにする。

print('おはよう:"こんにちは"')

【実行結果】
おはよう:"こんにちは"

●シングルコーテーションを使いたい場合は全体をダブルクォーテーションにする。

print("おはよう:'こんにちは' ")

【実行結果】
おはよう:'こんにちは'

これは「'」や「"」が特別な意味を持つためですが、「\」や「¥」(エスケープシーケンス)を前に付けると出力した際には「'」や「"」が認識されます。

print('おはよう:\'こんにちは\'')

【実行結果】
おはよう:'こんにちは'

エスケープシーケンスは便利ですが面倒な場合もあります。

raw文字列

エスケープシーケンスで面倒な場合はpathを書く時ですね。

まず普通に書くと、

print('C:\Work\Python\20201109_Daytry_Python\auto_twitter')

Google Colabを使っていますが実行結果は以下となります。

【実行結果】
C:\Work\Python01109_Daytry_Pythonuto_twitter

「\」の後ろの文字が消えてしまいます。

●エスケープシーケンスを使って書くと、

print('C:\\Work\Python\\20201109_Daytry_Python\\auto_twitter')

「\」を2つ書く必要があります。
●一つ目の「\」はエスケープシーケンス
●2つ目の「\」は「\」そのもの

【実行結果】
C:\Work\Python\20201109_Daytry_Python\auto_twitter

これでうまく表示できていますが。

面倒ですよね。

そのときに、書いた文字列をそのまま出力してくれるraw文字列を使います。

簡単で文字列の頭に「r」をつけるだけです。

print(r'C:\Work\Python\20201109_Daytry_Python\auto_twitter')

【実行結果】
C:\Work\Python\20201109_Daytry_Python\auto_twitter

このraw文字列を使うことを推奨します!

フォーマット文字列

print文内の文字列の中に変数を埋め込みたいときにフォーマット文字列を使います。

ベタな書き方で行くと、

name = 'kamakiri'

print('私の名前は' + name + 'です')

【実行結果】
私の名前はkamakiriです

このようになりますが、文字列を文字列で足していく方法ですね。

でも、これは直感的ではなく「+」を書き忘れるとエラーになるので面倒です・・・・

そこでformatを使って文字列を埋め込むことができます。

name = 'kamakiri'

print('私の名前は{}です'.format(name))

【実行結果】
私の名前はkamakiriです

文字列以外でも、2つ以上でも埋め込むことができます。

age1 = 30
age2 = 20

print('私の年齢は{}です。あなたの年齢は{}です。'.format(age1,age2))

【実行結果】
私の年齢は30です。あなたの年齢は20です。

ただ、変数が離れていて直感的ではないですよね・・・

そんなときフォーマット文字列を使えば直感的に変数を文字列内に埋め込んで出力することができます。

name1 = 'kamakiri'
name2 = 'batta'

print(f'私の名前は{name1}です。あなたの名前は{name2}です。')

【実行結果】
私の名前はkamakiriです。あなたの名前はbattaです。

format同様、文字列以外も埋め込んで出力できます。

age1 = 30
age2 = 20

print(f'私の年齢は{age1}です。あなたの年齢は{age2}です。')

【実行結果】
私の年齢は30です。あなたの年齢は20です。

Twitter➡@t_kun_kamakiri
Instagram➡kamakiri1225
ブログ➡宇宙に入ったカマキリ(物理ブログ)
ココナラ➡物理の質問サポートサービス

この記事が気に入ったらサポートをしてみませんか?