\

Pythonでは、文字列の長さを取得するためにlen関数を使用します。この関数は、全角(2バイト文字)・半角(1バイト文字)を区別せず、すべて1文字としてカウントします。

print(len('abcあいう'))  # 6

しかし、全角と半角を区別する場合はどうすればよいでしょうか。その場合は、unicodedataモジュールを用いて各文字の幅をチェックします。

import unicodedata

def length_double_byte_str(text):
    """全角・半角を区別して文字列の長さを返す"""
    count = 0
    for c in text:
        # 全角文字などの2バイト文字は'F','W','A'のいずれかに当てはまるとする
        if unicodedata.east_asian_width(c) in 'FWA':
            count += 2
        else:
            count += 1
    return count

len_str = length_double_byte_str('abcあいう')
print(len_str)      # 9

このサンプルでは abcは半角文字なので合計3、 あいうは全角文字なので合計6としてカウントされています。

以上がPythonで日本語文字列の長さを取得する方法です。全角と半角を区別するかどうかによって、適切な方法を選択してください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です