Python文档翻译:如何让print语句不输出空格和回车
2009 2 5 10:51 PM 9905次查看
再介绍下print语句的作用。
print语句依次计算每个表达式,并将其结果输出到标准输出(standard output )中。如果对象不是字符串,就先将其转换为字符串,然后输出。这个过程使用的是对象的__str__方法。此外,__repr__方法也能实现类似功能(但可以与前者不同)。
在输出每个对象前,print语句会先输出一个空格,除非下述三种情况:
- 还没有任何字符被输出到标准输出上
- 输出的前一个字符为"\n"
- 上一个输出操作使用的不是print语句
此外,每个print语句结束时,将会自动添加一个"\n"字符,除非该语句以逗号","结束。
而用sys.stdout.write则不会自动添加空格和回车。
print语句还有个高级用法,即用>>指定一个输出对象,调用其write方法输出。如果计算出来的输出对象为None,则用sys.stdout作为输出。
文档就全部翻译完了,给些自己写的例子:
[b]>>> print 'a'
a
>>> print 'a\n'
a
>>> print 'a', ; print 'b'
a b
>>> print 'a' ; print 'b' #没有逗号就会换行
a
b
>>> print 'a' 'b' #这里是字符串的自动合并,print会当成一个对象输出,所以没有空格
ab
>>> print 'a', 'b'
a b
>>> import sys
>>> sys.stdout.write("a"); sys.stdout.write("b")
ab
>>> print 'a%s' % b
ab
>>> print 'a' + b
ab
>>> b.__str__()
'b'
>>> b.__repr__() #很奇怪地多个引号
"'b'"
>>> print 'a%s' % repr(b) #这里也有引号
a'b'
>>> print 'a%s' % str(b)
ab
>>> c = 1
>>> print 'a%d' % c
a1
>>> c.__str__()
'1'
>>> c.__repr__()
'1'
>>> print 'a%s' % str(c)
a1
>>> print 'a%s' % c.__str__()
a1
>>> print 'a%s' % repr(c) #这个就没有引号
a1
>>> print 'a%s' % c.__repr__()
a1
>>> print >> sys.stdout, '\n' #仍会自动输出回车
>>> print >> sys.stdout, 'a', b, '%d' % c #仍会自动输出空格
a b 1
>>> print >> None, 'a'
a[/b]
向下滚动可载入更多评论,或者点这里禁止自动加载。