[python]python2与python3版本的区别
python2和python3的区别
区别:
- print函数
- 整数相除
- Unicode
- 异常处理
- xrange
- map函数
- 不支持has_key
print函数:
Python 2: print是语句(statement)
print "Hello World!" # 结果:Hello World!
Python 3: print是函数
print('Hello World!')
# 结果:Hello World!
print 'Hello World'
# 结果:SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Hello World')?
整数相除:
Python 2: 3/2的结果是整数
print 3 / 2 # 结果:1 print 3 / 2.0 # 结果:1.5
Python 3: 3/2的结果是浮点数
print(3 / 2) # 结果:1.5 print(3 / 2.0) # 结果:1.5
Unicode:
Python 2: 有两种字符串类型:str和unicode
a = '您好'
print a # 结果:SyntaxError: Non-ASCII character '\xe6' in file ......, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details # 在Python 2中,如果代码中包含非英文字符,需要在代码文件的最开始声明编码
# _*_ coding:utf-8 _*_ a = '您好'
print a # 结果:您好
Python 3: 字符串默认就是Unicode
a = '您好'
print(a) # 结果:您好
Python 3中的str相当于Python 2中的unicode
异常处理:
Python 2:
try:
result = 1 / 0
print result
except ZeroDivisionError, e:
print str(e) # 结果:integer division or modulo by zero
或
try:
result = 1 / 0
print result
except ZeroDivisionError as e:
print str(e) # 结果:integer division or modulo by zero
Python 3: 只支持as关键字
try:
result = 1 / 0
print(result)
except ZeroDivisionError as e:
print(str(e)) # 结果:division by zero
xrange:
Python 2: 有 range 和 xrange 两个方法
区别:
- range返回一个list,在被调用的时候即返回整个序列
- xrange返回一个iterator,在每次循环中生成序列的下一个数字
# range
print range(4) # 结果:[0, 1, 2, 3] # xrange
print xrange(4) # 结果:xrang(4)
Python 3: 不再支持 xrange 方法
print(range(4)) # 结果:range(0, 4) for i in range(4):
print(i, end=' ') # 结果:0 1 2 3
Python 3中的 range 方法就相当于 Python 2中的 xrange 方法
map函数:
Python 2: map函数返回list
print map(lambda x: x+1, range(5)) # 结果:[1, 2, 3, 4, 5]
Python 3: map函数返回iterator
print(map(lambda x: x+1, range(5))) # 结果:<map object at 0x00000233A7B85E10> print(list(map(lambda x: x+1, range(5)))) # 结果:[1, 2, 3, 4, 5]
filter函数在Python 2和Python 3中也是同样的区别
不支持has_key:
Python 2:
my_dict = {"age": 30, "name": "Zhang San"}
print my_dict.has_key("age")
print "age" in my_dict
# 结果:True
# True
Python 3:
my_dict = {"age": 30, "name": "Zhang San"}
print("age" in my_dict)
# 结果:True
print(person.has_key("age"))
# 结果:AttributeError: 'dict' object has no attribute 'has_key'
[python]python2与python3版本的区别的更多相关文章
- 字符编码 + python2和python3的编码区别(day08整理)
目录 昨日回顾 二十三.元组内置方法 二十四.散列表 二十五.字典内置方法 二十六.集合内置方法 二十七.深浅拷贝 拷贝 浅拷贝 深拷贝 今日内容 二十八.字符编码 1.文本编辑器存储信息的过程 2. ...
- python版本坑:md5例子(python2与python3中md5区别)
对于一些字符,python2和python3的md5加密出来是不一样的. Python2 和Python3MD5加密 # python2.7 pwd = "xxx" + chr(1 ...
- Python - Python2与Python3的区别、转换与兼容
区别 Python2.x与Python3.x版本区别:http://www.runoob.com/python/python-2x-3x.html 示例解读Python2和Python3之间的主要差异 ...
- 《转》windows下通过cmd切换python2和python3版本
当电脑中同时安装了python2和python3时,往往会由切换版本的需求.那么如何通过cmd命令行做到呢? 方法:修改python.exe的文件名 举个栗子: 我的电脑中同时安装了py2.7.10和 ...
- 字符编码、python2和python3编码的区别
目录 字符编码 文本编辑器存储信息的过程 python解释器解释python代码的流程 python解释器与文本编辑器的异同 不同编码格式存入与读取数据的过程 乱码的分析 python2和python ...
- Python - Python2与Python3合理共存Windows平台
Install Python2 and Python3 Python 2.7.13 - Windows x86-64 MSI installer Python 3.6.0 - Windows x86- ...
- python2与python3 版本区别
目录 编码 输入输出 中文 除法 长整形 内置函数map xrange init reduce 字符串类型 dict字典 经典类 新式类 未完待补充 编码 python2默认编码器为ascii码(只支 ...
- python第七十课——python2与python3的一些区别
1.性能:py3.x起始比py2.x效率低,但是py3.x有极大的优化空间,效率正在追赶 2.编码:py3.x原码文件默认使用utf-8编码,使得变量名更为广阔 中国='CHI' print(中国) ...
- Python2和Python3之间的区别
编码区别 Python3.X版本中源码文件默认使用的是utf-8编码 Unicode 字符串 Python 2有两种字符串类型:Unicode字符串和非Unicode字符串 Python 3只有一种类 ...
随机推荐
- 渗透常用dos命令,http协议及数据提交方式。 hack 某某
dir查看目录 cd 切换目录 strat www.xxx.com 打开网页 del 删除文件 cls 清屏幕命令 ipconfig 查看ip地址 netstat -an 显示网络连接.路由 ...
- java.lang.NoClassDefFoundError 错误
练习jfianl,,,配置数据库插件的时候遇到: java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/ComboPooledDataSource 解 ...
- h5新增标签及css3新增属性
- h5新增的标签 新增元素 说明 video 表示一段视频并提供播放的用户界面 audio 表示音频 canvas 表示位图区域 source 为video和audio提供数据源 track 为vi ...
- android studio样式文件汇总
android studio样式文件汇总:shape.Theme|styles .selector 1:shape shape用于设定形状,有6个子标签,各属性如下: res/drawable/sty ...
- kafka7 探索生产者同步or异步发送消息
1.生产者:在发送完消息后,收到回执确认. 主要是在SimpleProducer.java中修改了发送消息的2行代码,用到了回调函数,修改如下: //发送消息 ProducerRecord<St ...
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- Tomcat服务安全加固
Tomcat服务默认启用了管理后台功能,使用该后台可直接上传 war 文件包对站点进行部署和管理.由于运维人员的疏忽,可能导致管理后台存在空口令或者弱口令的漏洞,使得黑客或者不法分子可以利用该漏洞直接 ...
- PHP GZ压缩与解压
/*将字符串添加至GZ文件*/ function gz_str($str,$gz_name){ $fp = gzopen ($gz_name, 'w9'); gzwrite ($fp, $str); ...
- JavaScript 原型链学习(三)原型对象存在的问题 与 组合使用构造函数和原型
原型对象也不是没有缺点.首先,它省略了为构造函数传递初始化参数这一环节, 结果所有实例在默认情况下都将取得相同的属性值.虽然这会在某种程度上带来一些不方便, 但还不是原型对象的最大问题.原型对象的最大 ...
- Poj3624 Charm Bracelet (01背包)
题目链接:http://poj.org/problem?id=3624 Description Bessie has gone to the mall's jewelry store and spie ...