【发布时间】:2020-03-09 09:26:18
【问题描述】:
我正在使用以下单行 python 代码打印出我在底部显示的特定模式。
我的代码:
print(*[a, b, for a in range(5): for b in range(3)], sep='\n')
执行上述代码后,我收到了一个invalid syntax 错误,但在那里我找不到任何语法错误。
错误:
Getting error : SyntaxError: invalid syntax
我想要的输出如下:
1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4
如何在一行代码中打印此模式?
感谢您的帮助。
【问题讨论】:
-
到目前为止,答案只提供解决方案,不提供解释。所以:为什么会出现语法错误? 列表理解不允许 1) 元组没有括号(因为人类可能会错误地解释逗号),2) 逗号和冒号出现在奇怪的地方(for 之前/之后, 这里:b 和 for 之间的逗号,两个 fors 之间的冒号)。这将使它:
print(*[(a, b) for a in range(5) for b in range(3)], sep='\n')当然,这只能解决错误,而不是格式 - 但其他人已经解释了字符串格式。 :)