【问题标题】:TypeError: 'NoneType'类型错误:'NoneType'
【发布时间】: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


【解决方案1】:

您没有返回selection,而是打印它。将print(selection) 替换为return selection

【讨论】:

  • @CatGod6 如果解决了您的问题,请标记为答案。
  • 在 8 分钟过去之前不会让我标记它,但我会做的!
猜你喜欢
  • 2019-08-22
  • 2012-08-02
  • 2021-08-11
  • 2020-07-17
  • 2018-08-08
  • 2014-06-15
  • 2018-07-07
相关资源
最近更新 更多