プロが教える店舗&オフィスのセキュリティ対策術

pythonの文字列についてお願いします

a = "%d" % (123*2)
b = "%s" % (123*2)

dはinteger, sはstringと解りますが結局はaもbも同じタイプのstrになるのに違いは何ですか?

A 回答 (1件)

悩んだら、まずは、公式(あるいは、それに近い)マニュアルを読んでみることです。



https://docs.python.jp/3/library/stdtypes.html#o …

> 変換型を以下に示します:
> 'd' 符号付き 10 進整数。
> 's' 文字列 (Python オブジェクトを str() で変換します)。

a = "%d" % (123*2)
は、 123*2=246 という数値(整数)を、 %d書式に従って文字列に変換して埋め込む。

b = "%s" % (123*2)
は、123*2=246 という整数を、組み込み関数str()で文字列に変換して、 %s書式に従って埋め込む。
str(246 )は '246' になるので、aもb も 同じ文字列になる。


違いは
・%dは対象は数値であり、文字列等は使えない
・%sは、str関数で文字列にできるものだったら、何でも使える
(ただし、str関数による変換が、自分が欲しいものとは限らない)
というところでしょうか。
    • good
    • 1
この回答へのお礼

ありがとうございました

お礼日時:2018/02/10 12:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!