python - 计算字符串中的韩语字符
问题描述
我希望能够计算输入中有多少韩文字母,就像我对英文字母和数字所做的那样:
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()
某种方式合并吗?
解决方案
如果您询问如何计算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 标准具有:
推荐阅读
- google-cloud-platform - 具有 HTTP 触发器的自定义域-Google Cloud 功能
- android - 在小部件提供程序中接收广播时替换 RemoteViewsFactory
- typescript - React-TypeScript:“IntrinsicAttributes 和 IntrinsicClassAttributes”类型上不存在属性“位置”
- node.js - 如何在 mongoDB 的第二级实现`lookup`?
- java - 注册。字体 'ABCDEE+Calibri' 在 Unix/Linux 上包含 bad/widts
- ios - 如何使集合视图单元格超过一列?
- android - 如何阻止Android wifi数据包嗅探
- r - 如何在 R 中估计具有个体特定参数的潜在类模型?
- c - 数组算术 - 指针类型索引
- javascript - 映射功能后角度数组未更新