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类型

goldsun取经----python2与 python3的差异的更多相关文章

  1. Python2和Python3的差异

    之前做Spark大数据分析的时候,考虑要做Python的版本升级,对于Python2和Python3的差异做了一个调研,主要对于语法和第三方工具包支持程度进行了比较. 基本语法差异 核心类差异 Pyt ...

  2. Python2 和Python3 的差异总结

    一.基本语法差异 1.1 核心类差异 Python3对Unicode字符的原生支持 Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str和unicode,Python3 ...

  3. python2与python3的差异

    最近在学习python3,遇到过几次python3与python2的的问题,python2使用,而到了python3就不适用了,就整理了一下自己到目前为止所遇到了几个问题(以下是小白见解) 1.pyt ...

  4. python2和python3编程差异杂谈(-)

    python2 默认编码ascii 在使用中文时要显示的声明   #-*-encoding:utf-8-*- python3 默认编码utf-8,良好的支持了中文输入 python2: print函数 ...

  5. python2 到 python3 转换工具 2to3

    windows系统下的使用方法: (1)将python安装包下的Tools/Scripts下面的2to3.py拷贝到需要转换文件目录中. (2)dos切换到需要转换的文件目录下,运行命令2to3.py ...

  6. Python2与python3中字符串的区别

    Python2 在python中包含两种字符串类型:str和unicode,str并不是完全意义上的字符串,其实是由unicode经过编码(encode)后的字节组成的字节字符串,而unicode则是 ...

  7. Python2.7<-------->Python3.x

    版本差异 from __future__   Python2.7 Python3.x 除法 / // Unicode u''                                       ...

  8. Python2和Python3的一些语法区别

    Python2和Python3的一些语法区别 python 1.print 在版本2的使用方法是: print 'this is version 2 也可以是 print('this is versi ...

  9. Python2和Python3比较分析

    一直有看到网上有讨论Python2和Python3的比较,最近公司也在考虑是否在spark-python大数据开发环境中升级到python3.通过本篇博文记录Python2.7.13和Pthon3.5 ...

随机推荐

  1. I Think I Need a Houseboat POJ - 1005

    I Think I Need a Houseboat POJ - 1005 解题思路:水题 #include <iostream> #include <cstdio> #inc ...

  2. Linux安装nginx详细步骤

    安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 在/usr/local/下创建一个nginx的文件夹 ...

  3. Educational Codeforces Round 6

    620A - Professor GukiZ's Robot    20171122 \(ans=max(\left | x2-x1 \right |,\left | y2-y1 \right |)\ ...

  4. Centos7 编译安装 Nginx PHP Mariadb Memcache扩展 ZendOpcache扩展 (实测 笔记 Centos 7.0 + Mariadb 10.1.9 + Nginx 1.9.9 + PHP 5.5.30)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1503-01.iso 安装步骤: 1.准备 1.1 ...

  5. DTcms 模版用vs2015或2017 打开编辑时候 粘贴出问题 代码被调整

    因为模版语言不是标准的HTML格式 ,所以HTML粘帖的时候会格式化 导致原标签出问题,这里修改下就可以了

  6. 切换controller 后面的最好不要用id参数,不然会根据路由规则改变

    //切换actionResult             return RedirectToAction("Edit", "EngineeringCase",  ...

  7. Hibernate--Day01

    Hibernate是一个面向对象的持久化框架 持久化: 1,把内存中的Java对象保存到存储设备上面: 2,最好的解诀方案:把对象持久化到数据库里面: 3, 在Java里面,把对象持久化到数据库只能使 ...

  8. js_2_逻辑分支

  9. Gym 101606L - Lounge Lizards - [计算几何+LIS]

    题目链接:https://codeforces.com/gym/101606/problem/L 题解: 在同一条线上的所有蜥蜴,他们的斜率都是相通的,换句话说可以直接通过斜率将蜥蜴分组. 每一组即代 ...

  10. SQL之NULL值的几种处理方式

    1.创建测试表: drop table if exists tab_null_operator; create table tab_null_operator as select 1 as id,'c ...