zoukankan      html  css  js  c++  java
  • 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:UsersAdministrator>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:UsersAdministrator>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

  • 相关阅读:
    【洛谷P2660烤鸡】
    cogs448
    排队打水
    洛谷U36590搬书
    NOIP2012借教室
    归并排序模版
    NOIP2015神奇的幻方
    NOIP2006能量项链
    NOIP2003加分二叉树
    NOI1995石子合并&多种石子合并
  • 原文地址:https://www.cnblogs.com/Python666/p/7419692.html
Copyright © 2011-2022 走看看