python2与python3 版本区别

编码

  • python2默认编码器为ascii码(只支持字母和符号)python3默认编码器为utf-8(所有语言都支持)

输入输出

  • python2 name = raw_input("请输入姓名") python3 name =input("请输入姓名")
  • 在python2 print "gkf" python3 print("gkf") python2.7版本两种写法都支持

中文

  • python2 coding:utf-8(文件头加,支持中文)
  • 如: # -- coding:utf-8 --

除法

  • py2除法除尽 from_future_ import division 需导入模块
  • py3默认地板除(除尽)
  • py2只取整数部分,小数不保留

长整形

  • py2 有长整型后跟L表示 py3中没有长整形(long)自动转化

内置函数map

  • 内置函数map 结果py3不展示 py2直接展示
    • y2:返回列表
    • py3:返回迭代器,可以循环但不可以索引

xrange

  • py2 xrange(不会立即生成,而是遍循环遍创建)/range(在内存中把所有的值立即生成) py3 range 要想实现xrange list(range(数字))

init

  • 对于包的定义:
    • py2:文件见中必须有 _ _init _ _.py 。
    • py3:不需要 _ init _.py .

reduce

  • reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。

字符串类型

  • 字符串类型不同
    • py3: str bytes
    • py2: unicode str

dict字典

  • 字典
    • keys
      • py2:列表
      • py3:迭代器,可以循环但不可以索引
    • values
      • py2:列表
      • py3:迭代器,可以循环但不可以索引
    • items
      • py2:列表
      • py3:迭代器,可以循环但不可以索引

经典类 新式类

  • 面向对象多继承查找

    • Py2经典类: 深度优先
    • 新式类: 广度优先
  • 面向对象新式类和经典类

    ​ 经典类:

    • Py2:没有super()方法
    • 没有mro()方法:类的查找顺序
    • 深度优先

    ​ 新式类:

    • super按照mro的查找顺序,查找自己的下一个类

未完待补充

欢迎补充~

作 者:郭楷丰
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角 推荐一下。您的鼓励是博主的最大动力!
自 勉:生活,需要追求;梦想,需要坚持;生命,需要珍惜;但人生的路上,更需要坚强。带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。
posted @ 2019-06-20 01:08  郭楷丰  阅读(1925)  评论(0编辑  收藏  举报
Live2D