1.最初级的是:print 输出格式的不同
- Python2中print带括号或者不带括号都可以,当Python2的print带括号时,如果有参数,会连同括号一起输出来,
- Python3的print必须带括号
Python2:
>>> import platform
>>> platform.python_version()
'2.7.12'
>>> print "Hello, world"
Hello, world
>>> print("Hello, you")
Hello, you
>>> x = 345
>>> print "x:", x
x: 345
>>> print("x:", x)
('x:', 345)
Python3:
>>> import platform
>>> platform.python_version()
'3.5.2'
>>> print "hello, you"
File "<stdin>", line 1
print "hello, you"
^
SyntaxError: Missing parentheses in call to 'print'
>>> print("hello, you")
hello, you
>>> x = 258
>>> print("x=", x)
x= 258
2.整除
Python中的除法有两个运算符:/ 和 //
- /:
- Python2中/的除法和Java、C差不多,整数相除的结果为整数,小数部分会忽略掉,浮点数相除的结果为浮点数。
- Python3中/的除法,对于整数相除的结果也是浮点数
Python2
>>> 6/3
2
>>> 6.0/3
2.0
>>> 1/2
0
Python3:
>>> 1/2
0.5
>>> 6.0/3
2.0
>>> 6/3
2.0
- //:叫做floor除法,从Python2.2开始,增加了一个操作符 // ,//除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。(Python2和Python3无差异)
Python2:
>>> 1//2
0
>>> 1.0//2
0.0
>>> -1//2
-1
Python3:
>>> 1//2
0
>>> 1.0//2
0.0
>>> -1 // 2
-1
3.xrange
- Python2:在Python2中有range和xrange之分,range(a, b, step)是cong a到b-1,以step为步长,产生一个list。但是当返回的list中数字太多的话,占用很多内存,而且我们一般是在循环时使用该list中的数字,一般每个数字只使用1次。而xrange()解决了这个问题,xrange的功能和range一样,但是返回的不在是一个list,而是一个类型为‘xrange’的东西,这个东西和生成器很像,但是它不是生成器。
- Python3:Python3中摒弃了range()函数,只保留了xrange,但是Python3将xrange更名为range.
Python2:
>>> a = range(1, 10, 2)
>>> a
[1, 3, 5, 7, 9]
>>> type(a)
<