• 技术文章 >常见问题 >Python常见问题

    新手用python2还是3

    silencementsilencement2019-10-08 13:31:18原创4373

    想学习Python的人都会有一个困惑,那就是Python目前有两个版本Python2和Python3,Python2与Python3有何区别,两个版本该学习哪个呢?

    python3 和 python2 是不兼容的,而且差异比较大,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的。目前实际应用中大部分暂不考虑 Python3,有的时候注意写兼容 2/3 的代码。用 Python2 为主的写新代码时要考虑以后迁移到 Python3 的可能性。据数据统计显示目前10% 使用 Python 3;20% 既使用Python 2也使用Python 3,Python2用的更多;70% 使用Python 2。

    其实python是linux上最常用的软件之一,但是linux目前的版本大部分还是使用python2的,而且,在linux上依赖python2的程序更多一些,所以 Python3 要代替 python2 成为主流还需要几年的时间。如果为了找工作还是学Python 2,学会了Python 2,由Python 2转到python3也不难。

    说了半天,Python2与Python3到底有何区别呢?

    1.性能

    Py3.0运行pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。

    Py3.1性能比Py2.5慢15%,还有很大的提升空间。

    2.编码

    Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:

       >>> 中国 = 'china'
       >>>print(中国)
       china

    3. 语法

    1)去除了<>,全部改用!=

    2)去除``,全部改用repr()

    3)关键词加入as 和with,还有True,False,None

    4)整型除法返回浮点数,要得到整型结果,请使用//

    5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

    6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

    4. 字符串和字节串

    1)现在字符串只有str一种类型,但它跟2.x版本的unicode几乎一样。
    2)关于字节串,请参阅“数据类型”的第2条目

    5.数据类型

    1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long

    2)新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法如下:

    >>> b = b'china'
    >>> type(b)
    <type 'bytes'>

    str对象和bytes对象可以使用.encode() (str-> bytes) or .decode() (bytes -> str)方法相互转化。

    >>> s = b.decode()
    >>> s
    'china'
    >>> b1 = s.encode()
    >>> b1
    b'china'

    3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有

    dict.has_key(),用 in替代它吧

    更多学习内容,请点击python学习网。

    专题推荐:python版本
    上一篇:怎么装python3.6.0 下一篇:python中pop是什么意思

    相关文章推荐

    • python2.7环境如何安装• python2和3可以同时装吗• 学python2.7还是3.5?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网