我的Python技能非常基础,这就是为什么你要看一个可怕的烂摊子。在
基本上,我想用文本文件来列出单词列表。每个文件都有自己的单词类型(名词、动词等)。然后我想从列表中随机挑选单词,并将它们填入一个随机句子模板中的适当位置,有点像疯狂的Libs。我的问题是当我试图把所有的东西都放进一个循环中。我每次都会得到一个随机的模板,但是我不知道如何使随机选择的单词每次都发生变化。在
这是一个用于读取文件并将其内容添加到列表中的函数,它似乎可以正常工作。在
def get_Noun():
infile = open('Noun.txt', 'r')
nouns = infile.readlines()
infile.close()
index = 0
while index < len(nouns):
nouns[index] = nouns[index].rstrip('\n')
index += 1
Noun = random.choice(nouns)
return Noun
接下来是两个句子模板的函数和一个随机选择其中一个的函数:
^{pr2}$最后,我有一个控制整个事情的循环。我想把它放到另一个“main”函数中,但这似乎没有什么不同。在
while sp == '':
get_Sentence()
sp = input('')
我想要的是,每次我按enter键时都会弹出一个新的句子,里面有全新的单词。在
这是一个输出示例,如果我运行循环四次:
yak is the new frog
yak is the new frog
The yak is a frog
yak is the new frog
所选的句子似乎是随机的,但单词并没有改变。我该怎么解决这个问题?我知道我的代码是可怕的混乱和有点白痴,但我计划修复它,一旦我能让这一件事工作。我真的很感谢你的帮助。就像我说的,我是个十足的傻瓜,所以如果可能的话,简单的答案是值得感激的。在
在维克拉姆的回答中:
你的get_noun函数每次都会重新关联整个文件,这是一种浪费。 考虑使用一个函数将单词(只加载一次)加载到列表中,然后再使用一个从列表中随机选择的函数。在
最后:用choose_nun()替换所有名词和名词2。在
除了提供的所有答案之外,我想指出的是,在您的案例中,您需要将代码更改为
这样,当
Cake()
或XistheNew()
被调用时,一个新名词将从您的方法get_noun()
中创建出来注意:我把你的名词variable改成小写。就像Vikram所链接的那样,python编码风格也有一个约定。在
在Julien所说的基础上,您将添加另一个方法来加载该文件
^{pr2}$这样就不会每次调用
^{3}$get_noun()
时都加载文件,因此整个文件将如下所示希望这有帮助
您只在程序初始化时分配
noun
和noun2
一次尝试使用如下新功能:
然后在你的}。在
Cake()
和XistheNew()
函数中调用set_nouns()
,而不是{另外,请通读python style guide。在
相关问题 更多 >
编程相关推荐