簡體   English   中英

如何在Python中打印行

[英]How to print lines in Python

我在Python中遇到過這樣的代碼:

print "Let's talk about %s." % my_name

但是,我在Ruby中看到了兩種情況具有相同輸出的情況:

print "Let's talk about #{my_name}."

print "Let's talk about %s." % my_name"

只有一種方法可以在Python中打印同一行嗎?

在Python中,還有幾種方法:

print "let's talk about this %s" % my_name
print "let's talk about this {:s}".format(my_name)
print "let's talk about this", my_name

全部產生相同的輸出。 但是,鼓勵使用.format方法(自Python v 2.6起可用)而不是舊的% (引用3.0的新增功能 :“ ... ...仍支持%運算符;它將在Python中棄用。 3.1,並在稍后的時間將其從語言中刪除。 ”)

最后,從Python v3.x開始, print是一個函數,因此所有print語句都需要()

在紅寶石中, {}之間的部分是一個表達式。 Python有沒有辦法來評估格式字符串的表達式這種方式。

print "Let's talk about #{my_name}."

在表達式只是一個變量的簡單情況下,您可以使用

print "Let's talk about %(my_name)s"%{'my_name':my_name}

或此處其他答案中給出的其他任何替代方法。

首選方法是使用format()。 例如。

print "Let's talk about {my_name}".format(my_name=my_name)

您也可以串聯字符串。 這少了pythonic的特性,使您對輸出的最終外觀的控制更少,但是一些非程序員似乎覺得這更容易閱讀(例如,如果您正在討論特定的計算):

print "Let's talk about " + str( my_name )

str()函數可能是必需的,也可能不是必需的,但是它允許您添加其他數據類型(例如整數)而不會出現TypeError。

有關string.format()與%的更多信息,請參見此較早的文章: Python字符串格式:%與.format

除了這里的其他答案外,還有映射鍵,我花了很長時間才發現它在Python中的生命。

>>> '%(foo)s' % {'foo': 'bar'}
'bar'

看一下整個shebang的字符串格式化操作

我的最愛之一是使用值字典:

>>> values = {"name": "john"}
>>> print "Let's talk about {name}".format(**values)
Let's talk about john

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM