[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只有一种类 ...
随机推荐
- C#4.5-4.7学习总结
4.5讲的是this关键字.它用于表示对当前实例的引用,它有三种用法,一是访问属性,解决与局部变量名称冲突问题,二是访问成员方法,在类中调用自己的成员方法,就是在一个方法中,通过this.方法名,调用 ...
- windows 控制台下运行cl命令
前提:确保已经安装vc6或者vs系列 我们可以再命令行直接编译c++程序, 在windows操作系统中,打开命令行,输入cl,若系统提示:'cl' 不是内部或外部命令,也不是可运行的程序或批处理文件. ...
- MyBatisPlus忽略映射字段注解
MyBatisPlus忽略映射字段注解 @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(exist = true):表示该 ...
- Flask主要知识点
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...
- 四、UI开发之核心基础——约束(实用)
概述 本节将会介绍最常用的几种约束,基本可以满足90%以上的UI布局要求. 先附上一份其他优秀博客https://blog.csdn.net/companion_1314/article/detail ...
- Python基础(一)常用函数
1.map() 此函数可以,将列表内每一个元素进行操作,并返回列表 原型 map(function,[list]) def fc(x): return x * 2 print(map(fc,[1,2, ...
- java Quartz定时器任务与Spring 的实现
1.xml配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http:/ ...
- 极致21点开发DAY1
最近在学习UI框架,无奈没有完整的项目学习,四处搜索找了这款游戏源码,在Unity2018上完美运行.于是乎开始学习开发这款游戏.今天主要完成的任务时拼UI.搭建了3个场景, StartScene, ...
- Vue系列之 => ref获取DOM元素和组件
可以获取DOM元素,和组件中的数据,方法 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- EasyUI出现多条边框重合的问题
比如在 下面使用一个datagrid表格,可能出现某几条边框重合的问题,这种情况需要在div一层的panel添加"border:false"属性,datagrid不做处理即可