安装多个版本的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
在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 表示字节序列
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)
>>> 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、异常抛出和捕捉机制区别
所有在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中,文本正常情况下会自动为你解码,所以打开或读取文件会得到一个文本字符串。