您的位置:首页 > 编程语言 > Python开发

Python 2.7与Python3 的print有什么区别?

2017-05-11 16:58 465 查看
总地来说, Python2.7的print不是一个function,而Python3里的print是一个function。

两都调用方式的主要区别如下:

print 'this is a string' #python2.7
print('this is a string') #python3


当然,python2.7里你也可以用括号把变量括起来, 一点都不会错:

print('this is a string') #python2.7


但是python3将print改成function不是白给的:

1. 在python3里,能使用
help(print)
查看它的文档了, 而python2不行:

>>help(print)
Help on built-in function print in module builtins:

print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file:  a file-like object (stream); defaults to the current sys.stdout.
sep:   string inserted between values, default a space.
end:   string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.


2 . 在python3里,能更方便的使用输出重定向

python2.7里,你需要以类似于C++的风格完成重定向:

with open('print.txt', 'w') as f:
print >> f, 'hello, python!'


在python3里:

with open('print.txt', 'w') as f:
print('hello, python!', file = f)


file
是python3 print新加的一个参数。 另一个很handy的参数是
sep
, 例如打印一个整数数组, 但你想用星号而不是空格连接。python2时可能需要写一个循环来完成, python3里这样就行了:

a = [1, 2, 3, 4, 5]
print(*a, sep = '*')


最后, 如果想在python2.7里使用python3的print,只需要在第一句代码前加入:

from __future__ import print_function


注意,
from __future__ import ...
一类的语句一定要放在代码开始处。

References

http://www.cnblogs.com/kaitoex/p/6085606.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python