怎么实现中文名字随机生成器
常用汉字的unicode码范围是:\u4e00-\u9fa5
>>> '\u4e00'
'一'
>>> '\u9fa5'
'龥'
>>> ord('一')
19968
>>> ord('龥')
40869
>>> from random import randint as rint
>>> chr(rint(19968,40869))
'媎'
>>> chr(rint(19968,40869))
'恕'
>>> chr(rint(19968,40869))
'癶'
>>> chr(rint(19968,40869))
'軑'
>>> chr(rint(19968,40869))
'瘜'
>>> chr(rint(19968,40869))
'滭'
>>> chr(rint(19968,40869))
'簂'
>>> chr(rint(19968,40869))
'槦'
>>> chr(rint(19968,40869))
'芟'
>>> chr(rint(19968,40869))
'醷'
>>>
chr(i)的范围在0~255,所以不可以吧
@PG
chr(i)的范围在0 <= i <= 0x10ffff
>>> help(chr)
Help on built-in function chr in module builtins:
chr(...)
chr(i) -> Unicode character
Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.
1 回答9.8k 阅读✓ 已解决
2 回答3.7k 阅读✓ 已解决
3 回答4.6k 阅读
4 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
下班没事干凑凑热闹, 说说我看到这个问题的思路及抄码记录
1. 为了让生成的名字看起来像名字, 就像一楼说的, 要分姓和名
2. 先整姓
然而还是不对头, 貌似我只需要把常用的姓扔到一个列表里, 所以自己加工之
![clipboard.png clipboard.png](/img/bVDisv?w=422&h=350)
把上面链接里百家姓的内容粘贴到文本文件里, 假定
test.txt
, 嗯, 大概长这样:撸个脚本把姓抠出来, 其他扔掉
至此, 拿到百家姓的一个列表
然后, 从这个百家姓列表里随机取个当姓
随机姓拿到
3. 最后整名字
运行结果:
严趣己
PS: 为什么不用
\u4e00-\u9fa5
这个范围?整出来的字高概率不认识, 看着蛋疼