一、业务场景-随机生成患者姓名

一、需求:患者姓名2-20位中英文字符串

二、用到的知识点

1、随机生成汉字

2、列表转换成str

3、生成随机字符串

三、代码示例

 1 #coding=utf-8
 2 import random
 3 import string
 4 
 5 
 6 class GenName():
 7     # 随机生成患者姓名:中文、英文、·默认长度2-20位
 8     def __init__(self, min_lenth=None, max_lenth=None):
 9         if min_lenth!=None:
10             self.min_lenth = min_lenth
11         else:
12             self.min_lenth = 2
13         if max_lenth!=None:
14             self.max_lenth = max_lenth
15         else:
16             self.max_lenth = 20
17 
18     def chinese_char(self):
19         #随机生成一个汉字
20         head = random.randint(0xb0, 0xf7)
21         body = random.randint(0xa1, 0xf9)  # 在head区号为55的那一块最后5个汉字是乱码,为了方便缩减下范围
22         val = f'{head:x}{body:x}'
23         str = bytes.fromhex(val).decode('gb2312')
24         return str
25 
26     def chinese_str(self, num):
27         #随机生成一个汉字字符串
28         chars = []
29         for i in range(num):
30             chars.append(self.chinese_char())
31         return ''.join(chars)
32 
33     def gen_random_name(self):
34         #随机生成姓名:2-20个中英文字符
35         return ''.join(
36             random.choice(string.ascii_letters + self.chinese_str(10)) for _ in range(self.min_lenth, self.max_lenth))
37 
38 
39 if __name__=="__main__":
40     gen_name=GenName()
41     print(gen_name.gen_random_name())

猜你喜欢

转载自www.cnblogs.com/loveapple/p/9359540.html