1. ホーム
  2. python

[解決済み] Pythonで数値を文字列に変換する

2022-08-27 12:56:23

質問

数字を文字列としてフォーマットする方法を知りたい。私のコードはここにあります。

return str(hours)+":"+str(minutes)+":"+str(seconds)+" "+ampm

時間と分は整数、秒は浮動小数点数です。str()関数はこれらの数字をすべて10進数(0.1)に変換します。 したがって、私の文字列は "5:30:59.07 pm" と出力する代わりに、 "5.0:30.0:59.1 pm" のように表示されることになります。

要するに、これを行うにはどのようなライブラリ/関数が必要なのでしょうか?

どのように解決するのですか?

Python 3.6から、Pythonでの書式設定は フォーマットされた文字列リテラル または f-文字列 :

hours, minutes, seconds = 6, 56, 33
f'{hours:02}:{minutes:02}:{seconds:02} {"pm" if hours > 12 else "am"}'

または str.format 関数を使用することができます。

"{:02}:{:02}:{:02} {}".format(hours, minutes, seconds, "pm" if hours > 12 else "am")

または 文字列の書式 % 演算子 は、さらに古いバージョンのPythonでも使えますが、docsの注釈を参照してください。

"%02d:%02d:%02d" % (hours, minutes, seconds)

また、時間の書式設定という特殊なケースには time.strftime :

import time

t = (0, 0, 0, hours, minutes, seconds, 0, 0, 0)
time.strftime('%I:%M:%S %p', t)