Skip to content

hsz1273327/TutorialForPython

Repository files navigation

python攻略

Python是一门既容易上手又强大的编程语言.--Python官方教程

起因

这个系列上一个版本是针对Python 3.5版本的,向上介绍到了Python 3.7.由于工作和生活比较忙加上挖坑太多有很多东西没来得及写.

时隔5年,时过境迁,python2已经官方不再支持,彻底成为了历史,python3.5官方也已经不再继续维护更新了.最新版本已经更新到了3.11版本,因为之前的攻略并没有介绍到非常重要的3.8版本,之前的攻略已经显得有些过时,因此觉得可以抽时间更新下这个系列,有时间的化也可以把这个系列的坑填一填.

为什么不是3.11

2022年10月24日Python3.11版本发布了,它确实也有一些语法上的更新,但更多的是性能优化.当然和上一版攻略的规则一样,Python3.10以后得版本新增的特性我也会介绍写出来,但会做出标记,如果以后哪个版本又有了关键字层面或者大的语法层面的改变,本教程也会迁移过去.

怎么利用这份攻略学习Python3.10+

  • 首先,忘记Python2.7,python2已经是老黄历了

  • 忘记3.10-的Python怎么用的,从头开始学.本教程也不会有与之前的对比,一切从新开始.虽然其实整体来看区别很小.

  • 其次,边做边练,本教程没有习题,但比较重要的部分通常都有示例代码,本教程的也完全是使用jupyter notebook编写,可以自行去代码仓库拉下来亲自跑一遍.

  • 善用help()方法,本教程不会大量罗列api,列出来的一定都是相对比较重要的,没有列出的api细节请自己help()查看

作者本人在写这份攻略的时候,出发点就是希望记录学到的东西,日后一旦忘记就可以在这里快速找到.因此可以看到本文章节分的比较细.

本教程通篇阅读当然可以,但更加推荐将其作为工具书,碰到问题了查一下.这样使用可能更加高效.

目标读者

本攻略的目标读者和原来一样,还是有点编程基础又不会python,想用python"干点什么"的新手.

非目标读者

  • 希望速成的读者

    本文的作者相信踏踏实实一步一个脚印是做任何事情的唯一捷径.本教程也被设计成百科全书的样式.光是写作,作者就一个人断断续续写了快3年. 全教程对有一定编程基础的读者来说阅读下来应该是1周左右的量(前提是耐得下心思).而没有编程基础的读者可能读起来会比较吃力,这样连看带消化可能要看上几个月. 当然通篇阅读并不是本文推荐的阅读方式,这个是后话.

  • 其他语言编程习惯"根深蒂固"的老程序员和伸手党新人

    这几年由于ai技术和大数据技术的火爆,不少老程序员和新手将目光投入到了Python这门语言上,这个趋势当然是好事,有更多的人了解Python,想学习Python当然是pythoner所希望的, 但回顾历史,大学扩招带来了大量劣质大学生,知乎,bilibili等小众社区开方注册带来了大量水军.社区的质量和其成员的质量息息相关.上面提到的这两种人会将社区带向不好的方向,我希望不是我的攻略带他们进的这个领域.

不是很推荐的读者

  • 0基础新人读者

    老实说这本攻略是那种比较枯燥无味的读物,可读性很糟糕.很可能第一部分--工具链的环境配置一节就会劝退大量新人,这可就罪过了.因此不推荐0基础新人,读这个攻略的新人推荐

    1. 先去了解下操作系统中的环境变量部分的基本知识
    2. 读一本Python的科普型书,比如这本与孩子一起学编程,当然其他相对专业些的书或教程比如官方教程只要读的下去的读过最好.

本教程的内容范围和组织结构

编程这个领域没有银弹,Python虽然很强大但远远不是能包打天下的编程语言,这次更新我也尽量把Python的能力边界画出来,省的让人看学了了最后发现用不上.这次的构思是出个系列教程,将Python本身和几个方向的应用抽离出来,本文的主题是Python本身,专注于最基本的环境搭建,工具链介绍以及语法和使用习惯,后续还会有以本文所介绍内容为前置知识,但主题是网络应用,AI应用,嵌入式应用等的应用教程

