网络异常,图片无法展示
|
本文正在参加「Python主题月」,详情查看 活动链接
重复了
智的你一定会有疑问,上篇文章已经分享了用Python的faker库自动生成孩子姓名的方法,但是可能有的观众姥爷已经发现,上篇文章提供的方法生成的孩子姓名有重复的,这可就尴尬了,如果你想给你的三胞胎起名字,不幸三个名字重复了,这岂不是让人很蛋T。
网络异常,图片无法展示
|
接下来我们就解决这个问题!
让孩子的名字不重复
做法很简单,只需要修改两行代码即可
from faker import Faker def generate_baby_name(sex,num,last_name): fk = Faker('zh_CN') for i in range(num): if sex == '男': name = '{}.{}{}'.format(i,last_name,fk.unique.first_name_male()) print(name) elif sex == '女': name = '{}.{}{}'.format(i,last_name,fk.unique.first_name_female()) print(name) else: info = '请检查您的输入!' print(info) while True: sex = input('请输入孩子的性别(男/女):') last_name = input('请输入孩子的姓:') num = int(input('请输入取名个数:')) generate_baby_name(sex=sex,last_name=last_name,num=num) judge = input('继续请按回车键,结束请输入quit:') if judge == 'quit': break 复制代码
修改部分如下:
... if sex == '男': name = '{}.{}{}'.format(i,last_name,fk.unique.first_name_male()) print(name) elif sex == '女': name = '{}.{}{}'.format(i,last_name,fk.unique.first_name_female()) print(name) ... 复制代码
在生成名的方法first_name_male前加上unique修饰即可。
重新起名
运行修改后的代码,为你的孩子起20个名字:
C:\Users\Administrator\Desktop\document>D:/Python37/python.exe c:/Users/Administrator/Desktop/fak.py 请输入孩子的性别(男/女):男 请输入孩子的姓:苏 请输入取名个数:20 0.苏伟 1.苏飞 2.苏博 3.苏勇 4.苏佳 5.苏帅 6.苏旭 7.苏磊 8.苏想 9.苏鑫 10.苏凯 11.苏志强 12.苏杰 13.苏峰 14.苏坤 15.苏强 16.苏军 17.苏宁 18.苏岩 19.苏成 继续请按回车键,结束请输入quit: 复制代码
你会发现,现在的名字已经不重复了。
网络异常,图片无法展示
|
网络异常,图片无法展示
|