学 Python 到底是学2还是学3?

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!习进阶更高效! 阅读详情

Python 社区,有这么个怪问题:“学 Python 到底是学2还是学3?”这个问题就像月经一样每隔断时间就出现在你面前,也成了很多初学者的选择困惑,这个问题的“始作俑者”当然是 Python 它爹,大家众说纷纭,有说 Python2 是主流,大公司都在用,你应该学 2 。也有说 Python3 才是未来主流,大多数第三方框架已基本支持 Python3。

个人看法是 Python2 还会存在很长一段时间(只要那些用 Python2 的公司还没倒闭,就一直会存在),你去找工作很有可能就需要用到 2,而 Python3 也是你必须要掌握的,因为越来越多的人会迁移到 3 上去,本质上,它俩是同一门语言,仅仅只是极少部分(1%?并没有严格统计)不兼容的地方,所以就没所谓学哪一个好,学了一个,另一个花很少时间就能掌握。

#今天给大家介绍 Python2 和 Python3 的一些主要区别

#print

在进行程序调试时用得最多的语句可能就是 print,在 Python 2 中,print 是一条语句,而 Python3 中作为函数存在。有人可能就有疑问了,我在 Python2 中明明也看到当函数使用:

# py2
print("hello")  # 等价 print  ("hello")

#py3
print("hello")

然而,你看到的只是表象,那么上面两个表达式有什么区别?从输出结果来看是一样的,但本质上,前者是把 (“hello”)当作一个整体,而后者 print()是个函数,接收字符串作为参数。

# py2
>>> print("hello", "world")
('hello', 'world')

# py3
>>> print("hello", "world")
hello world

这个例子更明显了,在 py2 中,print语句后面接的是一个元组对象,而在 py3 中,print 函数可以接收多个位置参数。如果希望在 Python2 中 把 print 当函数使用,那么可以导入 future 模块 中的 print_function

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容

# py2
>>> print("hello", "world")
('hello', 'world')
>>> 
>>> from __future__ import print_function
>>> print("hello", "world")
hello world

#编码

Python2 的默认编码是 asscii,这也是导致 Python2 中经常遇到编码问题的原因之一,至于是为什么会使用 asscii 作为默认编码,原因在于 Python这门语言出来的时候还没出现 Unicode。Python 3 默认采用了 UTF-8 作为默认编码,因此你不再需要在文件顶部写 # coding=utf-8 了。

# py2
>>> sys.getdefaultencoding()
'ascii'

# py3
>>> sys.getdefaultencoding()
'utf-8'

网上不少文章说通过修改默认编码格式来解决 Python2 的编码问题,其实这是个大坑,不要这么干。

#字符串

字符串是最大的变化之一,这个变化使得编码问题降到了最低可能。在 Python2 中,字符串有两个类型,一个是 unicode,一个是 str,前者表示文本字符串,后者表示字节序列,不过两者并没有明显的界限,开发者也感觉很混乱,不明白编码错误的原因,不过在 Python3 中两者做了严格区分,分别用 str 表示字符串,byte 表示字节序列,任何需要写入文本或者网络传输的数据都只接收字节序列,这就从源头上阻止了编码错误的问题

image.png

#True和False

True 和 False 在 Python2 中是两个全局变量(名字),在数值上分别对应 1 和 0,既然是变量,那么他们就可以指向其它对象,例如:

# py2
>>> True = False
>>> True
False
>>> True is False
True
>>> False = "x"
>>> False
'x'
>>> if False:
...     print("?")
... 
?

显然,上面的代码违背了 Python 的设计哲学 Explicit is better than implicit.。而 Python3 修正了这个缺陷,True 和 False 变为两个关键字,永远指向两个固定的对象,不允许再被重新赋值。

# py3
>>> True = 1
  File "<stdin>", line 1
SyntaxError: can't assign to keyword

#迭代器

在 Python2 中很多返回列表对象的内置函数和方法在 Python 3 都改成了返回类似于迭代器的对象,因为迭代器的惰性加载特性使得操作大数据更有效率。Python2 中的 range 和 xrange 函数合并成了 range,如果同时兼容2和3,可以这样:

try:
    range = xrange
except:
    pass

另外,字典对象的 dict.keys()、dict.values() 方法都不再返回列表,而是以一个类似迭代器的 “view” 对象返回。高阶函数 map、filter、zip 返回的也都不是列表对象了。Python2的迭代器必须实现 next 方法,而 Python3 改成了 next

#nonlocal

我们都知道在Python2中可以在函数里面可以用关键字 global 声明某个变量为全局变量,但是在嵌套函数中,想要给一个变量声明为非局部变量是没法实现的,在Pyhon3,新增了关键字 nonlcoal,使得非局部变量成为可能。

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

def func():
    c = 1
    def foo():
        c = 12
    foo()
    print(c)
func()    #1
可以对比上面两段代码的输出结果

