python3与2中print有什么区别?

Python (196) 2023-06-12 10:08:22

区别:Python2中的print是一个关键字,而Python3里的print是一个函数。关键字用法“print 要打印的内容”;函数用法“print(要打印的内容)”。

总地来说, Python2.7的print不是一个function,而Python3里的print是一个function。
两都调用方式的主要区别如下:

print'thisisastring'#python2.7
print('thisisastring')#python3

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

print('thisisastring')#python2.7

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

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

>>help(print)
Helponbuilt-infunctionprintinmodulebuiltins:

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

Printsthevaluestoastream,ortosys.stdoutbydefault.
Optionalkeywordarguments:
file:afile-likeobject(stream);defaultstothecurrentsys.stdout.
sep:stringinsertedbetweenvalues,defaultaspace.
end:stringappendedafterthelastvalue,defaultanewline.
flush:whethertoforciblyflushthestream.

2 . 在python3里,能更方便的使用输出重定向
python2.7里,你需要以类似于C++的风格完成重定向:

withopen('print.txt','w')asf:
print>>f,'hello,python!'

在python3里:

withopen('print.txt','w')asf:
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__importprint_function

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

推荐课程:python教程之Django视频教程

THE END

发表回复