我的目标是代码中的最后一个打印行,但我真的不能因为我不断收到此错误TypeError:
不支持的操作数类型+:'int
'和'{{1} }”。是否有一种快速方法只更改输出部分以实现这一目标?我仍然需要将它们转换为int,但在这个输出的情况下,我需要在int旁边加上“Population”和“Area”字样!
str
答案 0 :(得分:4)
您必须将它们转换为str()
的字符串:
print(reply + "- \tArea: " + str(countries[reply][0]) + "\tPopulation: " + str(countries[reply][1]))
或者将它们作为参数传递,让print
处理它:
print(reply + "- \tArea:", countries[reply][0] + "\tPopulation:", countries[reply][1])
虽然此时我会使用字符串格式:
print('{}- \tArea: {}\tPopulation: {}'.format(reply, rountries[reply][0], rountries[reply][1]))
答案 1 :(得分:1)
或者您可以使用'%'用于告诉打印行您正在使用字符串的符号:
print(reply + "- \tArea: %s" % countries[reply][0] + "\tPopulation: %s" + % countries[reply][1])
Python3建议使用{:s}代替%s。一开始可能看起来令人生畏,但它不是太糟糕而且有用。
print("{reply}-\tArea: {area}\tPopulation: {population}".format(reply=reply,area=countries[reply][0],population=countries[reply][1]))