Hoe meerdere regels tekst met Python

Als ik meerdere regels tekst in Python wilde afdrukken zonder print('')voor elke regel te typen, is er een manier om dat te doen?

Ik gebruik dit voor ASCII Art.

(Python 3.5.1)


Antwoord 1, Autoriteit 100%

U kunt Triple -offertes (single ‘of dubbele “) gebruiken:

a = """
text
text
text
"""
print(a)

Antwoord 2, Autoriteit 34%

Voor zover ik weet, zijn er drie verschillende manieren.

Gebruik \nin uw afdruk:

print("first line\nSecond line")

Gebruik sep="\n"in afdrukken:

print("first line", "second line", sep="\n")

Gebruik Triple Quotes en een Multiline String:

print("""
Line1
Line2
""")

Antwoord 3, Autoriteit 12%

Ik wilde antwoorden op de volgende vraag die een beetje anders is dan dit:

Beste manier om berichten op meerdere regels af te drukken

Hij wilde ook lijnen weergeven van herhaalde tekens. Hij wilde deze output:

----------------------------------------
# Operator Micro-benchmarks
# Run_mode: short
# Num_repeats: 5
# Num_runs: 1000
----------------------------------------

U kunt die lijnen binnen F-snaren maken met een vermenigvuldiging, zoals deze:

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)

Antwoord 4, autoriteit 6%

Het antwoord met drievoudige aanhalingstekens is geweldig voor ASCII-kunst, maar voor degenen die zich afvragen: wat als mijn meerdere regels een tuple, lijst of andere iterable zijn die strings retourneert (misschien een lijstbegrip?), wat dacht je van:

print("\n".join(<*iterable*>))

Bijvoorbeeld:

print("\n".join(["{}={}".format(k, v) for k, v in os.environ.items() if 'PATH' in k]))

Other episodes