しぷぜん

しぷぜん

素人プログラマなおいがStep Zero to Oneしていくブログ

Pythonでよく忘れる文字と数字の変換に関するあれこれ(組み込み関数)

にほんブログ村 IT技術ブログ Pythonへ

こんにちは、なおいです。

Pythonを触っていると文字列の出力(ファイル出力を含む)でよくフォーマットが問題で出力できないとかで悩んで、検索しているので備忘録をシリーズもので書きます。今回はその1です。

 

基本的な変数の型変換

まずは、基本的なPythonでデフォルトで組み込まれている関数から進めていきます。

組み込み関数での型の変換は非常に分かりやすく変換したい型名を前に書いて丸括弧で括ればいいです。

文字列の数値への変換
int([x[, 基数]])

float([x])

long([x[, 基数]])

complex([x])

ここの基数というのは、N進数のNのことで何も書かなければ10進数で変換されます。2,8,10,16あたりであれば普通に変換してくれると思います。他の基数は試したことないですが問題なく変換できます(追記:3を基数指定して試してみましたが普通に変換されました、必要かどうかは置いといて・・・)。

エラーが出る場合は、その基数に含まれるべきでない文字が入ってるからと考えられます。

complexは少しルールがあり、”1+4j”とする場合+の前後にスペースなどを入れないようにしておく必要があります。

 

 数値の数値への変換
int(少数)

float(整数)

long(少数)

数値に対して小数点(.0)を付加したり、少数を全て切り捨てて整数型にする場合などは以上の方法で変換をかけることで対応できます。

 

様々なオブジェクト型から文字列への変換
str(オブジェクト)

基本この形でstring型に変換できます。ただ、どのオブジェクトを変換しても1つの値を取ってくるわけではなく、例えばList型の場合はListの[]を含む全てをstringに変換しますし、クラスであれば「<__main__.クラス名 instance at 0x06B48738>」の様などこでインスタンス化された何某みたいな文言がstring変換されます。

型によってどのように変換されるかは決まっているので、正しく扱う必要があります。

ちなみに、strにはオプションは用意されていないのでstrだけでは、もともとint型のものを小数点2桁付加して出力することなどはできません。別の関数を組合せるなどして対応していきます。(ljust関数をうまく使うとか・・・)

 

これらの組み込み関数は簡単ではありますが、やれることがあまり多くないという印象です。とにかくそのまま型を変換する為のメソッドだと思っておくといいかもしれませんね。

 

とりあえず、今回はこの辺にしておきます。

最初のなので軽めのやつを選択しました。次から少しずつよくわからないやつになっていきますが、解読して後から読んでも分かるようにしていくつもりなのでお付き合いいただければ・・・