基于random库制作取名器
(准备两个文本文件,一个存放姓氏,一个存放取名用字,里面每个字用","隔开)
1.随机生成10个二字名。
import random
with open("取名.txt", "r", encoding="utf8") as file:
firstname = file.read().split(",")
for i in range(1, 11):
f1 = random.choice(firstname)
f2 = random.choice(firstname)
print(f1, f2)
2.随机生成10个姓名。
import random
with open("姓氏.txt", "r", encoding="utf8") as file:
lastname = file.read().split(",")
with open("取名.txt", "r", encoding="utf8") as file:
firstname = file.read().split(",")
for i in range(1, 11):
ln = random.choice(lastname)
f1 = random.choice(firstname)
f2 = random.choice(firstname)
print(ln, f1, f2)
3.指定姓氏和生成的数量,随机生成姓名。
import random
ln = str(input("请输入姓氏:"))
n = int(input("生成数量:"))
with open("取名.txt", "r", encoding="utf8") as file:
firstname = file.read().split(",")
for i in range(1, n + 1):
f1 = random.choice(firstname)
f2 = random.choice(firstname)
print(ln, f1, f2)
使用PySimpleGUI做一个简易界面。
import random
import PySimpleGUI as Sg
layout = [[Sg.Text(' ')],
[Sg.Text('请输入姓氏:'), Sg.InputText(key='ln', size=15)],
[Sg.Text(' 生成数量:'), Sg.InputText(key='n', size=15)],
[Sg.Text(' ', size=18), Sg.Button('生成')]]
window = Sg.Window('取名器', layout, font='微软雅黑')
while True:
event, values = window.read()
if event is None:
break
if event == '生成':
ln = values['ln']
n = int(values['n'])
name_list = []
with open("取名.txt", "r", encoding="utf8") as file:
firstname = file.read().split(",")
for i in range(1, n + 1):
f1 = random.choice(firstname)
f2 = random.choice(firstname)
name = ln + f1 + f2
name_list.append(name)
Sg.popup(name_list, title="取名结果", font=("微软雅黑", 12))