Python2 和Python3 的区别

print

Python 2中的print语句被Python 3中的print()函数取代,这意味着在Python 3中必须用括号将需要输出的对象括起来。

在Python 2中使用额外的括号也是可以的。但反过来在Python 3中想以Python2的形式不带括号调用print函数时,会触发SyntaxError。

整除

Python3 中的 / 是浮点运算,计算出的是精确的值

// 是整除,只去计算的整数部分,余数用% 进行计算

Python2 中的 / 中想要做精确的除法,需要有一个值是浮点数

>>> 10 / 3
3
>>> 10.0 / 3
3.3333333333333335

Python2 和Python3 的整除

C:\Users\Administrator>python2
Python 2.7.13 (v2.7.13:a06454b1afa1, D
AMD64)] on win32
Type "help", "copyright", "credits" or
>>> 3/2
1
>>> 3//2
1
>>> 3/2.0  # 有一个是浮点数的时候是精确的运算
1.5
>>> 3//2.0  # 此时是整除后的浮点数
1.0
>>> ^Z


C:\Users\Administrator>python3
Python 3.6.1 |Anaconda 4.4.0 (64-bit)|
900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or
>>> 3/2  # 精确的运算
1.5
>>> 3//2 # 整除
1
>>> 3/2.0
1.5
>>> 3//2.0
1.0
>>> ^Z

Unicode

Python3 把字节和字符串分开了

range 和 xrange

Python3 中的 range 函数和 Python2.7 中的 range 函数有什么区别?

答:区别:在于返回值的不同

python2的range生成的是列表

>>> range(0,10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Python2 中的xrange返回的是一个生成器对象

通过list把对象转换成列表,在每次调用的时候才取一个值,节省内存

>>> xrange(0,10)
xrange(10)
>>> list(xrange(0,10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

python3 中只有range 是一个生成器对象

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(10)
range(0, 10)

参考:
http://python.jobbole.com/80006/#future
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000

posted @ 2017-08-23 18:58  hzxPeter  阅读(418)  评论(0编辑  收藏  举报