V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sdjl
V2EX  ›  Python

Python2 已经很熟练了,想要学习 Python3,有没有专门的书籍或教程?

  •  
  •   sdjl · 2022-09-29 19:26:49 +08:00 · 5216 次点击
    这是一个创建于 787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我看好多 Python 的书籍都是把 Python 所有内容介绍一遍,没有找到一本专门介绍 Python 2 to 3 的书籍。

    如果没有书籍,网上的教程也可以,谢大家。

    30 条回复    2022-10-09 17:53:26 +08:00
    hahaba
        1
    hahaba  
       2022-09-29 19:50:34 +08:00   ❤️ 22
    ? what? 但凡对 py2 很熟,就不会说出这句话
    liprais
        2
    liprais  
       2022-09-29 19:53:51 +08:00
    学啥,你要做啥直接写不就完了
    liuxingdeyu
        3
    liuxingdeyu  
       2022-09-29 20:00:05 +08:00
    熟练指什么程度
    cmdOptionKana
        4
    cmdOptionKana  
       2022-09-29 20:05:10 +08:00
    使用 Pycharm, 直接打开 py2 代码,但 IDE 里改成用 py3 的解释器,然后根据 IDE 的提示修改即可。

    如果是新项目,就直接使用 py3 解释器,遇到问题一个个解决,没必要系统学习,偶尔看些新特性的文章就行。
    Evrins
        5
    Evrins  
       2022-09-29 20:50:48 +08:00
    2to3 呀 python3 自带的
    renmu
        6
    renmu  
       2022-09-29 22:27:31 +08:00 via Android
    熟练了直接写不就行了,都是一样的语法
    lithiumii
        7
    lithiumii  
       2022-09-29 22:30:22 +08:00
    print xxx 改成 print(xxx) 就差不多了……
    Mayye
        8
    Mayye  
       2022-09-29 22:33:08 +08:00
    @xunbug 确实是这样。。
    XIVN1987
        9
    XIVN1987  
       2022-09-29 22:53:29 +08:00
    python3 不兼容 python2 ,主要是指的用 python2 语法编写的代码无法在 python3 解释器上执行,,而且还没有简单的方法移植,,其中最麻烦的就是字符串编码的问题
    但从学习、写新代码的角度看,,二者差异并不大,,
    Tiger511
        10
    Tiger511  
       2022-09-29 23:10:20 +08:00
    Python 不需要学吧
    我是野路子,自学的 C/C++
    写自己的小项目,发现有些工作需要自动化生成源码,有些工作需要爬虫,有些远程部署 linux 系统 Shell 不统一
    掏出 Python ,一个月搞完
    Abbeyok
        11
    Abbeyok  
       2022-09-29 23:21:33 +08:00
    2 转 3 唯一的不方便就是之前用 2 写项目,需要改动一些语法。如果没有历史遗留,那就直接转
    LindsayZhou
        12
    LindsayZhou  
       2022-09-29 23:27:23 +08:00   ❤️ 1
    我觉得 python 2 和 3 之间还是有挺大区别的。2 的代码在 3 上跑起来简单,要学的内容是新增的语法和标准库的变动。

    比如说 yield from, asyncio, pathlib, enum, f-strings, 新增的乱七八糟的打包方式,诸如此类,python3 要变得“熟练”,这些也是必要的吧。在 python3 的各个版本号之间变动都挺大的。

    抱歉我一开始就学的 3 ,所以也没能有什么教程推荐的,只是回应一下楼上的说法
    em70
        13
    em70  
       2022-09-29 23:35:17 +08:00
    环境和库重新安装一下,其他不需要学习
    HashV2
        14
    HashV2  
       2022-09-29 23:36:46 +08:00
    我刚开始工作的时候就是 python2 python3 混用的,当时给我感觉除了 print 要加括号之外就没什么区别了。
    后面就知道很多,一个是写起来很爽的 f-string ,一个是很多列表都变成生成器了,性能会好一点,还有就是 asycn 和 await
    nightwitch
        15
    nightwitch  
       2022-09-29 23:42:10 +08:00
    2to3 直接转完再调调,再 diff 一下就完事
    XIVN1987
        16
    XIVN1987  
       2022-09-30 07:12:08 +08:00
    @LindsayZhou
    asyncio, pathlib, enum 都不是必须的,以前没有这些不也一样写代码,,学会 python 并不表示要把 python 的语法全都学会,只要能写出能工作的代码、能解决自己的问题即可

    f-strings 也不是必须的,,以前的 % 语法在 python3 中可以继续用,,只不过 f-string 确实更加直观,,很多人就改用 f-string 了
    janxin
        17
    janxin  
       2022-09-30 08:38:50 +08:00
    新增语法基本上是增量学习,用到了学一下就好。基础库有一些区别,很多基础库可能要适应一下。其实最简单的方法就是把你的 py2 程序改成 py3 可用,一般来说改完就知道区别在哪了。单独看书也可以,但是收益不如直接改程序来的快。
    deplivesb
        18
    deplivesb  
       2022-09-30 11:55:37 +08:00
    有多熟练?熟练了话就先吧所有的 print 改成 print()
    dayeye2006199
        19
    dayeye2006199  
       2022-09-30 14:22:19 +08:00
    2022 年了。。为啥还有 py2... 2020 年之后就得不到更新了。。
    jtsr
        20
    jtsr  
       2022-09-30 15:29:39 +08:00
    如果是个人开发者,直接用 3 的语法写的完事了。。如果是大型项目,那是需要考虑一下各类问题。
    webcape233
        21
    webcape233  
       2022-09-30 18:27:41 +08:00 via iPhone
    我怀疑你用的 xp+ie6
    要是十年前发这帖子似乎合理
    xiaochun41
        22
    xiaochun41  
       2022-09-30 19:04:14 +08:00
    这个不用看什么专门的书,可以看一下官方 Python2 到 Python3 的说明。新代码直接用 Python3 ,老的代码发现问题的时候再改就行了,等一段时间之后,就比较熟悉 Python3 的变化了。
    apake
        23
    apake  
       2022-10-01 21:28:50 +08:00 via Android
    熟练的话不会问这样的问题。 只能说对语言的学习没入门。
    sdjl
        24
    sdjl  
    OP
       2022-10-02 12:01:09 +08:00
    哇,这个帖子有这么多人回复~

    我的意思是,python3 有一些新的功能、特性、语法,这些 python2 没有。

    有没有地方可以很好的整理出来,系统性的学习一遍。
    xifoo
        25
    xifoo  
       2022-10-02 21:55:48 +08:00 via Android
    直接《 effective python 》和《 fluent python 》,前者有很多 py3 的实用小 trick ,后者就相对深入了,会讲许多 python 的底层机制。前者直接看第二版,后者的第二版也快出来了但第一版也很值得看一看。
    sdjl
        26
    sdjl  
    OP
       2022-10-04 17:36:39 +08:00
    @xifoo 谢谢

    我刚刚发现有 python3 的中文文档,也适合用于学习 https://docs.python.org/zh-cn/3/library/asyncio.html
    sdjl
        27
    sdjl  
    OP
       2022-10-05 18:28:09 +08:00
    @xifoo 谢谢,你推荐的这两本书我都买了
    julyclyde
        28
    julyclyde  
       2022-10-08 11:36:56 +08:00
    其实 2to3 已经没有多大意义了

    现在 pure3 才是重点
    sdjl
        29
    sdjl  
    OP
       2022-10-09 17:08:14 +08:00
    @julyclyde 我现在就是 pure3
    wuwukai007
        30
    wuwukai007  
       2022-10-09 17:53:26 +08:00
    python3 1/3 = 0.3333
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6104 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 06:13 · PVG 14:13 · LAX 22:13 · JFK 01:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.