小说姓名程序怎么写

时间:2025-01-25 11:13:49 单机游戏

编写小说姓名程序可以通过以下步骤实现:

准备姓名数据

收集常见的姓、男名、女名常用词,并分别存储在三个列表中,例如 `boysnames`、`girlsnames` 和 `surnames`。

读取姓名数据

使用 `with open` 方法读取存储姓名常用词的 CSV 文件,并将其内容转换为列表。例如:

```python

with open('./boysnames.csv', encoding='utf-8') as f:

boysnames = f.read().split('\n')

boysnames.pop() 移除列表中的空行

with open('./girlsnames.csv', encoding='utf-8') as f:

girlsnames = f.read().split('\n')

girlsnames.pop() 移除列表中的空行

```

生成随机姓名

编写函数来生成随机姓名。例如,生成指定姓氏的男名或女名:

```python

import random

def generate_name(surname, gender):

if gender == 'male':

names = boysnames

elif gender == 'female':

names = girlsnames

else:

raise ValueError("Invalid gender")

if surname:

names = [surname + name for name in names]

return random.choice(names)

```

整合代码

将上述步骤整合到一个完整的程序中,例如:

```python

from random import sample, randint

读取姓名数据

with open('./boysnames.csv', encoding='utf-8') as f:

boysnames = f.read().split('\n')

boysnames.pop()

with open('./girlsnames.csv', encoding='utf-8') as f:

girlsnames = f.read().split('\n')

girlsnames.pop()

生成随机姓名

def generate_name(surname, gender):

if gender == 'male':

names = boysnames

elif gender == 'female':

names = girlsnames

else:

raise ValueError("Invalid gender")

if surname:

names = [surname + name for name in names]

return random.choice(names)

示例使用

surname = "林"

gender = "male"

name = generate_name(surname, gender)

print(f"Generated name: {surname}{name}")

```

通过以上步骤,你可以编写一个简单的小说姓名生成程序,用于自动生成符合特定性别和姓氏的姓名。你可以根据需要扩展姓名数据列表,增加更多的姓名常用词,以生成更多样化的名字。