使用str.format時,當在Python 2.7.6使用str.format
到輸出,如下圖所示:報價在python
>>> "| {0: ^18} | {1: ^18} |".format(1, 0.001)
這個結果:
'| 1 | 0.001 |'
我想知道如何抑制單輸出字符串任一端的引號。
使用str.format時,當在Python 2.7.6使用str.format
到輸出,如下圖所示:報價在python
>>> "| {0: ^18} | {1: ^18} |".format(1, 0.001)
這個結果:
'| 1 | 0.001 |'
我想知道如何抑制單輸出字符串任一端的引號。
的引號不格式聲明的返回值的一部分,它們是從Python解釋器來了,告訴你,這是你展示一個字符串值:
momerath:~ mgregory$ python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> "| {0: ^18} | {1: ^18} |".format(1, 0.001)
'| 1 | 0.001 |'
>>> print "| {0: ^18} | {1: ^18} |".format(1, 0.001)
| 1 | 0.001 |
>>> a = 1
>>> a
1
>>> a = "foo"
>>> a
'foo'
>>> print a
foo
>>>
...因此,如果您只想看到字符串的值,只需打印即可。
我不知道有一種方法要求python解釋器在報告時不要引用字符串結果。
謝謝GreenAsJade。我沒有意識到結果並不是針對輸出的。 – dougc905
GreenAsJade有一個很好的答案(+1),但我會看看我是否可以改進它。
解釋器僅通過打印對象的__repr__
來回顯REPL中的文字,如果打印的字符串應顯示對象的明確表示形式。所以要去除結束引號(因而明確對象表示),打印對象:
>>> ['foo'].__repr__()
"['foo']"
>>> 'foo'.__repr__()
"'foo'"
>>> print 'foo'.__repr__()
'foo'
>>> print 'foo'
foo
不錯的觀察。要用這種想法真正地指出它,你應該展示如何對一個字符串的__repr __()進行猴子修補。這將真正回答OP的問題「我怎麼能阻止python這樣做」;)(我得到了「不能設置內置類型str的屬性」) – GreenAsJade
上升到GreenAsJade的挑戰,和另一企圖通過直接回答這個問題猴子打補丁的str
一個子類,將回顯REPL上的str表示。
class SillyString(str):
def __repr__(self):
return self.__str__()
實例化字符串:
>>> foo = SillyString('foo')
而且有它迴盪在Python的外殼:
>>> foo
foo
與標準Python STR對比:
>>> 'foo'
'foo'
嚴格地說,我不認爲你可以'猴子補丁「實例化的字符串是因爲它是不可變的」。實際上,你不需要修補程序實例,你可以修補修補程序類。我無法找到一個猴子補丁因爲它是_built in_。不錯的愚蠢的字符串雖然:) – GreenAsJade
我想它更多的是它作爲一個內置的C實現好點,我會修改我的意見。 –
你的意思' str.format',而不是'sys.format'。 – senshin