[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只有一种类 ...
随机推荐
- Android开发入门经典【申明:来源于网络】
Android开发入门经典[申明:来源于网络] 地址:http://wenku.baidu.com/view/6e7634050740be1e650e9a7b.html?re=view
- python->解析xml文件
'''"D:\three_test\gpn_InternetGatewayDevice_v2.xml" <SOAP-ENV:Envelope> <SOAP-ENV ...
- CH#46 磁力块 分块
正解:分块+bfs 解题报告: 先放个传送门,然后瞎扯淡下QAQ 突然感觉不停课大概是正确的选择QAQ 大概实在是没有天赋?明明都知道正解是分块甚至还听了下解法感觉理解了,再看一次依然没想到解法,,, ...
- 【Python全栈-后端开发】Django进阶1-分页
Django[进阶篇-1 ]分页 分页 一.Django内置分页 from django.core.paginator import Paginator, EmptyPage, PageNotAnIn ...
- asp.net mvc easyui tree
1.html页面代码: <div class="easyui-panel" style="padding:5px" id="powerTree& ...
- 关于Oracle归档的一些操作
1.查看日志模式archive log list,或者select name,log_mode from v$database; 2.数据库非归档模式改为归档模式: 关闭数据库:shutdown im ...
- Selenium 2(Webdriver)
如何用webdriver打开一个浏览器,我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器,很多新的特性都会在firefox中体现.但是做页面的测试,启 ...
- 小程序 showModal content换行
wx.showModal({ title: '提示', content: '1.该拼团仅支持到指定取货地址自提\r\n2.拼团支付价格为拼团原价,当到达指定阶梯,拼团差价将在3个工作日内退回您的微信账 ...
- List查询重复值的个数,并根据重复的数目从多到少排列
package ttt; import java.nio.MappedByteBuffer; import java.util.ArrayList; import java.util.Collecti ...
- xxnet to google部署
1,github上下载xxnet项目 2,启动(点击 start) 3,确定启动好后访问 www.google.com (此时是可以访问的) 4,注册google账号或直接登陆 5,访问 https: ...