【问题标题】:Count Korean characters in a string计算字符串中的韩语字符
【发布时间】:2018-10-30 06:46:25
【问题描述】:

我希望能够计算输入中有多少个韩文字母,就像我处理英文字母和数字一样:

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()

【问题讨论】:

  • 所有个字符都是Unicode字符。
  • 你是不是在问Hangul codepoints怎么算?
  • 不相关的专业提示:不要将变量命名为 abcd。你会感谢你的未来。
  • 是的,很抱歉造成混乱。
  • 您的问题也将通过示例输入和预期输出得到改善。

标签: python python-3.x unicode


【解决方案1】:

如果您要问如何计算Hangul codepoints,您需要获取字符的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 标准有:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多