蔵風人

If you try it, it will be somehow & Simple is Best!


[ 最終更新日: 2026-07-25 09:48 閲覧回数: 13回 ]

len()とeast_asian_width()関数

len()関数

文字列の長さを1バイト、2バイト文字にかかわらず、一文字としてカウント

1バイト文字と2バイトを別にカウントする east_asian_width() 関数

分類 戻り値 意味
全角 F Fullwidth(全角英数など
^ W Wide(漢字や全角かななど)
^ A Ambigous(特殊文字など)1
半角 Na Narrow(半角英数など)
^ H Harfwidth(半角カタカナなど)2
^ N Neutal(中立、いぞれにも属さない文字、日本語には存在しない)

ex. east_asian_width(chr)
import unicodedata
data1='鉄腕アトム'
for i in data1:
print(i, '=', unicodedata.east_asian_width(i))
鉄 = W
腕 = W
ア = W
ト = W
ム = W
data1='鉄腕Atom'
for i in data1:
print(i, '=', unicodedata.east_asian_width(i))
鉄 = W
腕 = W
A = Na
t = Na
o = Na
m = Na
data1='ポットです。'
length = 0
for i in data1:
result = unicodedata.east_asian_width(i)
if result == "F" or result == "W" or result == "A": print(i,result) length += 2
print(length)
else:
print(i,result)
length += 1
print(length)
print('合計',length)
ホ H
1
゜ H3
2
ッ H
3
ト H
4
で W
6
す W
8
。 W
10
合計 10


  1. 日本語と英数字以外が含まれている場合は正確に機能しない可能性あり。但し日本語だけに限れば全角と判断して良い ↩︎

  2. 半角カタカナについている濁点(例えばロボット、ポットなど)も1文字と数えられます。 ↩︎

  3. 濁点(゛)、半濁点(゜)と呼ぶそうだ。日本語入力では「記号」で変換入力する。 ↩︎

コメント

コメントはありません

コメント入力フォーム(気軽にコメントしてください)


お名前(ニックネーム可):  メールアドレス(必須ですが非公開です): 
コメント: