PROGRAM PYTHON

Pythonスクリプト【全角がある場合の桁をそろえる方法】

 

全角がある場合は表示がずれる

format()メソッドで桁を指定した場合、全角があると表示がずれてしまいます。

◆実行例

zenhan

全角は表示するスペースは2文字分ですが、format()メソッドでは全角でも1文字として計算してしまいます。
このような場合は、表示する文字が全角かどうかを判定して全角は2文字として計算します。
文字が全角かどうかを調べるのには、unicodedata.east_asian_width()関数を使います。
east asian width は東アジアの文字幅です。
なお、unicodedata.east_asian_width()関数を使うには、unicodedataをインポートする必要があります

戻り値 = unicodedata.east_asian_width(文字)

戻り値の内容は、以下のようになります。

戻り値 全角/半角 内容
F 全角 全角英数
H 半角 半角カナ
W 全角 漢字、ひらがな、カタカナ
Na 半角 半角英数
A 全角 ギリシア文字など
N 全角でも半角でもない アラビア文字など

戻り値が「F」「W」「A」が全角となります。

 

全角があっても表示がずれないようにする

上記をふまえて、スクリプトを以下のように書き直します。

◆実行例

zenhan2

 

-PROGRAM, PYTHON