python实现:3. 根据要求随机生成姓名。 (1)姓在百家姓的前16个姓中随机选取 (2)名为1~2个字,在诗经《蒹葭》中随机选取,要求:要先去除诗中的标点符号,并对汉字进行去重,(可以手动去重或考虑使用集合set)
时间: 2024-10-21 13:11:29 浏览: 17
Python中随机生成符合要求的姓名可以通过以下几个步骤实现:
```python
import random
import string
from collections import Counter
# Step 1: 百家姓前16个姓
top_16_surnames = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '沈', '姚', '贾', '陆', '吕']
# Step 2: 读取《蒹葭》诗并处理标点符号和去重
with open('jiān jiā.txt', 'r', encoding='utf-8') as file:
poem = file.read()
poem = poem.translate(str.maketrans('', '', string.punctuation)) # 去除标点符号
unique_chars = set(poem) # 使用集合去重
# Step 3: 随机选择姓氏和名字
def generate_name():
surname = random.choice(top_16_surnames)
name_length = random.randint(1, 2) # 名字长度1或2字
names = [random.choice(unique_chars) for _ in range(name_length)]
return f"{surname} {' '.join(names)}"
# 生成随机姓名并打印
random_name = generate_name()
print(random_name)
```
在这个代码中,我们首先从百家姓的前16个姓中随机选择一个作为姓氏。然后,我们读取《蒹葭》诗句,移除标点,用集合去重得到所有独特的字符。接着,我们随机选择1到2个名字字符组成名字。最后,将姓氏和名字组合成完整的姓名。
如果你没有《蒹葭》文本文件,你可以将其替换为你实际的文本数据源。
阅读全文