Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【Python】数字をprint()する時、整数か文字列かがわからなくて困る件について repr()

お世話になっております。

葛の葉です。

標題の件につきまして、解決方法がわかりましたので、ご連携いたします。

なんかもう挨拶が面倒なので、次からはこんなスタンスにしたいです。

Pythonの環境について

Python 3.6.5

事の発端

プログラミングをしているとprint()を使って値がちゃんと出ているかどうか確認したいなぁって思ったりしますね。

例えば遷移する変数の値を見てみたい、なんて時なんかはprint()で見ていきたいですよね。

nana = 7
shichi = '7'

print('nana={}'.format(nana))
print('shichi={}'.format(shichi))

nana7shichi'7'が返ってくると思うじゃあないですか?結果は以下の感じなんですよ。

nana=7
shichi=7

shichi='7'になってほしかったですね。これだけ見るとshichiも整数と勘違いしてしまうかも。

repr()で解決

print()で変数を囲う前にrepr()で変数を囲ってあげればよいです。以下の感じ。

nana = 7
shichi = '7'

print('nana={}'.format(repr(nana)))
print('shichi={}'.format(repr(shichi)))

出力は以下の感じ

nana=7
shichi='7'

repr()についての公式ドキュメント

以下が公式ドキュメント

2. 組み込み関数 — Python 3.6.5 ドキュメント

コマンドライン上ではどうか?

Python 3.6.5 (default, Jun 27 2018, 08:15:56)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> nana = 7
>>> shichi = '7'
>>>
>>> nana
7
>>> shichi
'7'
>>> repr(nana)
'7'
>>> repr(shichi)
"'7'"
>>> 'nana={}'.format(repr(nana))
'nana=7'
>>> 'shichi={}'.format(repr(shichi))
"shichi='7'"

ちなみにドキュメントにも書いてある通り、この子たちはstrのようです。

>>> type(repr(nana))
<class 'str'>
>>> type(repr(shichi))
<class 'str'>