使用str.format
在python 2.7.6中输出时如下所示:
>>> "| {0: ^18} | {1: ^18} |".format(1, 0.001)
结果:
'| 1 | 0.001 |'
我想知道如何抑制输出字符串两端的单引号。
答案 0 :(得分:3)
引号不是format语句的返回值的一部分,它们来自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解释器在报告时不引用字符串结果。
答案 1 :(得分:2)
迎接GreenAsJade的挑战,另一次尝试通过猴子修补str
的子类来直接回答问题,该子类将回显REPL上的 str 表示。
class SillyString(str):
def __repr__(self):
return self.__str__()
实例化字符串:
>>> foo = SillyString('foo')
让它回应Python shell:
>>> foo
foo
与标准Python str:
形成对比>>> 'foo'
'foo'
答案 2 :(得分:1)
GreenAsJade有一个很好的答案(+1),但我会看看我是否可以改进它。
解释器只是通过打印对象的__repr__
来回显REPL中的文字,如果打印的字符串应该显示对象的明确表示。因此,要删除结束引号(以及明确的对象表示),请打印对象:
>>> ['foo'].__repr__()
"['foo']"
>>> 'foo'.__repr__()
"'foo'"
>>> print 'foo'.__repr__()
'foo'
>>> print 'foo'
foo