(python3)有人能解释下面的输出吗?

2024-06-02 05:35:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始学习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 

Tags: 字符串代码format格式msgprintnumbersnums
3条回答

{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

以上都是等价的

我从未使用过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

您正在使用format函数。
需要{number of parameter in format function}才能在括号中定义。你知道吗

让我们对味精行进行一些预处理:

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)

因为您正在按索引从nums列表中获取元素(基于0的索引)

最后,格式上的{number}将取自参数:

msg = "Numbers: 5 5 6 5". format(5, 6, 5)

所以{0}{2}等于5和 {1}等于6

相关问题 更多 >