Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

第 1 章 Python 入门

目录

1.1. 如何快速学习 Python 语言
1.1.1. 学习编程的目的是什么?
1.1.2. 很多公司是怎么死的?
1.1.3. 学习定位问题?
1.1.4. 小白怎么入门呢?
1.1.5. 从入门到放弃
1.1.6. 为什么学不会?
1.1.7. 如何快速高效的学习一门语言?
1.1.8. 碎片化学习
1.2. install
1.2.1. venv
1.2.2. Docker 安装
1.2.3. dnf 安装 python3.11
1.2.4. 编译安装 Python3.x
1.2.5. Ubunut 13.04 环境安装python3
1.2.6. pypy - fast alternative implementation of Python - PyPy interpreter
1.2.7. Eric Python IDE
1.2.8. python to exe
1.2.9. Python2.x
1.3. Python Package Index (PyPI)
1.3.1. 什么是 PyPI
1.3.2. 准备目录
1.3.3. 创建LICENSE文件
1.3.4. 项目描述文件
1.3.5. 库代码
1.3.6. setuptools 构建脚本
1.3.7. 构建包
1.3.8. 查看包
1.3.9. 上传包
1.3.10. 安装包
1.3.11. 使用包
1.3.12. 卸载包
1.3.13. Built distribution
1.3.14. 免密登录
1.3.15. 其他 Python 包管理工具
1.3.16. pip - A tool for installing and managing Python packages
1.4. Python 模块
1.4.1. 同级目录
1.4.2. 一级目录
1.4.3. 二级子目录
1.4.4. 子目录调用上级目录
1.4.5. 导入类
1.5. 数据类型
1.5.1. type 数据类型检测
1.5.2. 字符串
1.5.3. float 浮点数值
1.5.4. Array
1.5.5. 日期和时间
1.5.6. bytes 类型
1.6. 数据结构
1.6.1. List
1.6.2. Set
1.6.3. Dict 字典
1.7. Class
1.7.1. __init__ 构造方法
1.7.2. inner class(内嵌类)
1.8. 正则处理字符串
1.8.1. 正则替换
1.8.2. match
1.8.3. 正则查找
1.8.4. 正则匹配后返回字典
1.9. 循环
1.10. Input/Output
1.10.1. Standard
1.10.2. File
1.11. Pipe
1.11.1. stdin
1.11.2. forkpty
1.11.3. Popen
1.11.4. socketpair

1.1. 如何快速学习 Python 语言

1.1.1. 学习编程的目的是什么?

学习编程的目的要明确,解决工作中遇到的痛点

1.1.2. 很多公司是怎么死的?

很多老板创业,他的想法是先生产产品,然后再找销路,这时发现市场根本不需要他们生产的产品,最后一个都卖不出去,工厂就倒闭了。

学习也是一样,不要想着,我先学,等我学会了,在去找对口工作,结果你会发现可能等你学会了,企业已经不需要这种技术了,或者学的人特别多,竞争非常激烈,很多人抢一个岗位。

所以我们应该是以解决工作痛点为出发点,去学习编程。员工的工资取决于岗位的稀缺性和不可替代性以及为公司创造的价值。我们学习编程,就是为了在该岗位上为公司创造价值,增加岗位竞争力,从而提高工资收入。

1.1.3. 学习定位问题?

编程是个很宽泛的说法,在编程界分成很多领域,两个领域的程序员相互都不会对方领域的知识。例如开发显卡驱动的跟H5前端程序员是两个隔行如隔山的领域。

1.1.4. 小白怎么入门呢?

对于没有经验的人,怎么学习编程?其实学习语言很简单,可能最大的阻力是你心理上的,你从心里上否定了你学不会,学习难……

儿童都能学习,你为什么学不了呢?

所谓编程,就是流程控制,我们将现实中的流程搬到电脑上,让电脑替代人去完成。所以就必须用电脑能理解的语言去描述工作流程,这就叫编程。

1.1.5. 从入门到放弃

为什么很多人学了一半最终放弃了?

答案是,没有应用场景。没有应用场景就等于你在学习屠龙术,在消耗你时间和生命。

我们为什么去学一门编程语言?提高自身涵养吗?修身养性吗?我们学习语言的目的非常明确,解决工作中遇到的问题啊,提高自己职场竞争力,升职加薪,为了以后可以不工作,为了实现财务自由。其他全TMD扯淡。

1.1.6.  为什么学不会?

学不会真的不是你的问题,是教的人有问题。我们中国的教育是畸形的,在这种畸形教育下培养出来的老师,会让这种教育方式继续在你的身上延续。

我举一个例子,学电脑,第一周会教你什么?计算机原理,认识计算机,然后学习打字,学习操作系统,在学习办公软件,我当年学了三年,毕业的。话说以前用步话机都需要学习,还要培训一个月,就一个按钮的机器,他会叫你通信原理,使用手册,通联用语等等,你很难想想,就如同电话手机,让你先学一周的通信原理,基站原理,手机使用注意事项…… 这就是我们的教育,教你十几年的英语,还是学不会。

现在是否发现,手机是不需要学习,就能使用的,你只需要买一部手机,差一张SIM卡,就可以打电话。上面APP你也从来没有上过什么培训班去学吧?

1.1.7. 如何快速高效的学习一门语言?

任何一门语言都是由下面几部分组成的:

  • 数据类型、数据结构
  • 逻辑判断,循环
  • 类、函数
  • 自带库
  • 第三方库

对于没有经验的人来说,1,2,3 可以需要花点时间,1~3个月足以。对于有经验的人(之前使用过其他语言),1,2,3 只需要一周时间。

接下来重点就是类库和函数的学习,你能否熟练写程序就取决于对各种开发库的熟悉程度。新手需要不停的翻越手册,查看每个函数和参数,用过了再知道怎么使用。

我在学习Python 的时候,用了3天快速翻阅,掌握Python基本的数据类型,数据结构和语法。然后直奔开发库,从手册中找出我需要干活用到的函数,对着手册,用了一周就开发出高质量的程序,解决了工作中的实际问题。

记住在职场上,薪资的高低永远取决于所在岗位的稀缺性和不可替代性以及一位公司创造的价值。能找到公司的痛点,并解决掉,这样的员工才有价值。所以我在公司专挑骨头啃,没挑战的活我不干。

职场上从来没有「没有功劳,也有苦劳」一说,升职加薪也不会给干苦活的人。

我第一个Python程序,就涉及了多线程,进程间通信,TCP Socket,本应该使用 C 来完成的程序,使用C语言写估计要搞上半个月到一个月,我用Python 只用了一周完成。爽爆了!!!

我也用这种学习方法去学习 Go 语言,当时做区块链项目,Hyperledger Fabric 的智能合约需要用 Go 语言编写,用了不到一周就把智能合约写完。

后来又有一个项目用到了 EOS 区块链,需要使用 C++ 写智能合约,我也如法炮制。

1.1.8. 碎片化学习

我会说这样的学习方法,缺点是不扎实,但解决实际问题。扎实与否取决于后面你是否能坚持不懈的学习。

这种学习方式非常适合非职业程序猿或者晋升到管理层脱落一线的程序猿。即我们必须解决工作中遇到的问题,我们又不是天天都在写程序。当然前提是你需要有一个好的基础,至少在此前你做过多年的程序猿。

没有经验的程序猿,首先要掌握前面所说的 1,2,3 三个步骤,只要突破了这三个阶段学习,后面如履平地。