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

时间:2013-03-02 20:16:03

标签: python

我是Python的新手,我正在尝试编写一个代码,通过从列表[字符] [特征] [主题] [位置]和[行]中选择一个随机条目来生成故事的核心元素]。我写的代码如下。

我有两个问题:

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 个答案:

答案 0 :(得分:1)

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

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