Python3与Python2

自2020年起,Python2不再获得官方支持,众多项目如pandas、NumPy等已转向Python3。本文详细对比了Python2与Python3的差异,包括语法、数据类型、函数行为等方面的变化,并提供了Python3的安装与多版本切换指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python2和Python3

  • 背景

自2020年1月1日起,Python 2将不再得到支持。Python的核心开发人员将不再提供错误修复版或安全更新。

因此我们不得不思考:Python2的停止维护会造成哪些影响?是否需要把当前的开发项目从Python2移植到Python3?

而我们组内的大数据基础平台项目正是使用Python2.7版本进行开发的,Python2停止维护对该项目会有哪些影响呢?

  • Python2停止维护造成的影响
  1. 如果继续使用未得到支持的模块,遇到漏洞无人修复。
  2. 越来越多的Python项目在2020年1月1日前放弃Python2,包括pandas、Zulip、IPython、NumPy 、Requests和TensorFlow等等。如果你继续使用Python2,你将无法使用这些模块的新功能。
  3. 如果你在维护其他开发人员依赖的库,可能会阻止他们更新到Python3。
  • Python2(2.7)和Python3(3.6)的不同

1.Python2中 print 是声明语句,而Python3中变成了print()函数;

Python2:

Python3:

 

2.Python2中支持运算符<>  和  != ,而Python3中仅支持 !=;

 

Python2:

Python3:

 

3.Python2 的默认编码是ASCIIPython3的默认编码是UTF-8所以使用Python3是不会存在中文乱码的问题;

 

4.通过input()解析用户输入:

 

my_input = input('enter a number: ')

Python2得到的my_input的类型为int

Python3得到的my_input的类型为str

 

 

5.Python2的除法中不是浮点数则只返回商,Python3除法返回值正常。

Python2

Python3:

 

6.Python2与Python3捕获异常的不同;

Python2:

try:

  1/0

except ZeroDivisionError, e:

  print str(e)

Python3(此种方式python 2.x也可用,python 3.x必须带as):

try:

  1/0

except ZeroDivisionError as e:

  print str(e)

 

7.Python2range()直接生成列表(量大占内存死机),Python3中只有range()Python2中的xrange()都只生成一个迭代器(一个计算方法,不占内存)

8.重用父类属性的super()使用方法不同,Python2super()需要输入本身类名和自身作为参数,而Python3中不用输入参数,可以直接使用替代上一级父类。

9.创建类时,Python2分为经典类和新式类,新式类就是继承object的类,经典类是没有继承的类,而Python3中全部是新式类,默认继承object。在属性查找时,经典类查找方式为深度优先,新式类是广度优先。仅Python3中有类的mro函数方法,输出继承父类的顺序列表。

10.filtermapreduce的不同

Python2

这三个函数属于内置函数,并且返回的结果为列表。

Python3:

由内置函数变成了类,且返回值变成可一个可迭代对象。

11.Python3新增byte数据类型

str对象和bytes对象可以使用.encode() (str -> bytes) or .decode() (bytes -> str)方法相互转化。

12.Python3的dict的.keys()、.items 和.values()方法返回迭代器,而Python2的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),取而代之的是关键字in。

  • Python多版本共存

1、Python3安装

下载安装包:

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

 

解压缩安装包到 /usr/local/ 目录下

tar -zxvf Python-3.6.6.tgz -C /usr/local

 

安装依赖的组件

yum install gcc

yum install openssl-devel

 

编译

cd  /usr/local/Python-3.6.6

./configure --prefix=/usr/local/python3

make && make install

 

2、Python多版本之间的切换

创建软链接(相当于创建了快捷方式)

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

 

进入 /usr/bin 查看安装了哪些版本的Python

 

执行指令python2  或  python3 来选择对应版本的Python。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值