python2和python3
『壹』 python 2和3的区别 import
Python
3.x引入一些Python2不兼容的关键字和函数,可以通过在
Python2
内置的模块
__future__
导入专。建议如果你想在代码属中支持
Python3.x,使用__future__导入它。
例如,如果想在
Python2
中拥有
Python
3.x
整数的除法行为,添加下面的
import
语句
from
__future__
import
division
『贰』 python2和python3有什么区别
python3就是Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带专入过多属的累赘,Python 3.0在设计的时候没有考虑向下相容。
『叁』 python2和python3选哪个
如果是初学者,建议学习python2.x。
python3.x和python2.x已经并存很长时间了。两个版本的python都在更新,但目前python2.x更加成熟。现在大部分第三方类库都是基于2.x的,书和资料也是2.x居多,为你提供了丰富的学习材料。这已经不是一个重复造轮子的年代,日常的开发很大程度上会基于类库。拥有丰富的类库,是一门语言强大的标志,能极大地开发效率。
python3.x和2.x差别甚大,可以说它们几乎是不同的语言。目前python3.x的应用不是那么广泛。由于兼容性的原因,很多老的程序都是基于2.x。由于python3的颠覆性,即使是比较新的应用也不会铤而走险使用3.x。所以你应该毫不犹豫地选择2.x。
官方提供一个将python2代码转换为python3代码的小工具,叫2to3.py。如果你了安装了python,那么你一定拥有这个文件。如果你想体验一把3.x,使用它是个不错的选择。
『肆』 python2和python3有哪些区别
1.性能
Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可
以取得很好的优化结果。
Py3.1性能比Py2.5慢15%,还有很大的提升空间。
2.编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
>>> 中国 = 'china'
>>>print(中国)
china
3. 语法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)关键词加入as 和with,还有True,False,None
4)整型除法返回浮点数,要得到整型结果,请使用//
5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量
6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
例如:
2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x, # 使用逗号结尾禁止换行
3.X: print(x, end=" ") # 使用空格代替换行
2.X: print # 输出新行
3.X: print() # 输出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)
2.X: print (x, y) # 输出repr((x, y))
3.X: print((x, y)) # 不同于print(x, y)!
7)改变了顺序操作符的行为,例如x<y,当x和y类型不匹配时抛出TypeError而不是返回随即的 bool值
8)输入函数改变了,删除了raw_input,用input代替:
2.X:guess = int(raw_input('Enter an integer : ')) # 读取键盘输入的方法
3.X:guess = int(input('Enter an integer : '))
9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了
『伍』 Python 2 和 Python 3 都有什么区别
> 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依然支持 % 算符
> 6. xrange重命名为range
同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者 元组, 比如 filter, map, dict.items 等
> 7. !=取代 < >
python2 也很少有人用 < > 所以不算什么修改
> 8. long重命名为int
不完全对, python3 彻底废弃了 long+int 双整数实现的方法, 统一为 int , 支持高精度整数运算.
> 9. except Exception, e变成except (Exception) as e
只有 python2.5 及以下版本不支持该语法. python2.6 是支持的. 不算新东西
> 10. exec变成函数
类似 print() 的变化, 之前是语句.
『陆』 初学者应该学python2还是python3
Python有Python2和Python3,很多人都会纠结选择哪个版本进行学习?这两个版本是不兼容的,版而且差异比较大,需要权多方面具体分析来决定。
从基本设计上来说,Python3的目的就是没有代码兼容的包袱情况下进行改进了Python,相对于Python2来说,Python3有很多的改进,更加容易理解,也更加合理。
而且从应用的角度上来说,pypy、web框架、科学计算包、scrapy等常用模块都是支持Python3的,但是部分比较陈旧的库已经没有人进行维护,也就没有支持Python3.
当我们进行日常使用的情况之下,可以直接写Python2\3兼容的代码,相对于来说,Python2对于旧库的支持更多一些,至少在学界还是比较流行的。
『柒』 Python2与Python3的区别
类似的文章很多,一般也是检些主要的区别。这个CSDN的一篇总结网页链接。
如果是学习不用纠结,学python3就好,和xp、win7有点像,有差别,但不至于说会用XP不会用win7
『捌』 列举python2和python3的区别
python2已经舍弃不用了,老古董,很少有人继续使用python2