2

我是 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.")
4

1 回答 1

1

1) 是的,您需要以某种方式将数据存储在文本文件或数据库中。在这一点上,数据库将是矫枉过正,所以我推荐类似json的东西。

2)删除 randint 解决方案- random.choice 肯定更好

于 2013-03-02T20:21:03.943 回答