刚刚开始学习python这门编程语言,考虑到python不同版本的一些用法不同,收集整理了一份python2与python3之间的区别,目前可能不全

编码(核心类)

Python2默认编码ascii,Python3默认编码UTF-8,因此使用Python3不需要文件顶部写‘# coding=utf-8’。

py2:
  - ascii
   文件头可以修改:#-*- encoding:utf-8 -*-
py3:
   - utf-8
  文件头可以修改:#-*- encoding:utf-8 -*-

字符串类型(核心类)

Python2中字符串有两种类型:unicode和str,前者表示文本字符串,后者表示字节序列,两者没有明显的界限。

Python3中也有两种类型,str表示字符串,byte表示字节序列,任何需要写入文本或者网络传输的数据都只接收字节序列。

字符串:
py2:
unicode v = u"root" 本质上用unicode存储(万国码)
(str/bytes) v = "root" 本质用字节存储
py3:
str v = "root" 本质上用unicode存储(万国码)
bytes v = b"root" 本质上用字节存储

缩进格式(核心类)

Python2的缩进机制中,1个Tab和8个Space等价的,同时允许缩进中Tab和Space在代码中共存,但这种机制在部分IDE使用中有问题。Python3中Tab和Space不再能共存,同时存在时会报错:

TabError: inconsistent use of tabs and spaces in indentation.

print,exec的用法

在python2中,print作为语句使用,而在python3中作为函数使用,exec同理:

  print(“hello”,“world”)

  在python2中则输出为一个元组;
在pyton3中输出为两个字符串,默认中间用空格隔开。

True和False用法

Python2中True和False都是全局变量,数值分别表示为1和0,因为是变量,所以存在可以被赋值的情况。

Python3中True和False是关键字,固定指向两个固定对象,不再允许被重新赋值。

小数和除法的用法

Python2中/作用就是整除,只输出整数,//是小数除法;

而在Python3中用//作为整除,/是小数除法。

实例:3/2在Python2中输出为1,在Python3中是1.5

比较运算符的区别

Python2中任意两对象都可以比较。

Python3中只有同种数据类型对象可以比较。

nonlocal

在Python2中可以在函数中使用global声明变量为全局变量,但是给一个变量声明为非局部变量是无法实现的。在Python3,新增了关键字nonlocal,使得定义非jubu变量成为了可能。

迭代器

Python2中很多返回列表对象的内置函数和方法。

在Python3中都改成了返回类似于迭代器的对象,迭代器的惰性求值特性使得操作大数据更加有效率。

for循环变量值区别*

python2中,for循环会修改外部相同名称变量的值:

  i = 1
print ('comprehension: ', [i for i in range(5)])
print ('after: i =', i ) #i=4
类似于Python3中:
i=1
for i in range(5):
print(i)
print(i) ##两次结果都是4 Python3,for循环不会修改外部相同名称变量的值:
i = 1
print ('comprehension: ', [i for i in range(5)])
print ('after: i =', i ) #i=1
[i for i in range(5)]生成的是一个链表

round函数返回值区别

Python2,round函数返回int类型值

  isinstance(round(15.5),int) #True

Python3,round函数返回float类型值

  isinstance(round(15.5),float) #True

pyhton2与python3的使用区别的更多相关文章

  1. 字符编码 + python2和python3的编码区别(day08整理)

    目录 昨日回顾 二十三.元组内置方法 二十四.散列表 二十五.字典内置方法 二十六.集合内置方法 二十七.深浅拷贝 拷贝 浅拷贝 深拷贝 今日内容 二十八.字符编码 1.文本编辑器存储信息的过程 2. ...

  2. Python2.x与Python3.x的区别

    这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和 ...

  3. python2.x和python3.x的区别

    一.python2.x和python3.x中raw_input( )和input( )区别 1.在Python2.x中raw_input( )和input( ),两个函数都存在,其中区别为 raw_i ...

  4. [python]python2与python3版本的区别

    python2和python3的区别 区别: print函数 整数相除 Unicode 异常处理 xrange map函数 不支持has_key print函数: Python 2: print是语句 ...

  5. (个人记录)Python2 与Python3的版本区别

    现在还有些开源模块还没有更新到python3 ,不了解版本区别,无法对不合适的地方进行更改. 由于只追求向Python3靠近,所以对于python2的特别用法不探究. 此文不补全所有版本区别,仅作档案 ...

  6. 【python系列】python2.x和python3.x的区别

    刚接触python使用的是python2.x的书籍,但是发现python3.x和python2.x有不小的区别,以下做一些记录 性能 Py3.0运行 pystone benchmark的速度比Py2. ...

  7. python2 中 unicode 和 str 之间的转换及与python3 str 的区别

    在python2中字符串分为unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时需 ...

  8. Python2和Python3之间的区别

    编码区别 Python3.X版本中源码文件默认使用的是utf-8编码 Unicode 字符串 Python 2有两种字符串类型:Unicode字符串和非Unicode字符串 Python 3只有一种类 ...

  9. 字符编码、python2和python3编码的区别

    目录 字符编码 文本编辑器存储信息的过程 python解释器解释python代码的流程 python解释器与文本编辑器的异同 不同编码格式存入与读取数据的过程 乱码的分析 python2和python ...

随机推荐

  1. Python代码规范问题及解决

    Python代码规范问题及解决 为了养成使用Python编程好习惯,尽量保证自己写的代码符合PEP8代码规范,下面是过程中报出的警告及解决方法,英文有些翻译不太准确见谅,会不断更新: PEP 8 只是 ...

  2. jenkins的api操作

    jenkins-client 实现方式 jenkins-client 底层是使用 HttpClient HttpPost 发送post 请求实现的,是将 REST API 封装了一下 添加依赖 < ...

  3. 无法将 Ethernet0 连接到虚拟网络”VMnet0″ 详细信息可以在 vmware.log 文件中找到未能连接虚拟机Ethernet0

    在 vmware“编辑->虚拟网络设置”里面,点“恢复默认”可解决.  

  4. linux 服务器修改密码

    登录服务器后直接输入命令行passwd root 然后输入两次新密码就行

  5. B-彻底删除卸载Ubuntu中的MySQL并重新安装(已验证)

    Ubuntu-16.04,MySQL-5.7,寻找多篇有关如何彻底卸载删除MySQL的博文, 最终验证下面转发博文真实有效,推荐! https://www.jianshu.com/p/c76b31df ...

  6. 使用Swagger2Markup归档swagger生成的API文档

    文章出处: http://blog.didispace.com/swagger2markup-asciidoc/ 说明 项目中使用Swagger之后,我们能够很轻松的管理API文档,并非常简单的模拟接 ...

  7. bzoj3143 游走 期望dp+高斯消元

    题目传送门 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得 ...

  8. 爬虫那些事儿--Http返回码

    由于爬虫的抓取也是使用http协议交互.因此需要了解Http的各种返回码所代表的意义,才能判断爬虫的执行结果. 返回码如下: 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部 ...

  9. IDEA中统计项目代码的总行数

    方法    安装“Statistic”插件步骤    打开idea设置界面,选择 plugins标签   点击下面“Browse repositories”按扭,浏览插件仓库   搜索“Statist ...

  10. __new__构造方法

    """ 对象的创建过程:new创建 返回 模拟实例对象的创建过程. 为啥是静态方法? 先有new后来init.因为init是需要实例对象来调用的,需要一个实例对象和sel ...