質問
print("{:.2}".format("abcde")) #'ab'
のように文字数の数を指定しているように、数字でも同様に数を指定できる方法を教えてください。
例えば、上のコードに習って、
line = '{0}さんの身長は{1:.1f}cmです。{0}さんの体重は{2:.2}kgす。'.format('山田',190,105.3)
print(line)
みたいなコードで[105.3]を文字数のように「10」にしたのですが、下のように数字を文字列化する以外の方法はございますか?
line = '{0}さんの身長は{1:.1f}cmです。{0}さんの体重は{2:.1}kgです。'.format('山田',190,'105.3')
print(line) #山田さんの身長は190.0cmです。山田さんの体重は1kgです。
line = '{0}さんの身長は{1:.1f}cmです。{0}さんの体重は{2:.1}kgです。'.format('山田',190,str(105.3))
print(line) #山田さんの身長は190.0cmです。山田さんの体重は1kgです。
環境
python 3.9.5
windows10
vscode
希望するように割ればいいと思うけど、文字化を手間と感じるとなると…
formatは使わないのでよく分かりませんし、質問内容も詳しく読んでいませんが、formatについての解説などは読んだ上で質問していますか?
チラッとググった限りで
https://www.javadrive.jp/python/string/index24.html
https://gammasoft.jp/blog/python-string-format/
こんなサイトとか。
https://gammasoft.jp/blog/python-string-format/
など、解説など読んだ上で質問させていただいております。
何も調べずに質問はしてはいません。
あ・・・
105.3を10で割って小数点以下を切り捨てて10と表示したいって事ですか?
そういう事であればformatでは無理なのでは?
f-stringsならできますが。
f文字列について、調べている際によくわからずformat()や書式化演算子%など出てきて、format()を調べていたところでしたが、f-stringでできるようなので、ベストアンサーにはできませんがありがとうございます。
f-strignsだと
line = f"{'山田'}さんの身長は{190:.1f}cmです。{'山田'}さんの体重は{105.3 // 10:.0f}kgです。"
こういう感じかな(もちろん、名前やら数値は変数にすべきだけど)。
formatでもできるかもしれない(formatは演算子使えないと聞いた気がしたので。使わないから事実かどうか自信がないです)。
回答1件
あなたの回答
tips
プレビュー