zoukankan      html  css  js  c++  java
  • goldsun取经----python2与 python3的差异

    python2与 python3的差异

    1.编码方式

    python2中有ASCII str()类型,unicode是单独的,不是byte类型,不支持中文

    python3中有Unicode(utf-8)字符串以及字节类:byte,bytearrays,支持中文

    2.range与xrange

    python2中range返回的是一个列表,xrange返回的是一个生成器

    python3中取消了python2中的range,将python2中的xrange改为range.

    生成器可迭代不需要开辟一块很大的空间,节省内存

    3.round

    python2中round的取值规则为:保留值将保留到离上一位更近的一端(四舍六入),如果距离两端一样远,则保留到离0远的一边。所以round(0.5)会近似到1,而round(-0.5)会近似到-1。

    python3中round的取值规则为:如果距离两边一样远,会保留到偶数的一边。比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。

    但有时候我们会发现保留的值与我们想的有差异,例如round(2.675,2) = 2.67 而不是2.68。这是因为在机器中浮点数不一定能精确表达,换算成一串1和0后可能是无限位数的,机器已经做出了截断处理(小数点后可以保留到17位)。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。就像1.2 -1的结果并不是0.2而是0.1999...6

    s = 1.2 - 1
    print(s)
    0.19999999999999996
    

    4.print

    python2中 print是一个语法结构,打印时可以不加括号

    python3中 print是一个函数,支持多个参数,打印时需要加括号

    5.input

    python2中input 输入的是什么类型,输出就是什么类型

    raw_input 输入什么类型,输出的都是str

    python3中input 类似于python2中的raw_input ,无论输入是什么类型,输出均为str;python3中无raw_input

    6.除法运算'/'

    python2中整数相除结果为一个整数,浮点数除法会保留小数点的位数得到一个浮点数

    python3中整数相除也是一个浮点数

    7.不等于

    python2中不等于有两种写法:!= 和 <>

    python3中去掉了<>,只有!=一种写法

    8.long 和 int

    python2中int 的取值范围为 -2 ** 31 ~ 2 ** 31 -1,超过这个长度自动转换为long类型

    python3中取消了long类型,整数都为int类型

      

  • 相关阅读:
    mongodb复制集配置
    replication set复制集
    CentOS 6.5下源码安装MySQL 5.6
    10个最常见的 HTML5 面试题及答案
    Javascript中document.execCommand()的用法
    javascript 准确的判断类型方法
    getUserMedia API
    javascript
    C++ 面试题
    C++
  • 原文地址:https://www.cnblogs.com/goldsun/p/9885395.html
Copyright © 2011-2022 走看看