“'NoneType'对象不可iterable”时,代码对其他对象运行良好。我怎么知道出了什么事?

2024-09-30 16:35:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在遵循Python中的一个指导项目,我编写的代码似乎与解决方案一致,但是,我得到了一个错误,而他们没有。你知道吗

我在网上看到可能需要一个return语句,但是解决方案不使用它,而且无论我把return放在哪里,我都会得到一个错误。你知道吗

"displayfreq"是我在上面的代码中定义的代码;它生成一个排序频率表。你知道吗

genres_ios = displayfreq(ios_free, -5)

for genre in genres_ios:
    total = 0
    len_genre = 0

    for app in ios_free:
        genre_app = app[-5]
        if genre_app == genre:
            tot_ratings = float(app[5])
            total += tot_ratings
            len_genre += 1
    avg_tot_rating = total / len_genre
    print(genre, 'with average total rating of', avg_tot_ratings)

我希望看到每种类型的平均收视率,但相反,我得到

"TypeError: 'NoneType' object is not iterable"

对于"for genre in genres_ios"


Tags: 代码inappforlenreturn错误解决方案
2条回答

displayfreq()中需要返回语句,否则它将返回None。因为genres_iosNone,所以不能对它进行迭代,从而得到错误。你知道吗

如果它在其他机器上工作,displayfreq()可能不适用于您的机器。你知道吗

当您指定要获取“TypeError:”NoneType“object is not iterable“for the line”for genres\u ios:…”时,这意味着变量genres\u ios具有值None,因此您将获得这样的错误。你知道吗

为此,需要返回排序频率表的变量或表达式。你知道吗

另外请注意,在函数displayfreq中,您没有操作ios\u free变量,否则会更改ios\u free的值。如果你想要一个ios的拷贝,请免费使用ios_免费。副本()。你知道吗

相关问题 更多 >