Python2.x与3.x版本区别Ⅱ
除法运算
Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和//
首先来说/除法:
在python 2.x中/除法就跟我们熟https://www.xuanhe.net/悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
Python 2.x:
Python 3.x:
而对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。
python 2.x:
python 3.x:
异常
在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。
捕获异常的语法由 except exc, var 改为 except exc as var。
使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。
- 1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。
- 2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。
在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。
xrange
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。
这个表现十分像生成器(比如。"惰性求值")。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。
由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。
在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。
Python 2
Python 3
最新文章
- ajax点赞功能
- 手写PHP AJAX数据脚本
- 错误	X	“X1”不包含“XX2”的定义,并且找不到可接受类型为“X1”的第一个参数的扩展方法“XX2”(是否缺少 using 指令或程序集引用?)
- 服务器 IIS 发布网站 支持下载 apk 和 ipa
- 在字符编码格式选项里UTF-8(无BOM)的意思
- Ubuntu 13.04 小米2S连接Eclipse真机调试
- 如何在Objective-C中实现链式语法?
- 关于scala和java 在maven项目中混编的问题
- (C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单
- 在VS上配置OpenCV
- java--类继承和实现的接口中含有相同的方法
- api接口对于客户端的身份认证方式以及安全措施
- Android百分比布局成功导入及简单使用
- Log4j使用笔记:每天生成一个日志文件、按日志大小生成文件
- 好坑吖,几乎GG,关于Nginx和supervisor的配置
- [转]JS学习总结-技巧、方法、细节
- 12月17日周日 form_for的部分理解。belongs_to的部分理解
- 第11章 	GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列
- [转]C#学习笔记15——C#多线程编程
- windows下mysql中文乱码, 配置解决方法