[Python][書式]
フォーマット文字列 % (差し込みオブジェクトのタプル)
コード |
対応型 |
%s |
文字列(数値なども変換) |
%d |
10進整数 |
%f |
10進浮動小数点数 |
%x |
16進数 |
%X |
16進数(大文字) |
%o |
8進数 |
%% |
%を表示 |
%[フラグ][桁数][.精度]コード
フラグ |
意味 |
0 |
0埋め |
- |
値の左寄せ |
+ |
数値の先頭に符号をつける |
>>> t = 173
>>> w = 73
>>> print 'あなたのBMIは、%0.1f です。' % (w / ((t/100.0)*2))
あなたのBMIは、21.1 です。
%(辞書のキー)コード
>>> print '%(donuts)s、%(remon)s' % {'donuts':'ドはドーナツのド','remon':'レはレモンのレ'}
ドはドーナツのド、レはレモンのレ
>>> time.strftime('%Y/%m/%d', time.localtime())
'2010/02/24'
>>> datetime.today().strftime('%Y%m%d')
'20100224'
>>> datetime.fromtimestamp(os.stat(r'/test.txt').st_ctime).strftime('%Y%m%d')
'20090824'
指定子 |
意味 |
備考 |
%a |
ロケールの短縮された曜日名を表示します |
|
%A |
ロケールの曜日名を表示します |
|
%b |
ロケールの短縮された月名を表示します |
|
%B |
ロケールの月名を表示します |
|
%c |
ロケールの日時を適切な形式で表示します |
|
%d |
月中の日にちを10進表記した文字列 [01,31] を表示します |
|
%f |
マイクロ秒を10進表記した文字列 [000000,999999] を表示します (左側から0埋めされます) |
(1) |
%H |
時 (24時間表記) を10進表記した文字列 [00,23] を表示します |
|
%I |
時 (12時間表記) を10進表記した文字列 [01,12] を表示します |
|
%j |
年中の日にちを10進表記した文字列 [001,366] を表示します |
|
%m |
月を10進表記した文字列 [01,12] を表示します |
|
%M |
分を10進表記した文字列 [00,59] を表示します |
|
%p |
ロケールの AM もしくは PM を表示します |
(2) |
%S |
秒を10進表記した文字列 [00,61] を表示します |
(3) |
%U |
年中の週番号 (週の始まりは日曜日とする) を10進表記した文字列 [00,53] を表示します新年の最初の日曜日に先立つ日は 0週に属するとします |
(4) |
%w |
曜日を10進表記した文字列 [0(日曜日),6] を表示します |
|
%W |
年中の週番号 (週の始まりは月曜日とする) を10進表記した文字列 [00,53] を表示します新年の最初の月曜日に先立つ日は 0週に属するとします |
(4) |
%x |
ロケールの日付を適切な形式で表示します |
|
%X |
ロケールの時間を適切な形式で表示します |
|
%y |
世紀なしの年(下2桁)を10進表記した文字列 [00,99] を表示します |
|
%Y |
世紀ありの年を10進表記した文字列を表示します |
|
%z |
UTCオフセットを +HHMM もしくは -HHMM の形式で表示します (オブジェクトがnaiveであれば空文字列) |
(5) |
%Z |
タイムゾーンの名前を表示します (オブジェクトがnaiveであれば空文字列) |
|
%% |
文字 '%' を表示します |
|
- strptime() メソッドと共に使われた場合、 %f 指定子は 1 桁から 6 桁の数字を受け付け、右側から 0 埋めされます。 %f は C 標準規格の書式セットに拡張されます。
- strptime() メソッドと共に使われた場合、 %p 指定子は出力の時間フィールドのみに影響し、 %I 指定子が使われたかのように振る舞います。
- 範囲は 0 から 61 で正しいです; これはうるう秒と、 (極めて稀ですが) 2秒のうるう秒を考慮してのことです。
- strptime() メソッドと共に使われた場合、 %U と %W 指定子は、年と曜日が指定された場合の計算でのみ使われます。
- 例えば、 utcoffset() が timedelta(hours=-3, minutes=-30) を返すとしたら、 %z は文字列、 '-0330' で置き換えられます。
YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto
Copyright© 矢木 浩人 All Rights Reserved.