很多人讲Python开发就是搭乐高积木,只要会调包就能用好Python,某种意义上来说这种说法是对的.Python的官方仓库已经有6万多个包,其中有大量非常优质的包.

和上一版本不同,本文会更加注重应用,在python及其标准库之外不同的应用领域我也会介绍主流的包,但注意这个主流的标准可能并不客观,本人见识有限也就只能介绍我自己知道的部分.

文章将会划分为篇,章,节,文,篇一般是指向特定方向或领域;每一篇下面的单位是章,章一般是指定子方向或者子领域;章下面是节,节一般就是具体的技术了;一些具体技术比较简单可能一篇文章就讲结束了,而一些比较复杂的可能需要几篇才可以讲完;.篇下面可以没有章,这种情况就顺延.篇,章,节下面都会开头的介绍文字和结尾的结语.介绍用于总体上概括其所属的内容而结语用于介绍一些豆知识,相关的好用第三方库和个人的相关看法,希望读者喜欢. 每一节可以是单独的一篇文章也可以是多篇文章.我尽量让各个部分内聚避免耦合,这样可以不用按顺序,但有些确实需要有其他方面基础的那就没办法了,我会在每节开始的部分给出预备知识的超链接方便查看.

每一篇文章中都会有1~3级标题,不会再往下分出4级标题.同时1级标题只会是一节的标题.

总结下就是如下的树状结构

篇-|
   |-章-|
        |-节-|
             |-文-|
                  |- 1级标题-|
                            |-2级标题-|
                                     |-3级标题

或者

篇--|
    |-节-|
         |-文-|
              |- 1级标题-|
                        |-2级标题-|
                                 |-3级标题

或者

篇--|
    |-文-|
         |- 1级标题-|
                   |-2级标题-|
                            |-3级标题

在文末会有一个术语表附录,将文中出现的术语做一个总结,如果有的话也会给出wiki链接.

文章结构会和上一版有一些不同,一些原本是篇的可能会被下放为章.

下面是每篇的简单介绍

  • 工具链篇

    介绍Python社区多年经营并发展出的规范及在通用计算机上对应的开发辅助工具

  • 语法篇

    介绍Python优雅严谨的语法和惯用法

  • 底层篇

    介绍Cpython的底层实现和相关工具

  • 技巧篇

    介绍如何使用Python的特性以及一些数据结构,算法,设计模式以及第三方包让程序更加高效优雅可控

  • 基础应用篇

    介绍python在一些比较普遍通用领域,如时间处理,数据读写,信息安全,数据处理,简单运维,简单人机交互方面的应用

  • 扩展篇

    介绍在python中使用其他语言的工具

目前更新是在2023年的4月4日,现在更新好后内容上来说对之前的有所删减,希望在未来3年中可以填完这个大坑

贯穿全文的排版约定

难度分级

由于每个人对使用Python的场景不同,用法不同,需求不同,因此通常我们都只是使用了Python的子集,这没什么不好,同时也为本攻略的编写提出了一个要求--分级

这边给出的分级方案是相对分级,具体说就是在篇/章/节/中1~3级标题中命名以*为开头,为标题的就是相对其他同级的来说进阶一些的内容,这些内容可以选择着看;而使用**开头的的则是相对最基础最重点的内容.需要加深记忆

篇/章/的标题在每个篇/章的介绍页,

向上兼容

本文基于3.5版本,但一旦有新版本出现,那新特性也会被添加进来.为了区分这部分向上兼容的部分,会在标题的末尾中使用[3.6]这样的字样标识出来

ps

一些比较关键的点会使用加粗斜体的PS:字样标识出来

更新信息

  • 2023-03-31 开始重新整理针对python 3.10版本的python攻略
  • 2023-10-20 技巧篇新增使用第三方工具提升运行时性能的3篇相关文章
  • 2023-10-22 新增底层篇
  • 2023-10-23 新增扩展篇