如果我想在Python中打印多行文本而不为每行键入print('')
,有没有办法做到这一点?我正在将它用于ASCII艺术。
(python 3.5.1)
答案 0 :(得分:31)
您可以使用三重引号(单个或双重):
a = """
text
text
text
"""
print(a)
答案 1 :(得分:8)
据我所知,有3种不同的方式。
在打印中使用\n
print("first line\nSecond line")
在打印中使用sep="\n"
print("first line", "second line", sep="\n")
使用三引号和多行字符串
print("""
Line1
Line2
""")
答案 2 :(得分:1)
三重引号的答案对于ascii艺术很有用,但对于那些想知道的人 - 如果我的多行是元组,列表或其他返回字符串的迭代(可能是列表理解?),那该怎么样:
print("\n".join(<*iterable*>))
例如:
print("\n".join([ "{}={}".format(k, v) for k, v in os.environ.items() if 'PATH' in k ]))
答案 3 :(得分:0)
我想回答以下与这个稍有不同的问题:
best way to print messages on multiple line
他也想显示重复字符的行。他想要这个输出:
----------------------------------------
# Operator Micro-benchmarks
# Run_mode : short
# Num_repeats : 5
# Num_runs : 1000
----------------------------------------
您可以使用乘法在f字符串中创建这些行,如下所示:
run_mode, num_repeats, num_runs = 'short',5,1000
s = f"""
{'-'*40}
# Operator Micro-benchmarks
# Run_mode : {run_mode}
# Num_repeats : {num_repeats}
# Num_runs : {num_runs}
{'-'*40}
"""
print(s)