虽然 Python 能干很多的事情, 咱们课堂时间有限, 在后面的课程中主要介绍这几部分内容:
Python 环境搭建
Python 基础语法
Python 代码案例
整体我们课程的定位, 是偏基础为主, 不依赖其他方面的背景知识
计算机基础概念
什么是计算机?
很多老一辈的人, 管下面这个叫做计算机. 然而,它只是 "计算器", 和计算机是有很大区别的。
现在我们所说的计算机,,不光能进行算术运算, 还能进行逻辑判断,数据存储,,网络通信等等功能,,以至于可以自动的完成非常复杂的工作,以下这些都可以称为 "计算机" 。
服务器,比如说用电脑访问B站:
本地的计算机给B站的服务器发送一个网络请求(谁,想看哪个视频)
B站的服务器收到这个请求后,就会找到对应的视频数据,通过网络再发送回用户本地计算机
总的来说,一台计算机,,主要由以下这几个重要的组件构成
CPU,是一个计算机的大脑,负责计算机的各种算术运算和逻辑判断
存储器 (内存, 硬盘等),内存就是我们日常生活中谈到的内存,外存指的可能是硬盘、U盘、光盘、软盘,这些都可以叫做外存。功能就是用来存储数据的。
输入设备 (键盘、鼠标、麦克风等)
输出设备 (显示器、音响、耳机、打印机等)
输入设备和输出设备都是负责和用户进行交互,输入设备就是用户要告诉计算机你要干啥,输出设备就是计算机向用户汇报工作完成到什么程度了。
PS: CPU 是目前人类科技的巅峰之作,科技含量能和 CPU 相提并论的,只有氢弹了。
CPU内部结构非常复杂,称得上人类当前科技的巅峰之作。
美国限制向中国出口 "芯片", 这里的芯片主要指的就是 CPU。目前国内虽然有自主研发 CPU 的能 力, 但是整体的水平, 相比于国际一线的 Intel、AMD、高通等厂商相比, 还是有一定的差距的。
PSS: 有的同学可能说,重要的硬件不是还有显卡嘛? 都老贵了!
内存 外存(硬盘等)区别:
1.内存的存储空间较小、外存的存储空间较大
2.内存的访问速度快、外存的访问速度慢(数量级相差几千倍、上万倍这样的水平)
3.内存比外存成本更高(存储同样的数据,内存比外存成本高)
4.内存上的数据容易丢失(断电,数据就没了),外存上的数据能够持久化存储(断电,数据也在),这里的持久化相对于内存来说,存的更长久,但不是说无期限的存储下去,一般机械硬盘存储数据的时间是几年到十几年这样的水平。
有的设备,既是输入设备、也是输出设备。比如说触摸屏、网卡。
其实显卡(GPU)是“专用计算芯片”是和 CPU 类似的计算芯片,CPU 是 "通用计算芯片", 可以处理各种场景下的各种问题。就像高校培养的学生,可以在各个行业各个领域贡献力量。
GPU 是 "专用计算芯片",特别擅长处理浮点数运算。就像比特培养的学生, 专注于互联网软件技术。
以上的计算机组成结构,称为 "冯诺依曼体系结构" 。冯诺依曼大佬,正是计算机的祖师爷。
PS: 冯诺依曼除了是计算机祖师爷之外,还是一位数学家、物理学家、化学家, "博弈论" 的创始人, 参与过曼哈顿计划(担任原子弹制造顾问)。
据传闻,冯诺依曼大佬六岁心算八位数除法, 八岁掌握微积分,十岁通读了世界史,十七岁发表了第一篇数学方面的论文。
PSS: 计算机的祖师爷, 除了冯诺依曼之外, 还有一位图灵大佬, 也在二战中发挥了至关重要的作用。
什么是编程?
计算机需要硬件赋予之躯体,也需要软件赋予之灵魂。
"软件" (或者叫做 程序),指挥了计算机要按照什么样的规则来执行任务。
制作软件,就是在明确这个软件要完成什么样的任务,这个过程就称为 "编程"。
软件不是凭空出现的,也是要被“开发”和“设计”出来的,这个软件制作的过程,就称为“软件开发”,或者也可以叫做“编程”。咱们所说的学编程就是学习如何开发、如何制作一个软件。编程的具体过程再细致点来说就是人告诉计算机接下来要干什么任务,这个过程就叫做编程。编程其实是一个比较严谨,也比较复杂的事情。
例如: 我的女神给我说,让我去买三个包子,如果遇到卖西瓜的就买一个。
这个交代任务的过程就是 "编程"。只不过执行这个程序的是我,不是计算机。
PS: 换个角度看,人脑也能算术运算,能逻辑判断,能数据存储,能输入输出..... 也可以视为是一个广义的计算机。
编程本身,并不是一件很容易的事情,因此就衍生出了一个专门负责编程的职业,也就是程序员。
程序员这个岗位香不香,看看相亲市场就知道。
程序员进行编程的过程中,需要使用一个专门的方式和计算机沟通,就是 "编程语言"。使用编程语言编写软件的具体过程,就称为 "软件开发",俗称 "敲代码"。
计算机是一个铁憨憨,不能直接理解人类的语言。像上面买包子的例子,其实这句话对于计算机的理解来说,是存在歧义的。
编程语言有哪些? 编程语言大体可以分成三个大类
机器语言
汇编语言
高级语言
其中机器语言和汇编语言都是更贴近计算机的,人类理解起来并不容易。
因此目前程序员使用的编程语言主要是高级语言。
高级语言的种类有很多很多,以下列出的都是实际开发中常用的编程语言。
可以看到, Python 在这个走势中是名列前茅的。
Python 背景知识
Python 是咋来的?
吉多·范罗苏姆(Guido van Rossum) 是一个荷兰程序员(人称龟叔, 名字前三个字母是 Gui)。
龟叔在 1989 年圣诞节的时候(当时 33 岁),因为在家里待着无聊,为了打发时间,开始了 Python 的开发。第一个正式版本发布于 1991 年。
1991 年是一个神奇的年份。
Python、万维网、Linux、Vim、Qt、第一台笔记本电脑,都诞生于 1991 年。
Python 都能干啥?
经历了多年的发展, Python 目前是一个应用场景非常广泛的编程语言。
科学计算&数据分析
Web 开发(搭建网站)
自动化运维
人工智能
爬虫程序
自动化测试
Python 的优缺点
优点:
语法言简意赅,容易上手。
功能强大,用途广泛。
生态丰富,具有海量的成熟第三方库。
方便调用 C/C++ 编写的代码进行高性能/系统级操作。
缺点:
执行效率比较弱。
对于多核心并发程序支持偏弱。
动态类型系统对于大型项目不太友好。
Python 的前景(钱景)咋样?
虽然 Python 的应用场景很多,但是纯粹使用 Python 的岗位是比较少见的。
以知名互联网招聘网站拉钩网为例,设置工作地点为北京,工作年限为3年以下。
搜索 Python 关键字得到的岗位个数为 88 个。
搜索 C 关键字得到的岗位个数为 159 个。
搜索 Java 关键字得到的岗位个数为 297 个。
上述数据只是简单采样, 并不能精确反应岗位的整体情况。
更常见到的情况是, 把 Python 作为一个辅助性质的语言。
在工作中,Python 更像是一个工具,需要用到的时候随手拿起来就用,能够方便的解决不少问题。
这就像一局王者荣耀,有人打的是 carry,有人打的是辅助。
PS: 网上很多信息把 Python 往往吹的天花乱坠,但是在我看来,是有些过火了。
Python 和其他的编程语言本质上并没有啥区别。并不存在某个场景是 "非得 Python 能做,其他语 言做不了" 这样的情况,编程语言只是工具,作为一个程序猿,要做到十八般兵器都能样样精通。
搭建 Python 环境(也就是在电脑上安装相关的软件)
要想能够进行 Python 开发,就需要搭建好 Python 的环境。
需要安装的环境主要是两个部分:
运行环境: Python
开发环境: PyCharm
安装 Python
(1) 找到官方网站
PS: 下载安装软件,最靠谱的方法就是去官网上下载。
(2) 找到下载页面
选择 "Download for Windows"
注意: Python 的版本在持续迭代更新中。同学们看到的版本不一定和我这里完全一致,但是基本不影响学习使用。
关于 Python 版本的补充
现在主流使用的 Python 版本是 Python 3 系列. 但是同学们以后在公司中, 接触到一些比较老的项 目, 可能还在使用 Python 2 .
3 系列 和 2 系列 之间的语法还是存在不小差别的。咱们课堂上学习的内容主要是依据 Python 3 系 列展开。
下载完成后,会得到一个 exe 的安装程序。
(3) 双击安装包
双击安装包,注意选下安装路径。
建议把这个选项勾上,这样在任意目录鼠标右键,就都可以直接用 PyCharm 打开目录了。
这个安装过程非常简单,一般只要不报错,就算安装成功。
(4) 运行 hello world
a) 创建一个项目
b) 选择项目所在的位置,并选择使用的 Python 解释器。
注意,一般情况下,PyCharm 能够自动识别出 Python 解释器的位置。但是如果没有自动识别出来,也没关系,点击右侧的 ... 选择之前安装的 Python 的路径位置即可。
c) 创建文件
右键左侧的项目目录,选择 New -> Python File
填写文件名
d) 编写代码
e) 运行程序
右键文件, 选择 "Run 'hello' "
(5) 进行基本设置
a) 设置字体大小
PyCharm 默认的字体比较小,看起来很费眼睛。可以设置大一点。
选择 File -> Settings
找到 Editor -> Font,把字体 Size 和 Line height 都适当调整。
Size 表示字体大小。数字越大文字越大,Line height 表示行高,数字越大则两行文字之间的间隔就越大。