Python 进阶 (七) 浅谈 python3 和 Python2 的区别

一、前言

不管使用何种版本的Python语言,都需要遵循编程规范,不该有的缩进一定不能有。否则会出现莫名其妙的错误,如下图所示:

在应用Python编程时,首先要明确所使用Python版本,因为版本 2 与 3 之间存在着很多细节性的差异。稍有不慎就会入坑~下面介绍一下具体应用中的细节性差异。

具体参照

二、print 函数

Python3print为一个函数,必须用括号括起来;Python2printclassPython2print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中的对象。

2.1 举例

在 Python2中:

print 'Hello, World!'

在 Python3 中:

print( 'Hello, World!')

三、reduce()函数

在 Python3 里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里。使用时要先引入from functools import reduce

四、try except

    try:         except    Exception as e :

五、打开文件

原: file( ..... )open(.....)改为:只能用 open(.....)

六、从键盘录入一个字符串

原: raw_input( "提示信息" )改为: input( "提示信息" )

七、整形除法自动转为 float

python2:

1/22/21//2010

python3:

1/22/21//20.51.00

八、新的字符串格式化方法 format 取代 %5.

  • xrange重命名为range

  • !=取代 < >

  • long重命名为int

  • exec变成函数;

  • Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:

    >>> 中国 = 'china'     >>>print(中国)     china 

九、python3 中替换 python2 中 cmp 函数

Python 3.4.3 的版本中已经没有 cmp 函数,被 operator 模块代替,在交互模式下使用时,需要导入模块。在没有导入模块情况下,会出现下面的错误:

提示找不到 cmp 函数了,那么在 python3 中该如何使用这个函数呢?所以要导入模块

看下面给的内置函数

operator.lt(a, b)     #相当于 a<b 从第一个数字或字母(ASCII)比大小operator.le(a, b)     #相当于a<=boperator.eq(a, b)     #相当于a==b 字母完全一样,返回Trueoperator.ne(a, b)     #相当于a!=boperator.ge(a, b)     #相当于 a>=boperator.gt(a, b)     #相当于a>boperator.__lt__(a, b)     operator.__le__(a, b)     operator.__eq__(a, b)     operator.__ne__(a, b)     operator.__ge__(a, b)     operator.__gt__(a, b)

这几个函数就是用来替换之前的 cmp,函数的返回值是布尔值。

十、除法

  • python3.0中,/ 现在总是执行真除法,不管操作数的类型,都会返回包含任何余数的一个浮点结果。// 执行 Floor 除法,它截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数类型,则返回一个浮点数。

  • python2.6中,/ 表示传统除法,如果两个操作数都是整数的话,执行截断的整数除法;否则,执行浮点除法(保留余数,好像是真除法?)。//执行 Floor 除法,并且像在python3.0中一样工作,对于整数执行截断除法,对于浮点数执行浮点除法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值