Python
版本
3
,
也被称为
Python 3000
或
Py3K
(仿效
Microsoft® Windows® 2000
操作
系统而命名的昵称)是
Guido van Rossum
通用编程语言的最新版本。虽然新版本对该核
心语言做了很多改进,但还是打破了与
2.x
版本的向后兼容性。其他一些变化则是人们期
待已久的,比如:
真正的除法
—
例如,
1/2
返回的是
.5
。
long
和
int
类型被统一为一种类型,删除了后缀
L
。
True
、
False
和
None
现在都是关键字。
本
文
—
Python
3
系
列
文
章
中的
第一
篇
—
的内
容
涵盖
了新
的
print()
函
数
、
input()
、输入
/
输出(
I/O
)的变化、新的
bytes
数据类型、字符串和字符串格式化的
变化以及内置的
dict
类型的变化。本文面向的是那些熟悉
Python
并对新版本的变化很
感兴趣但又不想费力读完所有
Python
Enhancement
Proposal
(
PEP
)的编程人员。(本
文后面的
参考资料
部分提供了有关这些
PEP
的链接。)
新的
print()
函数
如
今
,
您
将
需
要
让
手
指
习
惯
于
键
入
print("hello")
,
而
不
是
原
来
的
"hello"
,这是因为
现在是一个函数,不再是一个语句。我知道,这多少有点痛
苦。我认识的每个
Python
程序员
—
一旦安装了版本
3
并得到
“
语法不正确
”
错误
—
都会郁闷地大叫。
我知道这两个额外的符号十分讨厌;
我也知道这将会破坏向后兼容性。
但
是这种改变还是有好处的。
让我们考虑这样的情况,即需要将标准输出(
stdout
)重定向到一个日志。如下的例子会打
开文件
log.txt
以便进行追加并将对象指定给
fid
。之后,利用
print>>
将一个字符串
重定向给文件
fid
:
>>>fid = open("log.txt", "a")
>>>print>>fid, "log text"
另外一个例子是重定向给标准错误(
sys.stderr
):
>>>print>>sys.stderr, "an error occurred"
上述两个例子都不错,但还有更好的解决方案。新的语法只要求给
print()
函数的关键
字参数
file
传递一个值就可以了。比如:
>>>fid = open("log.txt", "a")
>>>print("log.txt", file=fid)
这样的代码,语法更为清晰。另一个好处是通过向
sep
关键字参数传递一个字符串就能更
改分割符
(
separator
)
,
通过向
end
关键字参数传递另外一个字符串就能更改结束字符串。
要更改分割符,可以利用:
>>>print("Foo", "Bar", sep="%")
>>>Foo%Bar