zoukankan      html  css  js  c++  java
  • 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中,文本正常情况下会自动为你解码,所以打开或读取文件会得到一个文本字符串。

  • 相关阅读:
    HDU 5313 bitset优化背包
    bzoj 2595 斯坦纳树
    COJ 1287 求匹配串在模式串中出现的次数
    HDU 5381 The sum of gcd
    POJ 1739
    HDU 3377 插头dp
    HDU 1693 二进制表示的简单插头dp
    HDU 5353
    URAL 1519 基础插头DP
    UVA 10294 等价类计数
  • 原文地址:https://www.cnblogs.com/testzcy/p/10955435.html
Copyright © 2011-2022 走看看