代码说我有一个"TypeError: int() can't convert non-string with explicit base".我该如何解决这个问题?这是我的代码对不起,如果它不好


from collections import namedtuple
BeltStats = namedtuple('BeltStats', 'score ninjas')
ninja_belts = {'yellow': BeltStats(50, 11),
'orange': BeltStats(100, 7),
'green': BeltStats(175, 1),
'blue': BeltStats(250, 5)}

def get_total_points(belts=ninja_belts):
total_scores = []

for i in belts:
total_scores.append(int(belts[i].score,belts[i].ninjas))

return sum(total_scores)

get_total_points()

问题出在传递给int()的第二个参数上。第二个参数必须是有效的基值,并且默认值为10。

我认为你在这里只是想把分数加起来。因此,正确的代码将是

from collections import namedtuple
BeltStats = namedtuple('BeltStats', 'score ninjas')
ninja_belts = {'yellow': BeltStats(50, 11), 'orange': BeltStats(100, 7), 'green': BeltStats(175, 1), 'blue': BeltStats(250, 5)}
def get_total_points(belts=ninja_belts):
total_scores = []
for i in belts:
total_scores.append(int(belts[i].score))
return sum(total_scores)
print(get_total_points())

最新更新