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 · 6 天前 · 2378 次点击
    为了减少挫折,暂时不碰官方的 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  
       6 天前
    说来惭愧。。我 python 是看廖雪峰学的,我感觉那套教程写的还挺好的。
    iorilu
        2
    iorilu  
       6 天前
    第一本就可以

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

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

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

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

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

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

    没任何价值

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

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

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

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


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

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

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

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

    个人意见,学习框架大体改不了,因为快速掌握某些专业我都是用这样的方法获取信息和知识的。
    我对自己的要求是看的懂代码,能够二改,独立开发的需求不大,主要定位是轮子的复用。
    NoOneNoBody
        14
    NoOneNoBody  
       5 天前
    cookbook
    EngAPI
        15
    EngAPI  
       5 天前
    有咩有其他语言基础,看完语法就可以自己瞎折腾了,然后朝某个方向写工具,自然就会了
    vincentqiao
        16
    vincentqiao  
       5 天前
    没有语言基础的话:推荐《像计算机科学家一样思考 Python 》,感觉比较适合初学者。
    《流畅的 Python 》太专业了,第一次读差点就放弃
    vipshf
        17
    vipshf  
       5 天前
    @iorilu 没毛病,举双手赞成
    ota
        18
    ota  
    OP
       5 天前
    @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
       5 天前
    还有一个就是大伙很多时候都是前置 py 为吃饭工具,得有产出。
    我目标并不是产出,主要是理解设计,写一些伪代码实现自己的想法,我主要还是偏设计师,py 的主要学习动机还是因为 AI 应用方面,特别 py 在很多国家都纳入小学必修课了。
    maix27
        20
    maix27  
       5 天前 via iPhone
    @ota 从上面看下来也没看到哪个兄弟默认前置是吃饭工具,大家说得是你看书加实践才能学会。这里的产出是你做的东西,你的实践,你没产出学个锤子。
    maix27
        21
    maix27  
       5 天前 via iPhone
    我发现你频繁的提到设计师,你是觉得设计师很 special 么?什么人学东西不是学?尤雨溪也是设计师人家怎么能学 js ?需要我把尤大啃犀牛书的经历给你翻出来么?伪代码不能实现想法,只有代码才能,伪代码就是打个草稿,落实还不得 python 这种编程语言起步么
    maix27
        22
    maix27  
       5 天前 via iPhone
    你频繁的提到视频的优点 什么引导学习方向,扩展知识,恰恰没想到这些都是 chatgpt 的优点(笑。
    ota
        23
    ota  
    OP
       5 天前
    @maix27 我可没否认需要实践。视频、论坛、社群这类作为辅助,我表达的已经很明确了。如果你坚持屏蔽其他,那就你对吧。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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