【一】编程和编程语言是什么
【1】什么是编程
-
编程就是将人类语言转换为计算机能够识别的语言
【2】什么是编程语言
-
编程语言就是人与计算机之间的语言
【3】为什么要出现编程语言?
-
最根本的原因就是计算机无法识别人类语言
【4】为什么要编程?
-
编程就是为了让计算机能够理解人类所下达的指令,让计算机自动完成任务
【二】计算机组成原理
【1】什么是计算机
-
计算机就是通电的机器
-
能够批量处理人类指令和数据的智能设备
【2】为什么要发明计算机
-
为了可以代替人类24小时不间断工作
-
节省劳动成本和增加效益
【3】计算机的五大组成部分
(1)控制器
-
相当于人类的大脑,互相协调工作,完成指定任务
(2)运算器
-
相当于我们大脑进行的逻辑运算和数字运算的功能
-
逻辑运算包括与或非
-
数字运算包括加减乘除
-
(3)存储器
-
可分为长期存储和短期存储
[1]内存
-
和我们短期记忆一样是临时存储数据的
-
断电重启数据就会消失
[2]外存
-
硬盘
-
机械硬盘
-
可以存储大量数据,但是读取速度比较慢,并且价格很低
-
-
固态硬盘
-
可以存储大量的数据,但是读取速度很快,价格高
-
-
-
可以持久性的存储数据,并且断电不会消失
(4)输入设备
-
向电脑输入内容的设备
-
鼠标、键盘、麦克风
(5)输出设备
-
由电脑向我们展示的平台和设备
-
投影仪、显示器
(6)小结
-
CPU是人的大脑,复杂控制和运算
-
内存是人的记忆,复责临时存储
-
硬盘是人的笔记本,负责永久存储
-
输入设备是人的耳朵或眼睛,负责接收外部的信息存入内存
-
输出设备是人的脸部或者屁股,负责经过处理后输出结果
-
以上所有的设备都通过总线连接,总线相当于人的神经
【4】计算机的三大核心硬件
(1)CPU
-
控制器 + 运算器 = CPU
-
中央控制处理器
(2)内存
-
临时存储数据
-
虽然断电数据会消失,数据安全性低,但是读取速度极快
(3)硬盘
-
持久化存储数据的地方
-
虽然断电数据不消失,但数据安全性高,只要硬盘不损坏,就不会造成数据丢失,对比内存,读取速度慢
【5】程序的执行过程
-
数据准备
-
想用QQ,应该要下载QQ的应用程序
-
QQ的文件夹,你会看到很多的文件数据,这些数据就是QQ的启动程序
-
-
数据读取
-
从硬盘中将QQ的数据读取到内存中,进行临时存储
-
双击QQ的图标,出现QQ登录界面,这个操作就是数据从硬盘中读取到内存中的过程
-
-
数据写入
-
输入账号和密码,点击登陆
-
进入到QQ的过程就是CPU从内存中将数据读取出来进行调度和运算的过程
-
-
关闭QQ,CPU负责调度当前程序进行杀死,杀死过后要释放当前的内存资源
-
点击关闭QQ,它会慢慢的消失,这个时候CPU将QQ的数据保存到内存中,内存中的数据再写入到硬盘中,进行持久化存储
-
最后QQ完全退出
-
【三】操作系统的概念
【1】操作系统的由来
-
出现的目的就是为了简化我们的硬件操作
-
在最开始的时候,电脑还只是一堆硬件拼凑起来的
-
-
随着时代的发展,我们想要简化一系列操作指令,我们只能是找到这些指令的代替品
【2】操作系统
-
操作系统其实就是在一堆硬件的基础上实现功能和接口的封装,我们可以通过这些接口和程序进行硬件的调度
【3】开发一套操作系统
-
比如开发暴风影音
-
核心业务就是播放视频,输出音频
-
你在公司里,有这个需求,要完成这个需求,将这个功能开发一套
-
将视频文件数据从硬盘中读取出来放到内存中,再经过播放器进行转码
-
进行音视频输出
-
-
你的同桌在另一个公司,也需要开发这么一套功能
-
他需要从零开发
-
-
-
所有开发者遵循共同的一套规范
-
可以共同研发一个功能和接口
-
有一个锁,但是两人都有相同的钥匙副本
-
-
我们都遵循一个规范
-
核心业务就是播放视频,输出音频做出一个公共的
-
-
-
以后谁需要这个功能谁就来直接用
【4】常见的操作系统
(1)Windows平台
-
Windows7
-
Windowsxp
-
Windows8
-
Windows10
-
Windows11
(2)Mac平台
-
iOS系统
-
Intel
(3)Linux
-
centos
-
蓝鲸
(4)Andoraid
(5)iOS
(6)鸿蒙
【5】系统软件和操作软件的区别
(1)什么是系统软件
-
系统软件就是建立在硬件上的软件,负责调度整个硬件
-
wind、macOS、Linux
-
功能包括调度计算机服务、读取文件、进程管理...
(2)什么是操作软件
[1]系统软件
-
系统自带的服务,例如网卡服务、文件管理器
[2]应用软件
-
就是我们基于Windows系统之上按照的其他软件
-
QQ、微信、腾讯视频、QQ音乐...
【6】计算机系统的三层架构
-
底层就是硬件层
-
所有的操作都是基于硬件的
-
-
中间层就是操作系统层
-
所有硬件调度服务都是基于操作系统的
-
-
最上面是应用层
-
进行工作和开发的软件层
-
【7】平台的概念
-
平台 = 你的操作系统 + 你的硬件
-
Linux平台
-
用在服务器上
-
只需要一个CPU + 显卡 + 内存 + 硬盘
-
-
Windows平台
-
Windows系统 + CPU +...
-
-
MacOS平台
-
macOS + Mac相关硬件
-
-
【四】为什么要学习Python
-
跨平台性非常高,学习成本低
-
Windows上也能用、Linux上也能用
-
不需要电脑配置高
-
-
Java就需要Java虚拟机
【五】编程语言
【1】编程语言的分类
-
编程语言的发展史,在最开始的编程绝不是现在所学的Python
【2】机器语言
(1)什么是机器语言
-
机器语言就是计算机可以理解的语言
-
由于计算机基于点工作,点又分为高低电频,0为低,1为高
-
我们可以控制高低电频的变化组成一系列的指令去操作我们的系统硬件
-
机器语言因为他能直接操作计算机硬件,所以他是最低级的计算机语言
(2)机器指令
-
控制高低电频的变化组成一系列的指令就叫机器指令,能控制电脑硬件
(3)如何写机器指令
-
首先必须记住计算机的全部指令及核心代码的含义
-
在编写机器指令程序的时候需要自己处理每一条数据,以及数据随时可能会发生的意外,非常的繁琐且耗费精力
(4)机器语言的优缺点
-
优点
-
执行效率高
-
可以直接操作计算机底层硬件
-
-
-
缺点
-
开发效率低
-
学习成本高,开发效率慢
-
-
跨平台性很差
-
更换系统硬件就会导致机器指令失效
底层单位数据的换算 # 00000001 表示1字节,有256中排列方式,从0到255 #八个字节表示一个 bytes # 8字节 = 1bytes # 1024 bytes = 1 KB # 1024 KB = 1 MB # 1024 MB = 1 GB # 1024 GB = 1 TB
-
-
【3】汇编语言
-
汇编语言仍然可以直接操作底层硬件,但是美国人可以用一个字母或者一串字母来声明这串机器指令代表的含义
-
但是对比与机器语言来说,汇编语言就是一种进步,一定程度上降低了开发成本
(1)什么是汇编语言
-
汇编语言其实就是用一个英文字母或者一串单词来代表机器语言
(2)汇编语言示例
; hello.asm section .data ; 数据段声明 msg db "Hello, world!", 0xA ; 要输出的字符串 len equ $ - msg ; 字串长度 section .text ; 代码段声明 global _start ; 指定入口函数 _start: ; 在屏幕上显示一个字符串 mov edx, len ; 参数三:字符串长度 mov ecx, msg ; 参数二:要显示的字符串 mov ebx, 1 ; 参数一:文件描述符(stdout) mov eax, 4 ; 系统调用号(sys_write) int 0x80 ; 调用内核功能 ; 退出程序 mov ebx, 0 ; 参数一:退出代码 mov eax, 1 ; 系统调用号(sys_exit) int 0x80 ; 调用内核功能
(3)汇编语言的优缺点
-
优点
-
执行效率高
-
直接操作计算机底层硬件
-
-
操作灵活
-
简化了一些机器指令可以让我们快速实现代码编程
-
-
可执行文件很小
-
-
缺点
-
开发效率低
-
仍然需要记住很多指令集
-
-
复杂度很高
-
一串代码可能会用到很多指令集
-
-
跨平台性很差
-
直接操作计算机底层硬件
-
-
【4】高级语言
(1)什么是高级语言
-
高级语言从人类的角度出发,用人的思维将人类的语言转换为计算机可以识别的语言
-
可以通过人类的指令实现操作计算机等硬件
-
不需要考虑底层硬件,直接操作系统
-
高级语言更贴近人类
-
(2)高级语言的分类
-
按照编译方式分为两类
-
编译型语言
-
解释型语言
-
(3)编译型语言
[1]什么是编译型语言
-
编译型语言就是将源代码一次性翻译成目标代码,然后生成一个可执行文件
-
下次执行只需执行翻译后的文件
-
-
如果觉得代码需要修改和完善,修改代码以后就需要重新编译
[2]优缺点
-
优点
-
一次编译处处执行,只要编译一次,以后可以直接用,效率高
-
-
缺点
-
修改后需要重新编译
-
跨平台性很差
-
[3]编译型语言的代表
-
C、C++、Java
(4)解释型语言
[1]什么是解释型语言
-
解释型语言就是在执行代码的过程中,不是一次性编译而是用到哪就编译到哪
[2]解释型语言的优缺点
-
优点
-
不需要改动后再编译,开发效率提高了
-
跨平台性很强
-
-
缺点
-
执行效率变慢了
-
[3]编译语言代表
-
GO、Python
【5】各种开发语言对比
(1)执行效率
-
机器语言
-
汇编语言
-
高级语言
-
编译型
-
解释型
-
(2)开发效率
-
高级语言
-
编译型
-
解释型
-
-
汇编语言
-
机器语言
(3)跨平台型
-
高级语言
-
编译型
-
解释型
-
-
汇编语言
-
机器语言
【六】Python语言介绍
【1】创始人
-
吉多·范罗苏姆(Guido van Rossum)
【2】名字的由来
-
Python这个名字,来自Guido所挚爱的电视剧《Monty Python’s Flying Circus》,他希望这个新的叫做Python的语言,能符合他的理想:
-
创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能。
【3】全球语言排行榜
【4】Python语言的应用领域
-
人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。
-
图像处理比如人脸识别
-
数据分析
【补充】Python全栈开发可从事方向 - Chimengmeng - 博客园 (cnblogs.com)
【5】国内大厂都在用
-
目前业内几乎所有大中型互联网企业都在使用Python
-
Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
-
【6】Python解释器的发展史
-
1989年,Guido开始写Python语言的编译器
-
1991年,第一个Python编译器诞生
-
他是用C语言实现的,并能够调用C语言的库文件
-
从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统
-
-
Python 2.7 - July 3, 2010
-
Python 3.6 - 2016-12-23 发布python3.6.0版
-
目前使用Python3.10版本,使用最新版本的解释器可能会存在不稳定的bug
【7】Python的解释器的种类
(1)Cpython解释器
-
基于C语言开发的解释器版本
-
我们学习使用的解释器就是基于C语言开发出来的CPython解释器
-
底层源码都是C语言,如果从Python代码看源码看不到C代码
(2)jpython
-
基于Java写的Python解释器,没人用
(3)ipython
-
可以进行交互的解释器版本呢
【七】Python解释器安装(Windows)
【1】访问Python官网
【2】选择Windows系统
【3】搜索指定版本
-
Windows系统
-
Ctrl + f
-
-
macOS
-
command + f
-
【4】安装解释器
(1)双击安装程序
(2)自定义安装位置(不要放在C盘)
【八】多版本解释器共存
【1】方法1
(1)查看电脑环境变量
(2)用户变量
-
查看用户变量,如果有Python就删除
(3)系统变量
-
需要使用哪一个版本的Python解释器就将哪一个的环境变量上移并保存
-
这种方法虽然可行,但是很麻烦
【2】方法2
-
将原本的Python解释器快捷方式复制一份成副本
-
修改副本的名称,改成指定版本的解释器
-
系统环境变量谁在上面,就会先触发谁
【九】书写Python代码
【1】直接在命令行书写代码
-
win + r,输入cmd调出终端,输入Python进入解释器环境
-
直接输入代码
-
在终端输入代码,无法美化代码样式看起来很复杂且终端关闭代码消失,只是临时的(不推荐使用,用于测试)
-
【2】借助文件
-
在桌面上创建一个TXT文件
-
书写Python代码
-
将文件后缀拓展名改成py
-
执行Python代码需要在终端输入Python + py文件路径
【3】使用编辑器
-
pycharm、vscode
【4】Python代码执行顺序及流程
-
读取应用程序并执行的流程
-
写了一个带有python代码的文件保存到硬盘
-
首先要将文件里的内容读取到内存中
-
CPU需要将数据从内存读取到CPU,CPU去调度执行
-
在这个过程中需要用到Python解释器
-
去找Python解释器
-
找到了解释器
-
-
调用解释器执行代码
【十】安装pycharm
【1】访问官网
【2】下载
【3】安装
-
安装时不要装在C盘
-
全选/选jetbrains
-
因为需要付费,需要部分科技,建议支持正版,需要的话私聊