一、初步了解
语言:c语言(更适于硬件)、Java、python、PHP(没落了)、前端
环境变量:操作系统 快速打开你的软件 电脑才能看懂的快捷方式
1.1 文件路径
- 绝对路径:详细地址 从盘符开始
.
./
当前路径下 同一级的目录
- 相对路径:有参照物
../
上一级的目录
1.2 安装开发工具
-
安装python
python版本选择 3.6及以上即可(本人3.8.8)
测试:win+r -> cmd -> python -V -
安装pycharm
PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
二、编程语言 python
2.1 什么是编程语言
总结:编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的目的。
2.2 计算机五大组成部分:
控制器、运算器、输入设备、输出设备、存储器
2.2.1 控制器
控制器是计算机的指挥系统,用来控制计算机其他组件的运行,相当于人类的中枢神经
2.2.2 运算器
运算器是计算机的运算功能,用来做算术运算和逻辑运算,相当于人脑
控制器 + 运算器 = CPU中央处理器,cpu相当于人的大脑
2.2.3 存储器
存储器是计算机的记忆功能,用来存取数据
存储器主要分为内存与外存:
- 内存(基于电工作):存取数据都快,断电数据丢失,只能临时存取数据
- 外存(硬盘,基于磁工作):存取速度都慢,断电数据也不丢,可以永久保存数据
内存的存取速度要远远高于外存
内存 ==>人类的大脑的记忆功能
外存 ==>人的笔记本
数据真的要用,一定是先从硬盘放到内存中来,内存交给CPU
运行程序:硬盘外存 —> 内存 —> CPU
形象解析:给女友买奶茶 —> 先看笔记本 —> 再大脑中的记忆 —> 大脑 <判断>指挥
2.2.4 输入设备input
输入设备是计算机接收外界输入数据的工具,如键盘、鼠标,相当于人的眼睛或耳朵
2.2.5 输出设备output
输出设备是计算机向外输出数据的工具,如显示器、打印机,相当于人说的话,写出的文章。
存储器 如内存、磁盘等既是输入设备又是输出设备,统称为IO设备
一个非常重要的基础知识:与运行程序相关的三大核心硬件
我们编写的程序一定是要运行于计算机硬件之上,而站在硬件的角度,与运行程序有关的三大核心硬件为 CPU、内存、硬盘。
程序最先是存放于硬盘中的,程序的运行是先从硬盘把代码加载到内存中,然后cpu是从内存中读取指令运行。
三、操作系统概述
3.1 操作系统的由来
操作系统是一个协调,管理,控制计算机硬件资源和应用软件资源的一个控制程序。
作用:
- 控制计算机硬件的基本运行;
- 把使用硬件的复杂操作封装成简单的功能,提供接口、方法、技巧,给上层的应用程序使用。
【例】:文件就是操作系统提供给应用程序/用户操作硬盘的一种功能。
📌 tips:文件扩展名也称为文件的后缀名,是操作系统用来标记文件类型的一种机制。让系统快速识别文件类型,然后交给相应的应用程序处理。扩展名几乎是每个文件必不可少的一部分。如果一个文件没有扩展名,那么操作系统就无法处理这个文件,无法判别到底如何处理该文件。
(Linux系统则没有文件后缀名这个概念,Linux不像Windows是依据后缀名调用相应程序的。但是实际操作中考虑到跨平台的问题,所以学习一些常用的后缀在Linux中进行规范命名是很有必要的。)
3.2 系统软件与应用软件
计算机硬件是死的,计算机硬件的运行都受软件控制,所以说,软件相当于计算机的灵魂,具体来说软件分为两种:
- 应用软件:应用程序相关逻辑(我们学习python就是为了开发应用软件的)
- 系统软件:控制底层硬件的
3.3 计算机系统三层结构
我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层,如下:
一个非常重要的基础概念:平台
应用程序都是运行于操作系统之上,而操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台,即:硬件 + 操作系统 = 平台
常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等,
我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的 关键因素 往往是编程语言的选择,python恰好是一款跨平台性语言,这也是我们学习它的原因之一。
四、计算机基本原理
4.1 低级语言
- 机器语言:0,1 二进制语言;
特点:① 执行效率最高;② 开发效率低下;③ 跨平台性差。 - 汇编语言:还存在,对性能要求很高;
特点:① 开发效率高一点;② 执行效率低一点;③ 跨平台性差。
4.2 高级语言
真正学习难度开始降低,开发效率提高了
-
编译型: c、c++、golang、java
特点:① 执行效率高一点;② 开发效率低;③ 跨平台性相对差。 -
解释型:python
特点:① 开发效率高;② 执行效率低;③ 跨平台性最好。python的代码 --> python解释器 -----> 机器能理解的命令
python的性能好不好 -----> python解释器 (cPython、jPython …) -----> 可由C、Java、python 或 汇编语言等编写的一个软件 -----> 可以用来将python的代码解释
4.3 总结(性能)
开发效率:对人来说的(时间 精力 代码量);执行效率 :对机器来说的
- 执行效率:机器语言 > 汇编语言 > 高级语言(编译型 > 解释型)
- 开发效率:机器语言 < 汇编语言 < 高级语言(编译型 < 解释型)
- 跨平台性:解释型具有极强的跨平台型性
五、python介绍
5.1 何为python
- 语法风格 :代表python这门语言的 风格
- python解释器:代表专门用来解释该语言风格的应用程序
5.2 python解释器和python语言的关系
- Python解释器是一款应用程序,专门用来解释python这门语言风格并执行的
- python语言编写的程序最终都是被解释器执行的
所以我们可以这么说python语言更多的都是在调用python解释器的功能,所以解释器性能的高低很大程度决定了我们用python写出来的程序执行效率的高低
5.3 运行python程序
5.3.1 两种运行方式
方式一:交互式模式 不能保存程序
cmd ----> python 及时得到程序结果,多用于调试(辅助作用)
方式二:脚本文件(文件式) 永久保存程序
1)新建文件.py ----> 文件中写入程序:把程序写到文件里(约定俗称文件后缀名为.py),然后用Python解释器解释执行其中的内容。
2)cmd ----> python 文件路径:python python脚本的路径.文件内容才是关键要符合语法,文件后缀名不是关键,是txt也行啊,但为了规范还是py
总结:
- 交互式模式下可以即时得到代码执行结果,调试程序十分方便
- 若想将代码永久保存下来,则必须将代码写入文件中
- 我们以后主要就是在代码写入文件中,偶尔需要打开交互式模式调试某段代码、验证结果
📌 小拓展:
问1:python的后缀名是什么? 答:py
问2:后缀名用来干嘛的?可以没有吗?
答:后缀名 方便操作系统知道这是什么文件 ---> 应该用什么软件去执行它;后缀名可以没有,Windows 必须有,Linux可没有。
问3:python后缀名可以不叫py吗?
答:可以。因为文件内容不变,符合python语法,脚本文件打开已经确定用python执行及其文件路径,其后缀名不是关键。
5.3.2 python程序运行的三个步骤
假设:python C:\a\b.py 执行Python程序经历的三个步骤:
1.先启动Python解释器
2.解释器会发送系统调用,把b.py的内容从硬盘读入内存,此时c.py中的内容全部为普通字符,没有任何语法意义
3.解释器开始解释执行刚刚读入内存的c.py的代码,开始识别python的语法
对比:文本编辑器读取 C:\a\b.txt文件内容也经历了三个步骤:
1.先启动文本编辑器
2.文本编辑器会发送系统调用,把b.py的内容从硬盘读入内存
3.文本编辑器会将刚刚读入内存的内容控制输出到屏幕上,让用户看到结果
python 文件路径 ==> 执行这些代码
pycharm 打开一份文件 ==> 看到python的代码
一份python的文件 python 文件的路径
1.启动 python解释器 这个软件
2.从外存上读取python的文件,读到内存中来
3.使用python解释器这个软件去执行python的文件 ==> 执行
一份python的文件 python 文件的路径
1.启动 pycharm 这个软件
2.从外存上读取python的文件,读到内存中来
3.将内存中读到的python代码 展示在屏幕上
⭐⭐敲重点:程序的运行 顺序 :外存 ==> 内存 ==> cpu
总结:二者在前两个阶段做的事情完全一致。唯一不同的就是第三阶段对读入内存的python代码的处理方式不同
注意:pycharm不是python程序运行的方式,两者没有关系。