有了这个Python库,要啥来啥! | Python 主题月

本文正在参加「Python主题月」,详情查看 活动链接

重复了

智的你一定会有疑问,上篇文章已经分享了用Python的faker库自动生成孩子姓名的方法,但是可能有的观众姥爷已经发现,上篇文章提供的方法生成的孩子姓名有重复的,这可就尴尬了,如果你想给你的三胞胎起名字,不幸三个名字重复了,这岂不是让人很蛋T。

image.png

接下来我们就解决这个问题!

让孩子的名字不重复

做法很简单,只需要修改两行代码即可

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:
复制代码

你会发现,现在的名字已经不重复了。

image.png

image.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享