选择python不再迷茫,让大牛告诉你python2和python3 该选谁

1. print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')但是 python2.6+ 可以使用 from __future__ import print_function 来实现相同功能

2. 在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass 显式地子类化object但是最好还是加上. 主要区别在于 old-style 是 classtype 类型而 new-style 是 type类型

3. 原来1/2(两个整数相除)结果是0,现在是0.5了python 2.2+ 以上都可以使用 from __future__ import division 实现改特性, 同时注意 // 取代了之前的 / 运算

4. 新的字符串格式化方法format取代%错误, 从 python2.6+ 开始已经在str和unicode中有该方法, 同时 python3依然支持 % 算符

5. xrange重命名为range同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者 元组, 比如 filter, map, dict.items 等

6. !=取代 python2 也很少有人用 所以不算什么修改

7. long重命名为int不完全对, python3 彻底废弃了 long+int 双整数实现的方法, 统一为 int , 支持高精度整数运算

8. except Exception, e变成except (Exception) as e只有 python2.5 及以下版本不支持该语法. python2.6 是支持的. 不算新东西

9. exec变成函数类似 print() 的变化, 之前是语句.

简单补充下*

主要是类库的变化, 组织结构变了些. 但功能没变. urlparse - > urllib.parse 这样的变化* 最核心的变化它没有说, 对 bytes 和 原生 UNICODE 字符串的支持, 删除了 unicode 对象, str 为原生 unicode 字符串, bytes 替代了之前的 str 这个是最核心的.* 其它... 貌似不怎么重要了.

本文来自企鹅号 - 鲁滨逊媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏守望轩

c#的细节(二)-修饰符

写在最前面的话: 《c#的细节》是我当初学习c#时候,做的一些学习笔记的整理,现在回头看来这些都是非常浅显的知识,是c#非常细节的地方,同时也是不能忽略的...

19570
来自专栏java一日一条

java面试小题系列(一)

11230
来自专栏java一日一条

教你在Java接口中定义方法

接下来,SimpleTimeClient类实现了TimeClient接口,具体代码如下:

21520
来自专栏Dato

SQL 中的日期和时间类型

在我们SQL中一般支持三种数据类型。 date:日历日期,包括年(四位),月和日。 time: 一天中的时间,包括小时,分和秒。可以用变量time(p)来表示秒...

34560
来自专栏吴伟祥

Shell脚本学习总结(二) 流程控制 转

Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:

8320
来自专栏菩提树下的杨过

silverlight中如何将BitmapImage转化为Stream或byte数组?

上一篇"base64编码在silverlight中的使用"里已经提到WriteableBitmap对象可以借助FluxJpeg转化为base64字符串,而Wri...

22550
来自专栏Jackson0714

C#多线程之旅(4)——APM初探

422130
来自专栏博岩Java大讲堂

Java虚拟机--虚拟机内存区域Java虚拟机内存区域

32080
来自专栏Java爬坑系列

你不可不知的Java引用类型之——Reference源码解析

reference指代引用对象本身,referent指代reference引用的对象,下文介绍会以reference,referent形式出现。

15110
来自专栏微信公众号:Java团长

Java堆和栈的区别

在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作...

30230

扫码关注云+社区

领取腾讯云代金券