我教编程十多年了。每年都有学生跑来问我,老师我该学Python2还是Python3。前几年我还会认真解释,现在我只想叹气。这个问题就像问该用翻盖手机还是智能手机,答案早就写在天上了。
2020年Python2就停止维护了。什么叫停止维护?就是官方不再修补漏洞,不再更新,不再管你死活。你学Python2写出来的程序,就像在漏水的船里做饭,听着响,看着热闹,说沉就沉。隔壁某大厂的运维工程师亲口跟我说,他们公司最后一批Python2代码在2022年全部迁移完毕。那之后再用Python2干活的,基本就剩些古董项目。
别以为学Python2能帮你理解原理。这种想法跟说学算盘能帮你理解计算机一样可笑。Python2里print是个语句,不是函数,你写print 'hello'就行。Python3里print是函数,得写成print('hello')。差就差个括号,能影响你理解编程的什么本质?你纠结这个,不如多花时间研究怎么用列表推导式,怎么用装饰器。
很多教材还在教Python2。2015年以前的书,大部分讲的是Python2。你要是手头有这种书,直接扔了。别舍不得,知识这东西有时效性。我见过有人抱着本2014年的Python教程啃了一年,最后来问我为什么他写的代码跑不出来。我一看,好家伙,他在用Python3跑Python2的代码,能跑才怪。
第三方库这块更现实。你看现在新出的库,哪个还支持Python2?拿人工智能领域最火的PyTorch来说,它从2019年起就不支持Python2了。你想学机器学习,想用最新工具,老老实实上Python3。搞Python2的那些人,就跟守着小灵通说信号好的人一样,自我安慰罢了。
找个Python3.10以上的版本装好,开干。别在版本选择上浪费超过半小时。你花半小时装的Python3,足够你写完第一个爬虫程序。你花半小时纠结版本,最后啥也没干成。那些在论坛里吵Python2好还是Python3好的人,大部分是闲的。真写代码的人,谁有空扯这个。
有人跟我说,老师我学Python2是因为项目需要。我就问他,你项目还能比谷歌大?谷歌2018年就开始把内部Python2代码往3迁移了。你那个项目是能上天还是能入地?非要抱着老黄历不放。搞技术的人最怕固步自封,版本再新,不肯迈出那一步,永远停在原地。
2026年回过头看这个问题,就跟2016年纠结该不该用Windows10一样。时代已经替你做了选择,你只需要顺着走。把折腾版本那点精力,拿来写点实际的东西吧。写个自动整理文件的脚本,写个爬取新闻的爬虫,哪怕写个简单的计算器,都比纠结版本强一百倍。
你就记住一件事,打开电脑,装最新版Python,敲下第一行代码。等你写出十万行代码,谁还会问你当初学的是Python几?