为了不带入过量的累坠,Python 3.0在设想的时刻没有斟酌向下相容。
很多针对初期Python版本设想的程式都没法在Python 3.0上平常实行。
为了照应现有程式,Python 2.6作为一个过渡版本,基础运用了Python 2.x的语法和库,同时斟酌了向Python 3.0的迁徙,许可运用部份Python 3.0的语法与函数。
新的Python程式发起运用Python 3.0版本的语法。
除非实行环境没法装置Python 3.0或许程式自身运用了不增援Python 3.0的第三方库。如今不增援Python 3.0的第三方库有Twisted, py2exe, PIL等。
大多半第三方库都正在努力地相容Python 3.0版本。纵然没法马上运用Python 3.0,也发起编写相容Python 3.0版本的程式,然后运用Python 2.6, Python 2.7来实行。
Python 3.0的变化主要在以下几个方面
print语句没有了,取而代之的是print()函数。
Python 2 有 ASCII str() 范例,unicode() 是零丁的,不是 byte 范例。
如今, 在 Python 3,我们终究有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。
在python 3.x中/除法不再这么做了,关于整数之间的相除,效果也会是浮点数。
在 Python 3 中处置惩罚非常也细微的改变了,在 Python 3 中我们如今运用 as 作为关键词。
捕捉非常的语法由 except exc, var 改成 except exc as var。
在 Python 3 中,range() 是像 xrange() 那样完成以至于一个特地的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出定名非常)。
在Python 3.x中,示意八进制字面量的体式格局只要一种,就是0o1000。
Python 3.x中去掉了<>, 只要!=一种写法,还好,我从来没有运用<>的习气
Python 3.x 中去掉了``这类写法,只许可运用repr函数,如许做的目标是为了使代码看上去更清楚么?不过我觉得用repr的时机很少,平常只在debug的时刻才用,多半时刻照样用str函数来用字符串形貌对象。
多个模块被更名(依据PEP8)
Py3.X去除了long范例,如今只要一种整型——int,但它的行动就像2.X版本的long
新增了bytes范例,对应于2.X版本的八位串,定义一个bytes字面量的要领以下:
str对象和bytes对象能够运用.encode() (str -> bytes) or .decode() (bytes -> str)要领互相转化。
dict的.keys()、.items 和.values()要领返回迭代器,而之前的iterkeys()等函数都被烧毁。同时去掉的另有 dict.has_key(),用 in替换它吧 。
以上就是python3是什么的细致内容,更多请关注ki4网别的相干文章!