【发布时间】:2020-06-16 08:37:45
【问题描述】:
您好,我在某个网站的某个地方找到了以下功能,但有几个问题。该函数返回由星号组成的 n 行菱形。
- 这是一个串联的 for 循环吗?你能做到吗?
- 那个 f-string 发生了什么?
'':*<{line*2+1}是如何工作的?
def diamond(n):
result = ""
for line in list(range(n)) + list(reversed(range(n-1))):
result += f"{'': <{n - line - 1}} {'':*<{line*2+1}}\n"
return result
【问题讨论】:
-
它在文档中。我不想将其复制粘贴到答案中,所以这是链接:docs.python.org/3/reference/lexical_analysis.html#f-strings
-
当您说“级联循环”时,您指的是循环的哪一部分?
-
fstring 基本等同于
' ' * (n - line - 1) + '*' * (line*2+1) + "\n" -
也可以查看this docs了解更多信息
-
@Arcanefoam
for line in list(range(n)) + list(reversed(range(n-1))):带有加法运算符的部分。这样使用有什么效果?说两个 for 循环的语法糖是公平的吗?
标签: python python-3.x f-string pep