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
来源:https://www.cnblogs.com/Python666/p/7419692.html