Python字符串格式 - 类型错误 - 格式字符串的参数不足

时间:2017-04-30 15:38:26

标签: python string formatting

这个字符串出了什么问题?我无法弄清楚为什么它说格式字符串没有足够的参数。我是Python新手,只是搞清楚事情。

编辑:这与建议的其他问题不同。另一个是尝试做一些我甚至没有进入的疯狂阵列。我只需要了解元组的基本概念以及字符串格式化的工作原理。

    data = ["John", 23, "United States", "United Kingdom"]
    format_string = "Your name is %s and you are %s years old. You were born in %s and are now living in %s."
    print(format_string %data)

是不是因为我内心没有“字符串”?如何使用包含字符串和数字的单个列表?例如,JSON列表。

2 个答案:

答案 0 :(得分:1)

如果您将列表作为元组传递,它应该可以正常工作。

data = ["John", 23, "United States", "United Kingdom"]
format_string = "Your name is %s and you are %s years old. You were born in %s and are now living in %s."
print(format_string % tuple(data))

答案 1 :(得分:1)

str.__mod__的右操作数必须是元组或单个值。由于它不是元组,因此它被解释为单个值,而格式字符串需要4元组。将data转换为元组或首先将其设为元组。