最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 简单介绍下python2.x与python3.x的区别

    正文概述    2020-10-27   192

    简单介绍下python2.x与python3.x的区别

    1、Python 3.x print函数代替了print语句 

    (推荐学习:python爬虫视频教程)

    在 Python2.x 中,输出数据使用的是 Print 语句,例如:

    >>> print "3,4"
    3,4
    或者
    >>> print(3,4)
    (3,4)

    但是在 Python 3.x 中,print 语句没有了,取而代之的是 print 函数,例如:

    >>> print(3,4)
    3 4

    如果还像 Python 2.x 中那样使用 print 语句,Python 编译器就会报错,例如:

    >>> print "3,4"
      File "<stdin>", line 1
        print "3,4"
                  ^
    SyntaxError: Missing parentheses in call to 'print'

    2、Python 3.x 默认使用 UTF-8 编码

    相比 Python 2.x 默认采用的 ASCII 编码,Python 3.x 默认使用 UTF-8 编码,可以很好地支持中文或其它非英文字符。

    例如,输出一句中文,使用 Python 2.x 和 Python 3.x 的区别如下:

    #Python 2.x
    >>>str ="C语言中文网"
    >>>str
    'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'
    
    #Python 3.x
    >>>str ="C语言中文网"
    >>>str
    'C语言中文网'

    不仅如此,在 Python 3.x 中,下面的代码也是合法的:

    >>>中国="China"
    >>>print(中国)
    China

    3、Python 3.x 除法运算

    和其他语言相比,Python 的除法运算要高端很多,它的除法运算包含 2 个运算符,分别是 / 和 //,这 2 个运算符在 Python 2.x 和 Python 3.x 的使用方法如下:

     / 运算符

    在 Python 2.x 中,使用运算符 / 进行除法运算的方式和 Java、C 语言类似,整数相除的结果仍是一个整数,浮点数除法会保留小数点部分,例如:

    >>>1/2
    0
    >>>1.0/2
    0.5

    但是在 Python 3.x 中使用 / 运算符,整数之间做除法运算,结果也会是浮点数。例如:

    >>>1/2
    0.5

    运算符 //

    使用运算符 // 进行的除法运算叫做 floor 除法,也就是输出不大于结果值的一个最大的整数(向下取整)。此运算符的用法在 Python 2.x 和Python 3.x 中是一样的,举个例子:

    #Python 2.x
    >>> -1//2
    -1
    #Python 3.x
    >>> -1//2
    -1

    4、Python 3.x 异常

    在 Python 3.x 版本中,异常处理改变的地方主要在以下几个方面:在 Python 2.x 版本中,所有类型的对象都是直接被抛出的,但是在 Python 3.x 版本中,只有继承 BaseException 的对象才可以被抛出。在 Python 2.x 版本中,捕获异常的语法是“except Exception,var:”;但在 Python 3.x 版本中,引入了 as 关键字,捕获异常的语法变更为 “except Exception as var:”。

    在 Python 3.x 版本中,处理异常用 “raise Exception(args)”代替了“raise Exception,args”。Python 3.x 版本中,取消了异常类的序列行为和 .message 属性。

    有关 Python 2.x 版本和 Python 3.x 版本处理异常的示例代码如下所示:

    #Python 2.x
    >>> try:
    ...  raise TypeError,"类型错误"
    ... except TypeError,err:
    ...  print err.message
    ...
    类型错误
    
    #Python 3.x
    >>> try:
    ...     raise TypeError("类型错误")
    ... except TypeError as err:
    ...     print(err)
    ...
    类型错误

    5、Python 3.x 八进制字面量表示

    在 Python 3.x 中,表示八进制字面量的方式只有一种,并且必须写成“0o1000”这样的方式,原来“01000”的方式不能使用了。举个例子:

    #Python 2.x
    >>> 0o1000
    512
    >>> 01000
    512
    
    #Python 3.x
    >>> 01000
      File "<stdin>", line 1
        01000
            ^
    SyntaxError: invalid token
    >>> 0o1000
    512

    6、Python 3.x 不等于运算符

    Python 2.x 中的不等于运算符有 2 种写法,分别为 != 和 <>,但在 Python 3.x 中去掉了 <>,只有 != 这一种写法,例如:

    #Python 2.x
    >>> 1!=2
    True
    >>> 1<>2
    True
    
    #Python 3.x
    >>> 1!=2
    True
    >>> 1<>2
      File "<stdin>", line 1
        1<>2
          ^
    SyntaxError: invalid syntax

    7、Python 3.x 数据类型

    Python 3.x 中对数据类型也做了改动,比如说:Python 3.x 去除了 long 类型,现在只有一种整形 int,但它的行为就像是 Python 2.x 版本中的 long。Python 3.x 新增了 bytes 类型,对应 Python 2.x 版本的八位串,定义 bytes 字面量的方法如下所示:

    >>>b=b'China'
    >>>type(b)
    <type 'bytes'>

    字符串对象和 bytes 对象可以使用 .encode() 或者 .decode()方法相互转化,例如:

    >>>s=b.decode()
    >>>s
    'China'
    >>>b1=s.encode()
    >>>b1
    b'China'

    Python 3.x 中,字典的 keys()、items() 和 values() 方法用返回迭代器,且之前的 iterkeys() 等函数都被废弃。同时去掉的还有 dict.has_key(),改为用 in 替代。

    以上只是一部分内容,想了解更多相关内容请访问python基础教程。


    起源地下载网 » 简单介绍下python2.x与python3.x的区别

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元