def func():
    c = 1
    def foo():
        nonlocal c
        c = 12
    foo()
    print(c)
func()   # 12

其实很多内建模块也做了大量调整,Python3 中的模块组织更加清晰,类更加先进,还引入了异步IO

python2还是python3 如果你是一个初者,或者你以前接触过其他的编程语言,你可能不知道,在开始python的时候都会遇到一个比较让人很头疼的问题:版本问题!!是python2 还是python3 ?这是非常让人纠结的! 搜索一下便会发现python3python2 是不兼容的,而且差异比较大,到底习哪个版本呢?下面就来为大家分析一下: ======== 时间过得飞快, 原来写的这篇文章已经过时了,重新分析Python2Python3的问题。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃 阅读详情

相关推荐

Python时应选择Python 3还是Python 2

但是,对于新手来说,Python 3是一个更好的选择,因为它是未来的发展方向,并且有更好的语言特性和改进。在过去的几年里,Python 2一直是最受欢迎和广泛使用的版本,但现在Python 3已经成为主流版本。Python 2Python编程语言的早期版本,于2000年发布,其最后一个稳定版本是Python 2.7,于2010年发布。首先,让我们比较Python 2Python 3之间的print语句。在Python 2中,print是一个语句,而在Python 3中,print是一个函数。

DevAstro的博客 412

python2python3哪个-Python 2还是Python 3

答案:都要!是否有如下疑问:Python 3 才是Python的未来。Python 官方都建议指直接Python 3Python 2 只维护到2020年。Python 2慢慢的就没人用了。那么我们来探讨下 Python 2Python 3 放入区别了。为什么还要Python 2(特别是对于新手来说)Python官网显示:Python 22020年停止维护,但不应该成为你拒绝Pyt...

weixin_39749243的博客 749

新手Python习该Python2还是Python3

Python的人都会有一个困惑,那就是Python目前有两个版本Python2Python3Python2Python3有何区别,两个版本该习哪个呢? python3python2 是不兼容的,而且差异比较大,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的。目前实际应用中大部分暂不考虑 Python3,有的时候注意写兼容 2/3 的代码。用 Py

lmseo5hy的博客 1万+

Python2Python3的区别,为什么大家都要选Python3的原因

Python 2还是Python 3? 看到很多新同Python的过程中,犹豫Python 2还是Python 3而迟迟不行动,白白地浪费了大把时间,错过了升职加薪的机会,我真心觉得非常遗憾。所以,我忍不住想对大家粗暴一次,给大家一个粗暴而又正确的答案: 应该Python 2还是Python 3? 都要! 这个答案可能很出乎意料,也很容易反驳,例如: Python 3 才是Python的未来 Python 官方都建议指直接Python 3 Python 2 只维护到2020年

weixin_53455146的博客 740

github新手用法详解(建议收藏!!!)

如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。说明你根本不善于突破自己!为什么这么说原因很简单,很多优秀的代码以及各种框架源码都存放于github当中! 目录github登录与注册git安装步骤详解 首先,我先对GitHub来一个简单介绍,GitHub他就是一个远程仓库,远程仓库通俗的理解就是一个可以保存自己代码的地方,在实际开发当中一个项目往往是有多个人来共同协作开发完成的,那么就需要一个统一代码保存的

怪咖@的博客 26万+

python2还是3_python2还是python3

看到很多新同Python的过程中,犹豫Python 2还是Python 3而迟迟不行动,白白地浪费了大把时间,错过了升职加薪的机会,我真心觉得非常遗憾。所以,我忍不住想对大家粗暴一次,给大家一个粗暴而又正确的答案:应该Python2还是Python3?都要这个答案可能很出乎意料,也很容易反驳,例如:Python 3 才是Python的未来Python 官方都建议指直接习...

weixin_36070282的博客 301

直接python3_新手python应该直接2还是3

1. 无论是 Python 还是 Pip 的下载量,都是 23 多,可见 2 仍然是主流错!造成 2 的下载量比 3 多的原因很多,但其中很重要的一条是,绝大多数操作系统(Linux 发行版)默认安装的仍然是 Python 2。人都是有惰性的,许多人懒得折腾就直接用了2 了。但是,2 在下降,3 在上升这是不争的事实。拥抱未来才是王道啊。2. Python 23 不兼容,3 还...

weixin_39607935的博客 200

python2还是python3好_python2还是python3

python2还是python3好发布时间:2020-09-23 16:52:57来源:亿速云阅读:72作者:Leahpython2还是python3好?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来习下,希望你能有所收获。看到很多新同Python的过程中,犹豫Python 2还是Python 3而迟迟不行动,白白地浪费了大...

weixin_35916466的博客 242

研究生python2还是python3_初python2还是python3

如果你是一个初者,或者你以前接触过其他的编程语言,你可能不知道,在开始python的时候都会遇到一个比较让人很头疼的问题:版本问题!!是python2 还是python3 ?这是非常让人纠结的!搜索一下便会发现python3python2 是不兼容的,而且差异比较大,到底习哪个版本呢?下面就来为大家分析一下:========时间过得飞快, 原来写的这篇文章已经过时了,重新...

