При работе с элементами Dictionary в Python встречаются неподдерживаемые типы операндов для +=: 'int' и 'NoneType'

Проблема в том, что во время выполнения этого кода все в порядке:

d={'9h':9, 'Qd':10}
l=['9h', 'Qd', 'test', 'test2']
s=0
for i in range(len(l)):
    if l[i] in d:
        s += d.get(l[i])
print s

Но, делая это с классами, я получил ошибку "неподдерживаемые типы операндов для +=: 'int' и 'NoneType'"

Вот моя реализация класса:

def __init__(self, plr_cur_value, plr_result_score):
        self.plr_cur_value = plr_cur_value
        self.plr_result_score = plr_result_score

def deck_adjust(self):        
    for i in range(len(self.plr_cur_value)):
        if self.plr_cur_value[i] in self.d:
            self.plr_result_score + = self.d.get(plr_cur_value[i])

    return self.plr_result_score

1 ответ

Похоже, у вас могут быть ошибки форматирования, когда score += value линия всегда выполняется и value может быть `None.

Другая возможность состоит в том, что ваш словарь содержит указанный ключ, но соответствующее значение None,

Следующий код может решить несколько проблем в одном:

d = {'9h':9, 'Qd':10}
l = ['9h', 'Qd', 'test', 'test2']
s = 0
for i in l:
    s += d.get(i, 0)
print(s)

Выход:

19
Другие вопросы по тегам