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

Python字符串格式-类型错误-格式字符串的参数不足,python,string,formatting,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

这根绳子怎么了?我不明白为什么它说格式字符串没有足够的参数。我是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列表。

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

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

str.\uuuu mod\uuuu
的右操作数必须是元组或单个值。因为它不是元组,所以被解释为单个值,而格式字符串需要4元组。将
数据
转换为元组或首先将其设置为元组。

这是因为您只传递包含要格式化的对象的列表。因此,只有一个对象被格式化,列表本身。考虑检查这个可能的重复。考虑将这个问题标记为重复的,因为链接基本上是相同的。thing@DigitalVeer-那么元组是由什么组成的呢。你的回答对我有用。但我是一个初学者,需要了解“元组”是什么,所以我要保持它的开放性。我没有理解一个定义。据我所知。我可以混合使用数据集和字符串,看起来效果不错。即使23是一个数字,我也不需要在这里使用%d。为什么?元组和常规列表的区别是什么?谷歌搜索了一下。元组是不可变的,列表是可变的。它们主要通过方括号和方括号来区分brackets@coderx不要相信我的话;但是,我相信如果使用可变数据类型(e.x.a list),那么它只接受该数据类型给出的第一个值。但是,使用元组之类的不可变模式将确保所有模式都匹配。我会查一查为什么会有这种行为,然后再联系你。