python3区别_python2 python3区别

安装多个版本的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

1161222-20190601151952438-1494003637.png

在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 表示字节序列

1161222-20190531153910728-1213254104.png

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

1161222-20190531161321358-1462997403.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值