簡體   English   中英

“當代碼適用於其他人時,'NoneType'對象不可迭代”。 我怎么弄清楚什么是錯的?

[英]“'NoneType' object is not iterable” when the code works fine for others. How do I figure out what's wrong?

我正在遵循Python中的指導項目,並且我編寫的代碼似乎與解決方案一致,但是,當他們沒有時,我會收到錯誤。

我在網上看到可能需要一個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'對象不可迭代”

對於"for genre in genres_ios"這一行

需要 return語句中displayfreq()或者將返回None 因為genres_iosNone ,所以你不能迭代它並且你得到錯誤。

如果它適用於其他計算機,則displayfreq()可能不適用於您的計算機。

正如您指定的那樣,對於“genres_ios中的 類型: ”行, “TypeError:'NoneType'對象不可迭代 ”,這意味着變量genres_ios的值為None ,因此您會收到這樣的錯誤。

為此,您需要返回已排序頻率表的變量或表達式。

另請注意,在函數displayfreq中,您沒有操作ios_free變量,或者您將更改ios_free的值。 如果你想要ios_free的副本,請使用ios_free.copy()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM