目录
Python 2.x 与 Python 3.x 的主要区别:
Python 2.x 与 Python 3.x 的主要区别:
1) PRINT IS A FUNCTION
在Python 3.x中,输出语句需要使用print()函数,该函数接收一个关键字参数,以此来代替Python 2.x中的大部分特殊语法。下面是几个对比项:
目标 | Python 2.x的实现 | Python 3.x的实现 |
---|---|---|
拼接并输出多个值 | print "The result is", 2+3 | print("The result is", 2+3) |
打印一个元祖(1,2,3) | print(1,2,3) 或 print (1,2,3) | print((1,2,3)) |
输出一个内容并且不换行 | print “Hello”, | print("Hello", end=" ") |
输出一个新空白行 | print() | |
将输出内容输出到标准错误输出文件 | print >>sys.stderr, "fatal error" | print("fatal error", file=sys.stderr) |
自定义多个输出内容之间的分隔/拼接符 | N/A | print("There are <", 2**32, "> possibilites!", sep="") |
2) ALL IS UNICODE
Python 2.x中使用的默认字符编码为ASCII码,要使用中文字符的话需要指定使用的字符编码,如UTF-8;Python 3.x中使用的默认字符编码为Unicode,就不存在这个问题了。
3) 多变量同时赋值问题
python 2.x中如果要给多个变量同时赋值,要求=号右边的表达式返回结果的个数要与=号左边接收值的变量个数相等,不能多,也不能少。如:
a,b,c = (1,2,3) # 正常,a=1, b=2, c=3
a,b,c = range(5) # 报错,ValueError: too many values to unpack
a,b,c,d,e = [1,2,3] # 报错,ValueError: need more than 3 values to unpack
python 3.x中允许=号昨边的变量数小于=号右边表达式返回的结果的个数,但是需要有1个且只能有1个字典类型的变量来接收多余的返回值。 python 3.x中&