Skip to main content
 首页 » 编程设计

从多个列表中生成随机条目的 Python 代码

2025年05月04日9yxwkf

我是 Python 的新手,我正在尝试编写一段代码,通过从列表 [characters] [traits] [themes] [locations] 和 [lines] 中选择一个随机条目来生成故事的核心元素。我写的代码如下。

我有两个问题:

1) 目前代码允许我在每个列表中创建新条目,但是当我关闭 Python 并重新启动程序时,我创建的条目消失了。我怎样才能使新条目永久存储在列表中?我需要某种数据库吗?

2) 6. Storybox 的代码——我想让程序做的主要事情! - 不管用。关于如何让 Python 从每个列表中打印随机选择的条目,有什么建议吗?

预先感谢您的帮助。

#Storybox program 
#Generates a random selection of my story ideas 
 
 
characters = [] 
traits = [] 
locations = [] 
themes = [] 
lines = [] 
 
choice = None 
 
while choice != "0": 
 
    print( 
     """ 
 
Storybox: 
 
0 - Exit 
1 - Add character 
2 - Add trait 
3 - Add location 
4 - Add theme 
5 - Add line 
6 - Generate Story 
7 - View all entries 
 
""" 
) 
 
    choice = input("Choice: ") 
    print() 
 
 
#exit 
    if choice == "0": 
        print("Goodbye") 
 
#add a character 
    elif choice == "1": 
        character = input("Enter character: ") 
        characters.append(character) 
 
#add a trait 
    elif choice == "2": 
        trait = input("Enter character trait: ") 
        traits.append(trait) 
 
#add a location 
    elif choice == "3": 
        location = input("Enter location: ") 
        locations.append(location) 
 
#add a theme 
    elif choice == "4": 
        theme = input("Enter theme: ") 
        themes.append(theme) 
 
#add good lines 
    elif choice == "5": 
        line = input("Enter good line: ") 
        lines.append(line) 
 
 
#Generate storybox 
    elif choice == "6": 
        print("Your storybox is....") 
        storyboxcharacter = random.choice(characters) 
        print(storyboxcharacter) 
        storyboxtrait = random.choice(traits) 
        print(storyboxtrait) 
        storyboxtheme = random.choice(themes) 
        print(storyboxtheme) 
        storyboxlocation = random.choice(locations) 
        print(storyboxlocation) 
        storyboxline = random.choice(lines) 
        print(storyboxline) 
 
 
#Display all entries so far 
    elif choice == "7": 
        print("Characters:") 
        for character in characters: 
            print(character) 
 
        print("Traits:") 
        for trait in traits: 
            print(trait) 
 
        print("Themes:") 
        for theme in themes: 
            print(theme) 
 
        print("Locations:") 
        for location in locations: 
            print(location) 
 
        print("Good lines:") 
        for line in lines: 
            print(line) 
 
input("\n\nPress the enter key to exit.") 

请您参考如下方法:

1) 是的,您需要以某种方式将数据存储在文本文件或数据库中。数据库在这一点上有点过分了,所以我推荐像 json 这样的东西。 .

2) 删除了 randint 解决方案 - random.choice 绝对更好