8.型変換や日本語の文字の扱い (2015.2.20-2024.1.28)

■型変換
文字列や数値は関数を使って他の型に変換できます。よく使うのは文字列を整数に変換するint()関数や、数値を文字列に変換するstr()関数等です。list()関数を使ってタプルをリストに変換したり、tuple()関数を使ってリストをタプルに変換することもできます。

■文字列フォーマット
データを指定した形式に沿う文字列に整形することを文字列フォーマットと呼びます。これには%演算子を使う方法とformatメソッドを使う方法があります。テキストの説明を見ると、単純に文字を代入するような場合は簡単に見えますが、他は何だか複雑です。実際に使う機会が出てきたら改めて詳しく学ぶとして、ここでは簡単な例を紹介しておきましょう。なお、書式化した文字列はprint関数内で使うことがほとんどで、例えば次のような形で記述します。

1.%演算子を使った例
num = 30
print('10進数では %d 、16進数では %x です。' % (num, num))
>> 10進数では 30 、16進数では 1e です。

もう1つ例を示しましょう。
name = 'TAROU'
print('私の名前は%10sです。' % (name))
>> 私の名前は TAROUです。

これはPython 2.6以前の古い記述方法らしく、Python 3以降では次のformatメソッドを使うことが推奨されているようです。

2.formatメソッドを使った例
year = 2024
print('今年は{}年です。' .format(year))
>> 今年は2024年です。

複数の文字置換もできます。
year = 2024
month = 2 print('今は{0}年の{1}月です。' .format(year, month))
>> 今は2024年の2月です。

もう少し複雑な例を記します。よく使われるのが小数点以下の桁数を指定して記述するものです。例えば少数点以下2桁にしたいなら
num = 1234.5678
print('{:.2f}' .format(num))
>> 1234.57

数値を%表示したい時は
num = 0.1234
print('{:.2%}' .format(num))
>> 12.34%

■日本語の文字の扱い
Python 3より前の標準文字コードはASCIIなので、日本語の文字を扱うにはプログラムの冒頭に次の記述が必要になります。

coding: utf-8

更にプログラム内で文字列として日本語を扱う場合は、Unicode文字列であることを明示するため、先頭に小文字の「u」を付けます。
a = u'日本語'

ただし、対話型セッションではOSの持つエンコードを使用するため、特に指定しなくても日本語が表示されます。あくまでもプログラムをファイルとして保存して実行する場合に必要なものです。

Python 3からは標準文字コードがUnicodeに変更されたため、このような指定は必要無くなりました。標準文字コードを意識する必要が無くなったため、プログラムミスも防げます。