Pythonやそのライブラリを含む他の要素においても、バージョンアップが行われるたびに、これまでの書き方が非推奨とされるケースが相当あります。ただし、インターネット上には古いコードや非推奨の情報が存在しています。それが非推奨であるということを知らない場合には、新しい書き方があるにもかかわらず古い書き方を使用してしまうケースが考えられます。
「この書き方は何だ?見たことないぞ」と思って調査してみると、現在では非推奨になった昔ながらの書き方だったりすることがあります。時間を費やして調査した結果、それが非推奨だったりすると困るわけです。ムダな時間を省くためにも、そのような「現在は使えない、または将来的に使えなくなる(非推奨)」の書き方についてメモします。
とはいえ、気付いた時に追記する予定ですので、増えすぎることはないでしょう。
%
を使った文字列の書式設定文字列のフォーマットを定義する際、format()
やf文字列
を使った記法が現在の主流です。ただ、C言語のprintf()
に準拠したような演算子を使った記法で表現する方法もあります。
>>> num = 100
>>> print('%s is %d in decimal and 0x%x in hexadecimal.' % (num, num, num))
100 is 100 in decimal and 0x64 in hexadecimal.
C言語のprintf()
では、任意の文字列において「値を出力する位置にどんな型で出力するか」をパーセント付の識別子で表現します。%s
だった場合、文字列を指定された箇所に出力する、といった具合です。この記法がPythonでも使えます。
ただ、「せっかく動的型付け言語なのに、文字列編集をするときに型を気にしないといけないのは面倒だぜ!」と思ったのかはわかりませんが、前述のとおりformat()
関数などを使った表現方法が今は主流だと思います。
pd.np
pandasをインポートすると、同時にNumPyもインポートされます。このとき、pd.np
という書き方をすることで明示的にNumPyをインポートしていなくてもNumPyが持つ機能にアクセスできるようになります。import numpy
を書かなくてもいいという、メリット?うーん、メリットかなぁこれ。
import pandas as pd
hoge = pd.np.arange(10)
print(pd.np.pi)
上記のように、pandasしかインポートしてなくてもNumPyが使えるようになります。というか、なりました。ただ、NumPyの関数などを使うならちゃんとインポートした方がコードの保守性が高いと思われたのか、現在では非推奨です。そのうち、この機能が削除されると思います。