No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

モジュロ演算子でフォーマット変換 for python

備忘録をかねて。

pythonはモジュロ演算子(%)を使って文字列へのフォーマット操作ができます。

型変換だけならstr()等でキャストでもいいのですが、桁揃えとかもやってくれるので極力こっちを使うようにしています。
でも、すぐ忘れます。
使い方はシンプル

i=123
print "Hellow World %d"  % i

#結果
#Hellow World 123

上の例では、%dの部分が123で置き換えられています。
ここで使っている%dは「整数値と入れ替えますよ」の意味。
複数を置換する場合は、下のように書きます。

i=123
j=987.654
k=15

print "Hellow World %d %f %x"  %(i,j,k)

#結果
Hellow World 123 987.654000 f

ここで使った%sは文字列と置き換えるという意味。
同様に、%fは10進数の浮動小数点と置き換えるという意味。
%xは符号なしの16進数(小文字)と置換するという意味。

またこの、モジュロ演算子を使うことで幅や精度の指定等いろいろできます。
以下はその例。

i=123
j=-456

# 幅の指定
print "Hellow World  %10d %10d" % (i, j)
# 精度の指定
print "Hellow World   %10.2f %10.2f" % (i, j)
# 0 で左を埋める
print "Hellow World   %010d %010d" % (i, j)
# 左寄せ
print "Hellow World   %-10d %-10d" % (i, j)
# 符号をつける
print "Hellow World   %+10d %+10d" % (i, j)

#結果
Hellow World         123       -456
Hellow World       123.00    -456.00
Hellow World   0000000123 -000000456
Hellow World   123        -456
Hellow World         +123       -456

他にもいろいろできるみたいですが、使うのはこのくらいでしょうか。 さらなる詳細はドキュメント参照ってことで。

備忘録なので自分が見返して、思い出しやすいように書いたので、分かりづらいところ等あったらごめんなさい。


 

=2013年4月29日追記=
どうやら、%(モジュロ演算子)を使ってのフォーマット変換は古いようです。
『str.format(*args, **kwargs)』を使うのがよりPythonらしいのだそうです。
試しに上記のモジュロ演算子で行った操作を、『str.format(*args, **kwargs)』を使って行ってみます。
通常の置換

i=123
print  "Hellow World {0}".format(i)
#結果
#Hellow World 123

10進数、浮動小数点、16進数

i=123
j=987.654
k=15

print "Hellow World {0:d} {1:f} {2:x}".format(i,j,k)
#結果
#Hellow World 123 987.654000 f

幅や精度の指定等

i=123
j=-456

# 幅の指定
print "Hellow World  {0:>10} {1:>10}".format(i, j)
# 精度の指定
print "Hellow World  {0:>10.2f} {1:>10.2f}".format(i, j)
# 0 で左を埋める
print "Hellow World  {0:010d} {1:010d}".format(i, j)
# 左寄せ
print "Hellow World  {0:+} {1:+}".format(i, j)

#結果
#Hellow World         123       -456
#Hellow World       123.00    -456.00
#Hellow World   0000000123 -000000456
#Hellow World   123        -456
#Hellow World         +123       -456

参考資料
http://docs.python.jp/2/library/stdtypes.html?highlight=format#str.format
http://docs.python.jp/2/library/string.html#formatstrings

Related Posts Plugin for WordPress, Blogger...

関連記事

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

Archives

  • 2024 (4)
  • 2023 (2)
  • 2022 (9)
  • 2021 (14)
  • 2020 (46)
  • 2019 (17)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

Houdiniを使えるようになる本


Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.facebook.com/restserver.php?method=links.getStats&urls=http%3A%2F%2Fnomoreretake.net%2F2012%2F07%2F30%2Fmodforpython%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fnomoreretake.net%2F2012%2F07%2F30%2Fmodforpython%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132