我需要澄清 python 中的以下代码以及什么:^38

I need clarification for the following code in python and what :^38

我需要澄清 python 中的以下代码以及 :^38

中的内容
for leaf in [*range(10)]+[2]:
  print(f'{"x"*(leaf*2+1):^38}')

第一行:

for leaf in [*range(10)]+[2]:

您创建 [0,1,2...,10,2]

的列表

连线

  print(f'{"x"*(leaf*2+1):^38}')

你打印 x (leaf*2+1) 次,旁边有空格使所有打印的字符串长度为 38

首先,您想使用反引号 ``` 使您的代码段可读

for leaf in [*range(10)]+[2]: 
    print(f'{"x" + str(leaf*2+1):^38}')

那么先到代码中的issue。您的代码遍历两个列表的串联。第一个具有从 0->9 的范围对象,第二个具有数字 2。我用星号将范围变成它的元素,所以你有一个从 0->9 和数字 2 的列表。

冒号前的波浪括号中的部分是要打印的表达式。由于 (leaf*2 + 1) 是一个数字并且“x”不是一个函数(我假设)你需要使用 str()

将它变成一个字符串

冒号c后面的部分给花括号中的字符串a space 38,并在中间对齐。 Alignment in PEP-3101