Считайте корейские символы в строке - PullRequest
0 голосов
/ 20 мая 2018

Я хочу иметь возможность подсчитать, сколько корейских букв на входе, как я делаю с английскими буквами и цифрами:

a=0
b=0
c=0
d=0
e=0

num = input("type something ")

for i in num:
    if(i.isupper()):
        a=a+1
    elif(i.islower()):
        b=b+1
    elif(i.isdigit()):
        c=c+1


print("uppercase letters: ",a)
print("lowercase letters: ",b)
print("numbers: ",c)
print("korean letters: ",d)

Но я понятия не имею, как мне это сделатья должен включить ord() как-то?

1 Ответ

0 голосов
/ 20 мая 2018

Если вы спрашиваете, как считать кодовые точки хангыль , вам нужно взять значение ord() символа и посмотреть, находится ли оно в каком-либо из задокументированных диапазонов:

hangul_ranges = (
    range(0xAC00, 0xD7A4),  # Hangul Syllables (AC00–D7A3)
    range(0x1100, 0x1200),  # Hangul Jamo (1100–11FF)
    range(0x3130, 0x3190),  # Hangul Compatibility Jamo (3130-318F)
    range(0xA960, 0xA980),  # Hangul Jamo Extended-A (A960-A97F)
    range(0xD7B0, 0xD800),  # Hangul Jamo Extended-B (D7B0-D7FF)
)
is_hangul = lambda c: any(ord(c) in r for r in hangul_ranges)

Затем используйте is_hangul(i).

. Как это бывает, ни один символ хангыль никогда не считается прописным, строчным или цифрой, но следует учитывать, что эти три категории охватывают гораздо больше, чем просто Английский;стандарт Unicode 8.0 имеет:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...