• python2 python3区别


    安装多个版本的python==================

    https://www.cnblogs.com/yinzhengjie/p/9106558.html

    https://www.cnblogs.com/pxuan/p/6408823.html

    自己的步骤:

    1)安装python2.7和python3.7

    2)添加环境变量:C:Python27       C:Python27Scripts    C:Python37  C:Python37Scripts

    3)进入C:Python27,复制python.exe  得到python2.exe

    进入C:Python37,重命名python.exe  为python3.exe

     在windows上给虚拟环境安装第三方包:

    1 通过命令终端,到Scripts 目录下执行 activate命令,激活虚拟环境

    cd E:env_secondScripts
    activate

    2 安装 ,如 (env_second) E:env_secondScripts>pip install itchat   ,可以再执行pip list 确认下安装的包

    3 关闭虚拟环境:(env_second) E:env_secondScripts>deactivate

    ========================

    1、print语句没有了,取而代之的是print()函数
    2、在 Python 3,有了 Unicode (utf-8) 字符串(获取默认编码print sys.getdefaultencoding())

     Python2 中,字符串有两个类型,一个是 unicode,一个是 str,前者表示文本字符串,后者表示字节序列
     Python3 中两者做了严格区分,分别用 str 表示字符串,byte 表示字节序列

    3、在python2.x中/除法:整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。
    在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
    4、对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的
    5、在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)

    在 Python2 中很多返回列表对象的内置函数和方法在 Python 3 都改成了返回类似于迭代器的对象


    6、在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。
    7、Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯
    8、 数据类型:1)Py3.X去除了long类型,现在只有一种整型——int

        2)新增了bytes类型,str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化 3)

    >>> b = b'china' 
    >>> type(b) 
    <type 'bytes'>
    
    >>> s = b.decode() 
    >>> s 
    'china' 
    >>> b1 = s.encode() 
    >>> b1 
    b'china' 

    9、dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它

    10、在python3.x中接收用户输入用input()函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型

    11、map 和 filter在Python 3.x中变成了可迭代的类; reduce 函数在 Python 3.x 中已经不属于 built-in 了,被挪到 functools 模块当中

     12、在Pyhon3,新增了关键字 nonlcoal,使得非局部变量成为可能

    13、exec变成函数

    14、file函数被Python3废弃,统一使用open来处理文件,可以通过io.IOBase检查文件类型

    15、异常抛出和捕捉机制区别

    16、国内有对这些特性中的重要点进行介绍的博文,可以作为参考:http://www.cnblogs.com/animalize/p/5633215.html

    所有在Python3.X中增加的新特性在Python2中都不支持,这些新特性的说明在官网中有详细的说明

    3.1 https://docs.python.org/3.1/whatsnew/
    3.2 https://docs.python.org/3.2/whatsnew/3.2.html
    3.3 https://docs.python.org/3.3/whatsnew/3.0.html
    3.4 https://docs.python.org/3.4/whatsnew/3.4.html
    3.5 https://docs.python.org/3.5/whatsnew/3.5.html
    3.6 https://docs.python.org/3.6/whatsnew/3.6.html

    17、python3:可以在str与bytes之间进行类型转换,str类包含一个encode方法,用于使用特定编码将其转换为一个bytes。于此类似,bytes类包含一个decode方法,接受一个编码作为单个必要参数,并返回一个str。另一个需要注意的是,python3中永远不会尝试隐式地在一个str与一个bytes之间进行转换,需要显式使用str.encode 或者 bytes.decode方法。

    18、python3:文件总是存储字节,因此,为了使用文件中读取的文本数据,必须首先将其解码为一个文本字符串。python3中,文本正常情况下会自动为你解码,所以打开或读取文件会得到一个文本字符串。

  • 相关阅读:
    LightOJ1031 Easy Game(区间DP)
    POJ1325 Machine Schedule(二分图最小点覆盖集)
    ZOJ1654 Place the Robots(二分图最大匹配)
    LightOJ1025 The Specials Menu(区间DP)
    POJ2288 Islands and Bridges(TSP:状压DP)
    LightOJ1021 Painful Bases(状压DP)
    LightOJ1013 Love Calculator(DP)
    POJ1780 Code(欧拉路径)
    POJ1201 Intervals(差分约束系统)
    ZOJ2770 Burn the Linked Camp(差分约束系统)
  • 原文地址:https://www.cnblogs.com/testzcy/p/10955435.html
Copyright © 2020-2023  润新知