zoukankan      html  css  js  c++  java
  • (个人记录)Python2 与Python3的版本区别


    现在还有些开源模块还没有更新到python3 ,不了解版本区别,无法对不合适的地方进行更改。

    由于只追求向Python3靠近,所以对于python2的特别用法不探究。

    此文不补全所有版本区别,仅作档案记录我遇到的版本区别.


    print函数:

    在 Python 2 中, print 被视为一个语句而不是一个函数

    更改:

    Python 2中的print语句==>Python 3中的print()函数

    image_thumb1

    image_thumb

     


    input():

    python2的raw_input()更新为Python 3 中的input()


    整数除法:

    更新:

    由py2中的舍去小数的除法==》py3中的计算比较精确的除法

    如果py3中想要不保留小数,使用  // 运算符

    image_thumb2

    image_thumb3

    但要注意小数中//运算符的使用,//是返回比实际的商要小的数。

    image_thumb4


    Unicode编码:

    • 1.Python 2中的字符串基于ASCII
    • 2.Python 3 默认使用 Unicode,Python3中的字符串类型默认是unicode类型的,另外新增了两个字节类:bytes和bytearrays
    • Byte的使用:
      • str对象转换成bytes对象可以使用encode()
      • bytes对象转换成str对象使用decode()
      • Python中对bytes类型的数据带 b前缀的单引号或双引号表示:

    image_thumb6

    • 由于编码变化还导致了python中网络编程函数使用的变化,网络传输都是字节流的,Python2的网络传输默认是字节型的,而python3中字符串是Unicode的,所以python3要对数据进行编码再传输。

    不等运算符

    Python 2.x中不等于有两种写法 != 和 <>

    Python 3.x中去掉了<>, 只有!=一种写法

    现在仍有一些教程保留着<>的用法!


    处理异常:

    捕获异常的语法由 except exception, variable 改为 except exception as variable

    image_thumb5

     

    python3中将一些异常细化了,新增了不少异常


    抛出异常:

    更新:

    py3使用构造函数抛出异常

    raise 异常名, "自定义的异常信息"
    raise 异常名("自定义的异常信息")

    image_thumb1[1]

     


    生成器的迭代:

    python2中支持   生成器.next()

    更新为

    python3中的next(生成器),生成器.__next__()

     

    image_thumb7 


  • 相关阅读:
    C#操作AD及Exchange Server总结(二)
    YUV采样及存储格式
    windows主线程等待子线程退出卡死问题
    fastdb中的位图应用
    【转】浏览器的跨域访问
    【转】linux线程模型
    【转】STL空间配置器
    【转】C++ 内存分配(new,operator new)详解
    Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
    idea启动项目address localhost:1099 is already in use异常解决
  • 原文地址:https://www.cnblogs.com/progor/p/8387189.html
Copyright © 2011-2022 走看看