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())