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
ota
V2EX  ›  Python

求 Python 初学者书籍推荐

  •  
  •   ota · 23 天前 · 2952 次点击
    为了减少挫折,暂时不碰官方的 docs
    看了点老外推荐的书评,大体两本用于入门

    Python Crash Course
    head first python

    还有 Math Adventures with Python 这本挺有趣,用 py 学数学,我数学基础不太好,正好用来高效化数学的理解。

    后面视频教学和交互学习有推荐的也希望给点意见。

    #1 学习框架主要以书本为主,这样看目录就大体能知道自己要掌握的知识结构,方便控制学习进度。
    #2 其次以视频辅助,扩展文字学习中抽象的部分以及强化概念认知。
    #3 交互学习来将问题解构获得思路,强化逻辑理解能力。
    #4 最后通过 GPT ,社群等来获得定向的知识补充。
    42 条回复    2024-10-30 15:08:38 +08:00
    mooyo
        1
    mooyo  
       22 天前
    说来惭愧。。我 python 是看廖雪峰学的,我感觉那套教程写的还挺好的。
    iorilu
        2
    iorilu  
       22 天前
    第一本就可以

    切记先只看一本看 2-3 遍, 每个例子亲自敲一遍代码就行, 不要复制黏贴, 更不要
    只看不练, 那等于零
    yinmin
        3
    yinmin  
       22 天前 via iPhone
    如果精通其他编程语言,转学 python ,可以先菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html ,然后:《流畅的 python (第二版)》
    chendl111
        4
    chendl111  
       22 天前
    学门语言最重要的是用起来,菜鸟教程懂了语法就可以去写小 Demo 了,高级语法用到了再去学。用 py 强化数学是舍本逐末,那为什么不直接去学数学
    mcsddjyd
        5
    mcsddjyd  
       22 天前
    python cookbook
    流畅的 pyhton
    Hookery
        6
    Hookery  
       22 天前
    看了楼上的回复,感觉不同人对初学者的定义很不同啊。。
    iorilu
        7
    iorilu  
       22 天前   ❤️ 2
    一些人动不动就把流畅 python 拿出来

    你们自己想想开始是靠这个学 python 的吗

    这书至少需要中级水平看才有意义

    这书是让你了解更多细节的, 或者底层一些机制的
    zhuangzhuang1988
        8
    zhuangzhuang1988  
       22 天前   ❤️ 1
    maix27
        9
    maix27  
       22 天前
    要学 A 你就学 A ,不要指望能通过学习 B 这种和 A 有关联的东西(没啥关联,比完全没有关联多点)来助推学 A 。

    比如你说要学 Python 可以,别指望通过学点数学库能帮你学好数学。数学只能通过做题,用心学才能学好,你学校里专门学数学都学不好,通过 python 就能学好了?

    还有教材,推荐选第一本,跟他的项目动手做,不要看视频,不要用很多很杂的资料,不要不看文档,文档很重要。
    你说“其次以视频辅助,扩展文字学习中抽象的部分以及强化概念认知。” 强化概念认知可行,扩展抽象的部分不太可能吧,视频比文字的表达力弱多了,你光看书就行了。python 的 docs 可以多看啊,不难,和某些语言的不一样。
    iorilu
        10
    iorilu  
       22 天前
    @maix27 是的, 我强烈不建议初学者学习编程用视频

    没任何价值

    因为用视频, 你会误以为都很简单, 看很多视频却根本没动手一次的机会, 看完还是零, 看 10 套视频也是零, 我可以这么说

    初学者编程只有一种方法, 就是照着书一句一句打代码, 然后运行, 看报错, 然后调试修改, 直到能运行为止, 再继续

    别以为这种方法速度慢, 这就是最快的学习方法, 没有之一
    maix27
        11
    maix27  
       22 天前
    对,而且 Python 的 docs 写的真的很好,我真不想点名某个热门语言(笑😊)
    fffq
        12
    fffq  
       22 天前
    菜鸟教程
    ota
        13
    ota  
    OP
       22 天前
    @Hookery 毕竟每个人的基础不同。有其他后端语言的基础的话,py 也就几天就上手了估计。
    但我觉得 py 还是比较适合入门的,能快速掌握编程的直觉,后面再反过来学习计算机的底层原理会事半功倍。

    @chendl111 毕业很久了,从事的是原型,UI 设计这块,几乎没用到过三角函数,统计概率之类的,微分积分更别说了。只是最近接触后端,得有点数学基础,所以才有重温的想法。但我目标只是轮子的复用,大体也不用深入,所以有一本直接用 py 描述数学的书籍,会更容易付诸应用。
    我目标挺明确,算法之类,我找 gpt 沟通,然后给我一些 py 代码,能读懂并插入即可。主要在学习数学的同时了解概念以及应用方向,并提高一定的逻辑思维能力即可。


    @maix27 是在 AB 之间选一本,不是两本都看,不过都看也不占用多少精力,入门的内容重叠部分很多,无非就是讲解的方式方法不同而已。

    数学有些兴趣的,python 辅助来理解数学概念并在 py 中的实现,这对构建 problem solving 的思路有一定帮助的,我并不急功近利,慢慢实践即可。

    视频只是辅助,有空会看看一些优秀讲师对 py 讲解的扩展,比如有些讲师会扩展扩言的发展史,以及对比其他语言写法上的异同,还是有些帮助的。

    docs 暂时看不了,扫了一下,的确内容不多,但缺失很多实例配合理解,更多是语法。

    个人意见,学习框架大体改不了,因为快速掌握某些专业我都是用这样的方法获取信息和知识的。
    我对自己的要求是看的懂代码,能够二改,独立开发的需求不大,主要定位是轮子的复用。
    NoOneNoBody
        14
    NoOneNoBody  
       22 天前
    cookbook
    EngAPI
        15
    EngAPI  
       22 天前
    有咩有其他语言基础,看完语法就可以自己瞎折腾了,然后朝某个方向写工具,自然就会了
    vincentqiao
        16
    vincentqiao  
       22 天前
    没有语言基础的话:推荐《像计算机科学家一样思考 Python 》,感觉比较适合初学者。
    《流畅的 Python 》太专业了,第一次读差点就放弃
    vipshf
        17
    vipshf  
       22 天前
    @iorilu 没毛病,举双手赞成
    ota
        18
    ota  
    OP
       22 天前
    @iorilu 视频完全拒绝也不是太理性,我明白看书,反复操作,吃透才是关键。但很多时候,高质量的讲师讲解内容更能帮助理解,更多是思路的提供。昨天看了点 Udacity 上的 py 入门(别人的录播),不是一开始就上来巴拉巴拉语法,会从几个应用侧面确定你的学习方向,比如 data science 或者 web developer ,这个时候会提醒你要前置一些学习内容,中间也会教你扩展哪些方向,比如调用 numpy 来做数据分析等。对于初学者,快速掌握语法的确是首要的,但同时也尽量不要对新节点有所拒绝,不要过渡深入倒是需要自己控制住的。

    py 本身更易学更接近自然语言,学习难度比起 go rust 要低不少,特别像 c 这种不提供 REPL 交互反馈,py 对初学者是太良心了,当然 py 被定义为解释型语言这本身就是低门槛了。完全 0 基础自学主要缺乏的是学习框架,并不是某本书,就和 v 友说的,docs 足够了,如果只是语法的话。我当前学习的主要路径是按 roadmap.sh/python 上的节点选择性输入。
    ota
        19
    ota  
    OP
       22 天前
    还有一个就是大伙很多时候都是前置 py 为吃饭工具,得有产出。
    我目标并不是产出,主要是理解设计,写一些伪代码实现自己的想法,我主要还是偏设计师,py 的主要学习动机还是因为 AI 应用方面,特别 py 在很多国家都纳入小学必修课了。
    maix27
        20
    maix27  
       22 天前 via iPhone
    @ota 从上面看下来也没看到哪个兄弟默认前置是吃饭工具,大家说得是你看书加实践才能学会。这里的产出是你做的东西,你的实践,你没产出学个锤子。
    maix27
        21
    maix27  
       22 天前 via iPhone
    我发现你频繁的提到设计师,你是觉得设计师很 special 么?什么人学东西不是学?尤雨溪也是设计师人家怎么能学 js ?需要我把尤大啃犀牛书的经历给你翻出来么?伪代码不能实现想法,只有代码才能,伪代码就是打个草稿,落实还不得 python 这种编程语言起步么
    maix27
        22
    maix27  
       22 天前 via iPhone
    你频繁的提到视频的优点 什么引导学习方向,扩展知识,恰恰没想到这些都是 chatgpt 的优点(笑。
    ota
        23
    ota  
    OP
       22 天前
    @maix27 我可没否认需要实践。视频、论坛、社群这类作为辅助,我表达的已经很明确了。如果你坚持屏蔽其他,那就你对吧。

    主要偏向 ui 设计,我也就说了两次,如果你觉得双数得加 s ,得用频繁来表述,那就你对吧。虽然你已经恶意揣测了,但我下面解释也并不是说给你听的,可以无视。

    我偏向设计,意思是我不是转行做后端。所以我不是准备拿 py 来做一些什么所谓产出的,无非是改改轮子,复用程度罢了,我主要用途是为套壳提供一定的阅读代码的能力,basics 的地方自然要掌握,所以我选个入门的,也不是无脑找个“零基础到精通”这类圣经。至于你说伪代码不能实现想法,但能表达想法,足够了,不知道你激动的点在哪里?别人如何我不清楚也不用清楚,每个个体有差异,更何况目标不同,py 只是一个语言,你可以用他取代 shell 高效运维你的服务器,但也有人只是拿来阅读开源代码。

    热心的网友提供经验和学习资料或者思路。
    有一类网友喜欢到处教育别人该如何如何,那抱歉,空洞的话打动不了我,不如拿出点干货,多分享点新手会遇到的坑都比在一旁叫嚣来的有用。
    sickoo
        24
    sickoo  
       22 天前
    我赞成动手学,而且是有产出、有目标那种,而不是心血来潮,一拍脑袋扎进去,毕竟是一个工具。。。
    ota
        25
    ota  
    OP
       22 天前
    我发现你频繁的否定视频,你是觉得看书的很 special 么?什么媒介不是学?视频 3-6 个小时的入门,大体过一遍就不行?然后回到书本就存在问题?很显然,你的思维太单线程了。书本为主,其他为辅,有人说看书+实践,我觉得看点视频教学会有帮助。大家的观点不存在对立,无非是在 book 的基础上+了 video 这个媒介,注重实践的基础上,有余裕就去摄取即可,百利无一害,到你嘴里就是对立面了。
    读书就别看视频,你是从哪里得出的结论。你既然提了 gpt ,那作为前辈,请你采集下这类一手数据来源,也别 py ,直接让 gpt 分析下,将“看视频影响书本知识的汲取”这一论点列出来,到底是否具有普遍性。
    iorilu
        26
    iorilu  
       22 天前
    可能你想象得说几句话让 chatgpt 或什么其他工具把代码写了, 你只需要做 ui 设计啥的, 就能把产品完成了

    基本是不可能得, 没有很好得基础, 出一个 bug 你解决不了就卡住了

    更别说, python 很多时候想跑起来可能就需要相当得经验技术

    我可不是乱说, 我已经用 cursor 做了 n 个小玩具项目, 我可以负责任得说, 没有中等以上得技术, 还是玩不了,
    指望不用懂代码就把项目开发了是不可能得

    现阶段 ai 工具顶多是提高效率, 也就是这事可能你本来要 1 周搞定, 但现在只要 1 天, 但前提是你本来就能 1 周搞出来
    ota
        27
    ota  
    OP
       22 天前
    @sickoo 嗯,每天都看一点,v 友说的 docs 也一起跟着书本看着,看的比较杂,一楼提及的廖雪峰的教程,也有过目。第一遍主要是快速阅览,二刷三刷才会上手。
    CLMan
        28
    CLMan  
       22 天前
    "Python 初学者",错,“编程初学者”,对。

    其实你是基本对编程没有什么概念,因为对于有编程经验/思维的人来说,Python 入门也就一个下午的事情。因为你也不用来写什么复杂东西,Python 看个语法部分就算入门了。

    用 math adventures 来入门是你想多了,里面的 Python 内容不成体系,里面的数学内容也不成体系,你不是数学专业出生的,哪来的背景知识看,看天书吗?

    我读大学的时候,大一基础课之一就是 C 语言编程,这种教育依然是灌输式的教育,典中典的谭浩强 C89 ,坑害了多少人。不知道现在大学的培养方案变更没,这类课程的目的,其实就是要教会学生编程思维。

    如果要推荐,CS61A 应该是合适的,包括视频,基于 Python ,讲解编程思维。
    ota
        29
    ota  
    OP
       22 天前
    @iorilu 我合伙人是个后端,go 语言为主。遇到过和第三方程序员合作,我就很难把需求代码化阐述给对方,一般是我合伙人用伪代码来解释,久而久之,我觉得自己也应该掌握代码的表述能力,但我主要还是在原型设计上,并不是后端,也不指望 full stack ,我明白自己能投入的时间和精力以及智力水平。
    当前有了 gpt ,很多时候代码的效率会提高很多,我们处理的问题不是高深的算法问题,只是一般的业务逻辑,平时画图能解决事情,一旦细节完成度上有要求,有时候也要对代码级别有所了解。py 只是个入口,可能要求的是广度,不是深度。了解技术栈比掌握技术栈重要,至少我这边是这样想的。
    ota
        30
    ota  
    OP
       22 天前
    @CLMan 是的,我对计算机原理这类根本不了解的,特别让我直接看数据结构我也很有压力。学点 py 之后再来学计算机原理和汇编也是今后发展上的一个路径。

    math adventures 不是用来入门 py ,我只是在帖子里提及了一下,我觉得很有趣。看不懂那肯定是我没按框架来做,只是捡到了末端的某片叶子罢了,所以数学也是一个系统的学习过程,并不是我要拿着 py 去学数学。可能你误会了,只是觉得数学还能这么学挺有趣。

    CS61A 当前对我来说还早,但作为一个学习储备,已 mark
    maix27
        31
    maix27  
       22 天前 via iPhone
    乐,热心的网友提供经验和学习资料或者思路。
    有一类网友喜欢到处教育别人该如何如何,那抱歉,空洞的话打动不了我,不如拿出点干货,多分享点新手会遇到的坑都比在一旁叫嚣来的有用。 你是觉得我没说么? 看视频不就是最大的坑?你觉得我没事晃你是吧 前面兄弟不是说了不看 fluent python 么 我推荐你看第一本加实践不是分享是吧?我没否定你用 chatgpt 学习吧?没叫你别看 docs 吧? 这就是空洞的话了? 这就是叫嚣了?
    maix27
        32
    maix27  
       22 天前 via iPhone
    我发现有的兄弟只能听好话,那下次我多说好话捏😆
    maix27
        33
    maix27  
       22 天前 via iPhone
    如果你认为 0 也是 1 也是提及,也是说的大家觉得这是 python 是吃饭工具那你想多了。你认为我一直恶意揣测你的时候何尝不是在恶意揣测别人呢?大家一直在说怎么学编程 你一直说大家总是说怎么学吃饭工具 python 。没人说吃饭工具 大家都在说怎么学 python 编程能理解么?
    maix27
        34
    maix27  
       22 天前 via iPhone
    有意思 你是觉得我哪句话冒犯到你了么? 没人说你学习的深度。我只是说你想通过伪代码实现想法很困难甚至不可能。我建议你学 python 然后用他来,你会发现实现和想法中间差了很多(细节)这是用伪代码表达不了的
    ota
        35
    ota  
    OP
       22 天前
    @maix27 文不对题,你最开始回复的,我也正面回复你了。

    你是从 20 楼开始引战。我说的产出,和你说的产出,以及大伙认为的产出,是否是一个概念姑且不提,学习+实践本身就是掌握知识的必经之路,我只是提及了视频,就和产出消亡和减少挂钩了,你是从哪里得出的结论?然后回到产出这个概念,19 楼我写的明明白白,我的目标并不是产出,这个产出的意思是自己写的非教学代码,重构也罢,完全自主也罢,即便是片段也是归属这个概念。但我要的产出或者换句话说,要的成果是能用 py 表达代码级别的需求阐述,不需要代码执行效率有多高,语法要正确,只需要表达需求即可,这是我最低需要获取的等级。你说的打个草稿,对,这就是我想要的产出,已经足够了。回到学 py 这个过程的产出,那就是实践,同样我没有否定实践书本中的代码,甚至一字不差码字下来,我也没有觉得这可以略过。

    看视频是不是最大的坑,这个我已经在前面说明了,书本以外的都是辅助,我没有取代的思维说要视频驾驭书本。什么视频的优点恰恰是 gpt 的优点,这些你觉得斗个机灵合并同类项了,可以,我也不阻止你,我也不是来和你做分类学的探讨的,你觉得可以统一是你的观点,那我表述我的观点也很正常,你一方面让别人接受多样性,却不能接受别人对你这多样性的质疑,是否矛盾?

    大学里有参加过辩论赛不?那总看过吧。向来引战以及攻击是用反问开始的,你 21 楼已经很明确了,所以到底你是想给予帮助还是想教育人,太明显了。但我想说,如果不能好好聊,建议不要继续聊下去,因为后面的交流并不是以论点说服对方,而是要让对方愤怒为导向了,对双方都无益。
    ota
        36
    ota  
    OP
       22 天前
    @maix27
    你可以搜索下“?”,全篇除了你,没人在用“?”。你前面几个“?”我也保持谦虚在听取。
    后面一直频繁“?”,你是无意识还是平时就是这说话语气我不知道,但的确你可以改一改,不管你是否是大咖还是菜鸟,情绪保持稳定是比较重要的一个素质。
    maix27
        37
    maix27  
       22 天前 via iPhone
    我听进去了,谢谢你的建议。
    harlen
        38
    harlen  
       21 天前
    官方教程其实最简单。 不过我觉得当字典查就行了,下个 pycharm 跟着教程写写 ai 项目,写一个基础语法就都熟了,高级的需要知道什么查什么。 基础语法就看看看,怎么定义变量,怎么定义函数,怎么定类,实例化类,怎么运行程序,if 循环怎么写,这些用例指导一个,就能正常使用了
    Tiger511
        39
    Tiger511  
       21 天前
    python 不需要学 上手干就完了 语言本身太简单了
    jinjiang2024
        40
    jinjiang2024  
       20 天前
    我是靠百度学的 用的时候就百度一下 不用的时候就忘记了
    soledad111
        41
    soledad111  
       19 天前
    你说的这两本 Python Crash Course 、head first python 就是经典入门书了,还有 Python 基础教程也可以,进阶点的就是《 CPython 设计与实现》《流畅的 Python (第 2 版)》《 Python 工匠:案例、技巧与工程实践》
    ota
        42
    ota  
    OP
       18 天前
    @soledad111 已入 crash course 。扫了目录 20 章,内容还是挺丰富的。除了书中 ide 用的 vscode 可能要转成 pycharm 有点别扭。额外学习分支加了个 pycharm 的熟悉,幸好官方给的快速入门和在线文档也是很丰富的。
    最新的这个第三版基于 3.9 ,现在差不多 3.12 。还是相当与时俱进的。特别建议 win 的同学直接在 WSL2 跑代码,这样到生产环境也很顺滑。我是自己服务器上开了个 vm 用于学习,生产环境高度一致了^^
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:25 · PVG 02:25 · LAX 10:25 · JFK 13:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.