我是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.")
答案 0 :(得分:1)
1)是的,您需要以某种方式将数据存储在文本文件或数据库中。此时数据库有点过分,所以我推荐像json这样的东西。
2)删除了randint解决方案 - random.choice肯定更好