【发布时间】:2016-06-02 05:44:12
【问题描述】:
好吧,所以我在代码中遇到了这个荒谬的错误,其他 stackoverflow 错误似乎都没有帮助。我需要帮助找出这段代码有什么问题,尤其是在 def makePoem() 部分。
import random
noun = ["fossil" , "horse" , "aardvark" , "chef" , "judge"]
verb= [ "kicks", "jingles", "bounces", "slurps", "meows"]
adjs= ["fury" , "balding" , "incredulous" , "fragant"]
prep= ["against" , "after" , "into" , "beneath" , "for", "in"]
ads= ["curiously" , "extravagantly" , "furiously" , "sensuously"]
def selectn(list, n) :
selection = []
while (len(selection) != n) :
w = random.choice(list)
if w not in selection :
selection.append(w)
print(selection)
# For some reason I'm getting TypeError: 'NoneType' object is not subscriptable for "makePoem()"
def makePoem() :
my_nouns = selectn(noun,3)
my_verbs = selectn(verb,3)
my_adj = selectn(adjs,3)
my_adverb = selectn(ads,1)
my_prepo = selectn(prep,2)
print ("A {} {}".format(my_adj[0], my_nouns[0]))
print("")
print("A {} {} {} {} the {} {}".format(my_adj[0], my_nouns[0], my_verbs[0], my_prepo[0], my_adj[1], my_nouns[1]))
print("{}, the {} {}".format(my_adverb[0], my_nouns[0], my_verbs[1]))
print("the {} {} {} a {} {}".format(my_nouns[1], my_verbs[2], my_prepo[1], my_adj[2], my_nouns[2]))
makePoem()
`
【问题讨论】:
-
selectn()应该返回一些东西吗? -
selectn()返回字符串selection。 -
当您发布Why-does-my-code-not-work-questions 时,您应该:1) 说明您得到什么行为以及您期望什么行为,2) 确保您的示例具有您的行为宣称。发布的代码格式不正确,因此不会出现您声称的行为。此外,exact 错误消息通常很有帮助,因为在 python 中,它通常会告诉错误在哪里。
-
感谢@skyking 我会做的评论!
标签: python python-3.x