可以在.format()方法中添加换行符吗?

Jos*_*ana 6 python python-3.x

我一直在读一本教科书,我遇到了一个有趣的问题,要我用print 语句打印一个这样的地址:

John Doe
123 Main Street
AnyCity, AS 09876
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚是否可以使用一个 print语句来实现它,但我无法弄清楚如何使用Python 3中的.format()方法添加换行符.这是我尝试过的:

>>> first = 'John'
>>> last = 'Doe'
>>> street = 'Main Street'
>>> number = 123
>>> city = 'AnyCity'
>>> state = 'AS'
>>> zipcode = '09876'
>>> 
>>> ("{0} {1}\n{2} {3}\n{4}, {5} {6}").format(first, last, number, street, city, state, zipcode)
'John Doe\n123 Main Street\nAnyCity, AS 09876'
>>>
>>> ("{0} {1}'\n'{2} {3}'\n'{4}, {5} {6}").format(first, last, number, street, city, state, zipcode)
"John Doe'\n'123 Main Street'\n'AnyCity, AS 09876"
>>>
>>> ("{0} {1}{7}{2} {3}{8}{4}, {5} {6}").format(first, last, number, street, city, state, zipcode, '\n', '\n')
'John Doe\n123 Main Street\nAnyCity, AS 09876'
>>>
>>> ("{0} {1} \n {2} {3} \n {4}, {5} {6}").format(first, last, number, street, city, state, zipcode)
'John Doe \n 123 Main Street \n AnyCity, AS 09876'
Run Code Online (Sandbox Code Playgroud)

这可能是一个非常简单的问题,我只是缺少一些非常基本的东西.谢谢您的帮助.

Cor*_*mer 13

它适用于你print.请阅读这篇文章解释printVS repr.

print ("{0} {1}\n{2} {3}\n{4}, {5} {6}").format(first, last, number, street, city, state, zipcode)
Run Code Online (Sandbox Code Playgroud)

产量

John Doe
123 Main Street
AnyCity, AS 09876
Run Code Online (Sandbox Code Playgroud)

如果你只是在IDLE中键入一个变量,它实际上会使用repr,这就是它被表示为单行的原因.

>>> repr(("{0} {1}\n{2} {3}\n{4}, {5} {6}").format(first, last, number, street, city, state, zipcode))
"'John Doe\\n123 Main Street\\nAnyCity, AS 09876'"
Run Code Online (Sandbox Code Playgroud)


小智 5

不知道为什么我在其他地方找不到这个答案,但是:

print("{}Walking time is: {:,.3f} hours{}".format("\n", walking_time, "\n"))
Run Code Online (Sandbox Code Playgroud)

工作。只需插入占位符,然后在插入列表中包含 \n。