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

自己的步骤:

1)安装python2.7和python3.7

2)添加环境变量:C:\Python27\       C:\Python27\Scripts    C:\Python37  C:\Python37\Scripts

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

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

python2 python3区别_html

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

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

cd E:\env_second\Scripts
activate

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

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

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

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

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

python2 python3区别_html_02

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、异常抛出和捕捉机制区别

python2 python3区别_字符串_03

16、国内有对这些特性中的重要点进行介绍的博文,可以作为参考

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