一、需求:患者姓名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())