Python 2.7 类型错误:%d格式:需要数字,而不是str

Python 2.7 类型错误:%d格式:需要数字,而不是str,python-2.7,Python 2.7,我想用打印格式打印字符串和数字,我 具有以下代码: John = {'strength': 10, 'skill': 10} character1 = "John" strength = eval(character1)['strength'] skill = eval(character1)['skill'] print " %d " % eval(character1)['strength'] print " %d " % strength print "$s's strength is:

我想用打印格式打印字符串和数字,我 具有以下代码:

John = {'strength': 10, 'skill': 10}
character1 = "John"
strength = eval(character1)['strength']
skill = eval(character1)['skill']
print " %d " % eval(character1)['strength']
print " %d " % strength
print "$s's strength is: %d, and $s's skill is: %d" % (character1, strength, character1, skill)
print "$s's strength is: %d, and $s's skill is: %d" % character1, eval(character1)['strength'], character1, eval(character1)['skill']
前两次打印我没有错误,他们打印10,最后两次打印给我: 类型错误:%d格式:需要数字,而不是str


我不明白为什么,请给我一些建议,谢谢

这里有一个错误:
$s
应该是
%s

您是否尝试打印
类型(技能)
?是的,它是int类型。我自己打印它没有问题,如前两个打印语句所示。