weixin_39887386的博客 110

现在python2还有意义吗_现在pythonpython2还是python3

python现在该哪个版本?python2还是python3?相关推荐:《python视频》对于刚开始Python的人来说,应该直接3系列版本,因为按照Python的发展规划,未来将不再支持2系列版本,目前Python也正处在版本转换的过程中,但是由于2系列版本有广泛的应用和大量的历史遗留项目,所以Python的版本切换计划也并不顺利(一再推迟)。当然,对于Python来说,温和的版本切...

weixin_39975900的博客 657

python3python2哪个好_新手python哪个版本好?Python2Python3有何区别?

为了能够拥有更好的职业发展,不少人都会转行习编程,而python语言在编程中是非常受欢迎的语言之一,其就业前景好、工资待遇高,深受大家的喜欢和追捧。当我们python前,很多人都会考虑版本选择问题,Python目前有两个版本Python2Python3,这两个版本习哪个好?它们之间有何区别呢?python3python2 是不兼容的,而且差异比较大,python3是不向下兼容的,但...

weixin_39565332的博客 294

python2还是python3-初者应该python2还是python3

作者:赖明星链接:应该习最新版本的 Python 3 还是旧版本的 Python 2?来源:知乎著作权归作者所有,转载请联系作者获得授权。Python 2还是Python 3?罗振宇在今年的跨年演讲,《时间的朋友》中有个观点,大意是说,人们都有一种受虐情节,有时候希望别人对他粗暴一点。为此,他还举了两个例子,分别是"乔布斯对待消费者的态度”和"和菜头不尊重他的饮食需求”,...

weixin_37988176的博客 681

python2还是python3-深圳小白Python2还是Python3,谁来说说

深圳小白Python2还是Python3,随着祖国的繁荣昌盛,在这个时代发展的浪潮下,各个培训机构更是琳琅满目,深圳Python培训 让你业无忧,就业无忧。Python能做的事情很多,在我这段时间的习过程中发现了,主要可以用来做Web开发,这些Web框架可助我们用Python编写服务器端代码(后端代码)。还可以用来数据科分析,你首先应该了解数据分析和可视化的基础知识。还能用来做脚本,因为它...

weixin_37988176的博客 651

python2python3到底应该哪个好?

许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择python2 还是 python3Python 3.7 已经发布了,目前Python的用户,主要使用的版本 应该是 Python3.6 和 Python2.7 ,那么是不是该转到 Python 3.7 呢? 首先先说一下python2python3的选择 许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择习...

pyjishu的博客 1636

python32哪个_新手Python习该Python2还是Python3

Python的人都会有一个困惑,那就是Python目前有两个版本Python2Python3Python2Python3有何区别,两个版本该习哪个呢?python3python2 是不兼容的,而且差异比较大,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的。目前实际应用中大部分暂不考虑 Python3,有的时候注意写兼容 2/3 的代码。用 Pytho...

weixin_39598568的博客 142

python2还是python3

最近笔者在知乎上看到一个问题应该习最新版本的 Python 3 还是旧版本的 Python 2?,笔者当年是习的python2.7入门的,国内关于python3的中文资料很少,最近工作技术老大比较激进,直接用的python3.5,顺便也了解了一下python3.5的一些新特性。究竟该python2还是python3呢?笔者认为应该最新的python3python3做了不少改进,社区果断舍弃

Pegasus (http://ningning.today) 3621

直接python3_新手应该python2还是python3?

可以根据自己的实际情况进行选择;长期建议Python3。具体参见http://docs.python-guide.org/en/latest/starting/which-python/。The State of Python (3&2)When choosing a Python interpreter, one looming question is always present: “Shou...

weixin_39891694的博客 95

新手Python习该Python2还是Python3

Python的人都会有一个困惑,那就是Python目前有两个版本Python2Python3Python2Python3有何区别,两个版本该习哪个呢?python3python2 是不兼容的,而且差异比较大,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的。目前实际应用中大部分暂不考虑 Python3,有的时候注意写兼容 2/3 的代码。用 Pytho...

lmseo5hy的博客 3083

python32哪个_python2python3哪个

许多刚入门 Python 的朋友都在纠结的的问题是:我应该选择python2 还是 python3?对此,回答是:果断 Python3 !(推荐习:Python视频教程)可是,还有许多小白朋友仍然犹豫:那为什么还是有人推荐我Python2 呢?其实,无外乎以下一些原因:1. 无论是 Python 还是 Pip 的下载量,都是 23 多,可见 2 仍然是主流错!造成 2 的下载量...

weixin_30920223的博客 137
上一篇: Python爬虫的实践技巧,赞!
下一篇: 前辈经历告诉你Python新手好找工作吗?初级岗位多不多
Python老王
博客等级 码龄7年 159粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值