(Python 3)有人能解释下面的输出吗?
我开始学习Python,但我对字符串格式一窍不通。我只是在玩代码,但我不明白为什么会发生下面的行为 有人能解释一下吗 代码:(Python 3)有人能解释下面的输出吗?,python,python-3.x,Python,Python 3.x,我开始学习Python,但我对字符串格式一窍不通。我只是在玩代码,但我不明白为什么会发生下面的行为 有人能解释一下吗 代码: nums = [4, 5, 6] msg = "Numbers: {0} {2} {1} {2}". format(nums[1], nums[2], nums[1]) print(msg) 输出: Numbers: 5 5 6 5 您正在使用格式功能。 它将采用括号中定义的{format function中的参数数} 让我们对msg行进行一些预处理: nums =
nums = [4, 5, 6]
msg = "Numbers: {0} {2} {1} {2}". format(nums[1], nums[2], nums[1])
print(msg)
输出:
Numbers: 5 5 6 5
您正在使用
格式
功能。它将采用括号中定义的
{format function中的参数数}
让我们对msg行进行一些预处理:
nums = [4, 5, 6]
msg = "Numbers: {0} {2} {1} {2}". format(nums[1], nums[2], nums[1])
等于
msg = "Numbers: {0} {2} {1} {2}". format(5, 6, 5)
因为您正在按索引(基于0的索引)从nums
列表中获取元素
最后,格式中的{number}
将从参数中获取:
msg = "Numbers: 5 5 6 5". format(5, 6, 5)
所以{0}
和{2}
等于5和
{1}
等于6我从未使用过python,但答案对我来说似乎很简单
nums = [4, 5, 6]
这意味着nums[0]=4,nums[1]=5,nums[2]=6
现在在
msg = "Numbers: {0} {2} {1} {2}". format(nums[1], nums[2], nums[1])
这意味着按顺序,它将给出0,1,2的值
{0} = nums[1]
{1} = nums[2]
{2} = nums[1]
所以最终的结果是
{0} = nums[1] = 5
{2} = nums[1] = 5
{1} = nums[2] = 6
{2} = nums[1] = 5
因此,您得到的结果5565分别是
{0}
、{1}
和{2}
引用值nums[1]
、nums[2]
和nums[1]
(或分别是5、6和5)。因此,当你写作时:
"Numbers: {0} {2} {1} {2}"
这真的很像写作:
Numbers: nums[1] nums[1] nums[2] nums[1]
或者
以上都是等价的谢谢你的回答。我清楚地理解字符串格式问题。
Numbers: 5 5 6 5