1、print函数


很琐碎,而 print 语法的变化可能是最广为人知的了,但是仍值得一提的是: Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。
Python 2 不具有额外的小括号问题。但对比一下,如果我们按照 Python 2 的方式不使用小括号调用 print 函数,Python 3 将抛出一个语法异常(SyntaxError)。

2、整除


如果你正在移植代码,这个变化是特别危险的。或者你在 Python 2 上执行 Python 3 的代码。因为这个整除的变化表现在它会被忽视(即它不会抛出语法异常)。
因此,我还是倾向于使用一个 float(3)/2 或 3/2.0 代替在我的 Python 3 脚本保存在 Python 2 中的 3/2 的一些麻烦(并且反而过来也一样,我建议在你的 Python 2 脚本中使用 from __future__ import division

3、Unicode


Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。
现在, 在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays

4、xrange模块


在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。
这个表现十分像生成器(比如。“惰性求值”)。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。
由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。
在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。

py2 xrange要比py3 range快

5、next()函数 and .next()方法


因为 next() (.next()) 是一个如此普通的使用函数(方法),这里有另外一个语法改变(或者是实现上改变了),值得一提的是:在 Python 2.7.5 中函数和方法你都可以使用,next() 函数在 Python 3 中一直保留着(调用 .next() 抛出属性异常)。

6、比较不可排序类型


在 Python 3 中的另外一个变化就是当对不可排序类型做比较的时候,会抛出一个类型错误。

7、通过input()解析用户的输入


幸运的是,在 Python 3 中已经解决了把用户的输入存储为一个 str 对象的问题。为了避免在 Python 2 中的读取非字符串类型的危险行为,我们不得不使用 raw_input() 代替。

最新文章

  1. LYDSY模拟赛day1 Walk
  2. 浅谈Scrapy爬虫(一)
  3. 使用Sublime Text3开发AngularJs
  4. XmlSpy / XSD 以及 验证
  5. 百度Ueditor
  6. zz---Tomcat服务器下部署项目几种方式
  7. 类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)
  8. Linux下缓冲区溢出攻击的原理及对策(转载)
  9. 设置dt height 保证dd在同一行
  10. memcached命令行参数说明(转)
  11. BZOJ2893: 征服王
  12. 本地tomcat访问mysql数据库
  13. 盘点selenium phantomJS使用的坑
  14. TensorFlow学习笔记(UTF-8 问题解决 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte)
  15. Git 解决一个电脑多用户情况(win7)
  16. Could not find property 'outputFile
  17. 如何搭建modem编译环境
  18. 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法
  19. iOS APP打开其他应用
  20. spak数据倾斜解决方案

热门文章

  1. chattr +i 锁定文件
  2. [Mybatis]查询Sql得到一个字符串
  3. 前端知识点回顾——Javascript篇(四)
  4. js中bind解析
  5. visible,invisible和GONE的区别
  6. 用C#做成的程序如何打包部署,在其他PC机运行
  7. hutool-all 包把实体Bean转化成字符串,以及把字符串转化成Bean对象
  8. SSH客户端神器之 MobaXterm
  9. 前台请求响应json
  10. zebra 配置问题导致服务起不来