При работе с элементами 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