簡體   English   中英

Python 錯誤:+ 不支持的操作數類型:'int' 和 'NoneType'

[英]Python Error: unsupported operand type(s) for +: 'int' and 'NoneType'

我不明白這個錯誤或它意味着什么。 我會將我的代碼粘貼在下面,但我認為這並不重要; 我只是想了解這個錯誤。

把所有數字1-1000(含)中的字母相加只需一點代碼

def number_translator(x):
    if x == 1:
        return 3
    elif x == 2:
        return 3
    elif x == 3:
        return 5
    elif x == 4:
        return 4
    elif x == 5:
        return 4
    elif x == 6:
        return 3
    elif x == 7:
        return 5
    elif x == 8:
        return 5
    elif x == 9:
        return 4
    elif x == 10:
        return 3
    elif x == 11:
        return 6
    elif x == 12:
        return 6
    elif x == 14:
        return 8
    elif x == 15:
        return 7
    elif x == 16:
        return 7
    elif x == 17:
        return 9
    elif x == 18:
        return 8
    elif x == 19:
        return 8
    elif x == 20:
        return 6
    elif x == 30:
        return 6
    elif x == 40:
        return 5
    elif x == 50:
        return 5
    elif x == 60:
        return 5
    elif x == 70:
        return 7
    elif x == 80:
        return 6
    elif x == 90:
        return 6

count = 0
for element in range(1, 1001):
    if element < 21:
        count += number_translator(element)              # for numbers 1 - 20
    elif 20 < element < 100:
        count += number_translator(int(str(element)[0]) * 10) + number_translator(int(str(element)[1]))  # for numbers 21 through 100
    elif element % 100 == 0 and element != 1000:
        count += number_translator(int(str(element)[0])) + 7   # for numbers divisible by 100, but not 1000
    elif element == 1000:
        count += 11                                          # just for 1000
    elif element % 100 < 20:
        count += number_translator(int(str(element)[0])) + 10 + number_translator(int(str(element)[1:3]))      # now I add in numbers like 101 - 120, 201 - 220, etc.
    else:
        count += number_translator(int(str(element)[0])) + 10 + number_translator(int(str(element)[1]) * 10) + number_translator(int(str(element)[2])) # now the rest( 121, 122, 123, 225, 256, 984, etc.)

print(count)

number_translator()中的if測試都沒有計算為 true 時,該函數返回None 錯誤消息是結果。

每當您看到包含'NoneType'的錯誤時,這意味着您有一個操作數或一個在您期望其他內容時為None的對象。

在你的巨型elif鏈中,你跳過了 13。如果你在沒有返回任何東西的情況下到達鏈的末尾,你可能想拋出一個錯誤,以捕獲你錯過的數字和函數的錯誤調用:

...
elif x == 90:
    return 6
else:
    raise ValueError(x)

我在處理圖像時遇到了類似的“/”操作數錯誤。 我發現該文件夾包含一個由“XnView”圖像查看器創建的文本文件。 因此,當某個對象不是預期的對象類型時,就會發生這種錯誤。

我從以下位置收到此錯誤:

blocksize = args.blocksize hop = blocksize // 2

我什至在定義塊大小的 args 調用中提供了一個默認值。 只有在調用從其 args 值初始化 blocksize 之前插入 blocksize = 0 才能避​​免該錯誤。 args 是“特殊的”(在任何一種情況下)嗎?

暫無
暫無

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

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