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

posted on   我和你并没有不同  阅读(552)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-05-31 HBase 笔记
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示