0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】f文字列以外のr''、b''、u''←こいつら何?

Posted at

はじめに

 Pythonでは文字列の先頭にfをつけるとf文字列になり、変数の埋め込みができるようになります。知らないよって人はぜひお試しあれ。
 先日f文字列を使っているときに、試しにf以外にも文字をつけてみたら、r、b、uが使えることに気づいたので、これらについて調べてみました。

フォーマット文字列

一応f文字列の使い方はこんな感じです

a = 1
b = 2
print(f'{a}{b}を足すと{a+b}になります')
出力
1と2を足すと3になります

ちなみに変数の後に:をつけると、小数点以下の表示桁数を指定したり、実は結構いろんなことができたりします。

a = 1/7
print(f'7分の1は約{a:.2f}です')
出力
7分の1は約0.14です

これは結構便利なので、ゲームのスコア表示とか、筆者も使うときがあります。

これ以外の用法についても、以下のサイトがまとめてくれていたので、気になる人はどうぞ。

raw文字列

'文字列\n文字列'

 こんなふうに改行をしたいときは\nと打ちますよね?このように、文字列の中でそのままだと指定できない文字を、エスケープシーケンスで指定する場合、raw文字列と普通の文字列で挙動が変わります。
 端的に言えば、raw文字列はエスケープ文字を処理せずに、そのままの文字列として出力します。つまり以下のようになります。

print('文字列\n文字列')
print(r'文字列\n文字列')
出力
文字列
文字列
文字列\n文字列

また、標準ライブラリのreを用いて正規表現を扱う際には、raw文字列を使うことが推奨されているので、raw文字列は筆者もたまに使いますね。というか筆者がゲーム以外を作らないから「たまに」なだけで、結構頻出な気がします。

バイト列

print('Hello World!!')
print(b'Hello World!!')
出力
'Hello World!!'
b'Hello World!!'

注意点として、ASCIIしか扱えないらしいです。encodedecodeなら日本語も使えるし、これを使わないといけない場面ってあるんでしょうか?
バイト列自体は使いますが、これはあまり使った記憶がないですね。

バイト列にフォーカスして詳しくまとめている記事があったので、もっと詳しいことを知りたければどうぞ

Unicode文字列

先にネタバレすると以下の二つは全く同じです

print('文字列')
print(u'文字列')
出力
文字列
文字列

Python2ではデフォルトでUnicodeとして文字列を扱っていなかったので、u''としていたらしいです。なので現在は使い道が存在しないものみたいです。

おまけ

 実はこいつら組み合わせられるらしいです。

fr または rf

a = 1
b = 2
print(rf'{a}\n{b}')
print(fr'{a}\n{b}')
出力
1\n2
1\n2

rb

print(r'Hello\nWorld!!') 
print(b'Hello\nWorld!!')
print(rb'Hello\nWorld!!') 
出力
Hello\nWorld!!
b'Hello\nWorld!!'
b'Hello\\nWorld!!' 

なんかバックスラッシュが一つ増えました。

print(repr(r'Hello\nWorld!!'))
出力
Hello\\nWorld!!

普通のraw文字列も内部的にはエスケープされたバックスラッシュ+nになっていますが、rbだけが表示の方もそうなっているようです。

結論

f文字列とraw文字列だけ知っていれば、とりあえず問題なさそう

最後に

 ここまで読んでくださりありがとうございました。日本語を出力するだけでもu''と付ける必要があったところから、f''とすれば、変数の埋め込みができるようになったところまで、文字列一つとっても歴史があるんだなぁと感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?