计算机基础及Python准备

【一】编程和编程语言

【1】什么是编程

编程是指将人类语言翻译成计算机能够识别的语言。

【2】什么是编程语言

编程语言是人与计算机之间交流的媒介。

【3】为什么出现编程语言

为了让人类能够与计算机有效沟通并控制计算机进行工作。

【4】为什么做编程

让计算机按照人类意愿完成工作,提高工作效率。

【二】计算机组成原理

【1】什么是计算机

能够智能批量处理人类的指令和数据的通电机器。

【2】为什么发明计算机

为了节省劳动成本和增加效益

计算机能够执行重复性高、繁琐的任务,解放人类的思维和创造力。

【3】计算机的五大组成部分

(1)控制器

相当于人类大脑,相互协调工作,完成任务。

(2)运算器

相当于大脑进行的逻辑运算和数字运算功能。

  • ​ 逻辑运算:根据某个条件是否成立,决定是否要做事情
  • ​ 算术运算:数字之间的运算,例如 + - * /

(3)存储器

相当于人类大脑中的海马体,存储记忆。

  • ​ 短期记忆:内存 临时存储记忆 断电重启数据消失

  • ​ 长期记忆:断电数据不会消失

    • 固态硬盘:存储数据量大,数据读取速度非常快,价格高昂
    • 机械硬盘:存储数据量大,数据读取速度比较慢,价格低

(4)输入设备

输入设备用于将外部信息输入到计算机,让计算机能够处理。

例如鼠标、键盘、麦克风。

(5)输出设备

输出设备将计算机处理后的结果呈现给用户或其他设备。

例如屏幕、打印机。

【4】计算机的三大核心硬件

(1)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平台

  • Window7
  • Windowxp
  • Window 8
  • Window 10
  • Window 11

(2)Mac平台

  • IOS系统
  • intel

(3)Linux平台

  • centos
  • 蓝鲸
  • ...

(4)Andoraid

(5)IOS

(6)鸿蒙

【5】系统软件和操作软件的区别

(1)什么是系统软件

  • 建立在硬件之上的软件,负责调度整个硬件
  • Windows、macOS、Linux
  • 其主要功能包括硬件管理、文件系统、进程管理、内存管理、设备驱动程序、用户界面等。

(2)什么是操作软件

【1】系统软件

  • 系统自带的服务 网卡服务、文件管理器。

【2】应用软件

  • 就是我们基于Windows系统上安装的其他软件
  • QQ、微信等

【6】计算机系统的三层架构

(1)应用层

  • 应用层是计算机系统的最上层

  • 进行工作开发的软件层

(2)操作系统层

  • 操作系统层是计算机系统的中间层

  • 硬件调度服务都基于操作系统层

(3)硬件层

  • 硬件层是计算机系统的最底层
  • 所有操作都基于硬件

【7】平台

  • 平台就是你的操作系统 + 你的硬件

  • Linux平台

    • 用在服务器上
    • 只需要一个 CPU+显卡+内存+硬盘
  • Window平台

    • Window系统 + CPU + ...
  • MacOS平台

    • macOS + Mac相关硬件

【四】为什么要学习Python

  • 跨平台性非常高,学习成本很低

    • 即使电脑配置很低
    • 可以装Linux系统写代码
      • 不建议尝试
  • Window上能用、Linux上也能用 等等

  • java需要java虚拟机

【五】编程语言

【1】机器语言

(1)什么是机器语言

  • 机器语言就是计算机可以理解的语言,是直接操作硬件的语言。

  • 计算机基于电工作,电有高低电频之分,即高电频与低电频(0和1)

  • 我们可以通过控制高低电频变化组成一系列指令来操作系统硬件

  • 机器语言直接操作系统硬件,是最低级的语言,只有计算机看得懂

(2)机器指令

  • 控制高低电频的变化组成一系列的指令就叫做机器指令,可以控制电脑硬件

(3)如何写机器指令

  • 首先需要记住计算机的全部指令及核心代码的含义
  • 编写机器指令程序时需自己处理每条数据,以及数据随时可可能会发生的意外情况(繁琐且耗费经历)
  • 一般发生在源头厂家中,源头厂家调控硬件内部设备的时候会用得到

(4)机器语言的示例

  • 机器语言及其繁琐且难以记忆
'''指令部份的示例'''
 0000 代表 加载(LOAD)
 0001 代表 存储(STORE)
 ...
 
LOAD 0000  # 加载寄存器A
STORE 0001 # 存储到寄存器B

'''暂存器部份的示例'''
0000 代表暂存器 A 
0001 代表暂存器 B 
...

'''存储器部份的示例'''
000000000000 代表地址为 0 的存储器
000000000001 代表地址为 1 的存储器 
000000010000 代表地址为 16 的存储器
100000000000 代表地址为 2^11 的存储器

(5)机器语言的优缺点

  • 优点
    • 执行效率高
      • 可以直接操作计算机的底层硬件
  • 缺点
    • 开发效率低
      • 学习成本高,开发效率慢
    • 跨平台性很差
      • 所以更换系统硬件就会导致机器指令失效
    • 理解原码、反码、补码、位运算( & | )
xxxxxxxxxx 底层单位数据的换算​
# 00000001 表示1字节,有256种排列方式,从0到255。​
# 八个字节表示一个 bytes
# 8 字节 = 1 bytes
# 1024 bytes = 1 kB
# 1024 kb = 1 MB 
# 1024 mb = 1GB
# 1024 GB = 1 TB
# 1024 TB = 1 ZB

【2】汇编语言

  • 汇编语言也可直接操作底层硬件,但是可以用一个字母或一串单词来声明这串机器指令代表的含义
  • 对比机器语言来说,汇编语言一定程度上降低了开发成本,是一种进步

(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)汇编语言的优缺点

  • 优点
    • 执行效率高
      • 直接操作计算机底层硬件
    • 操作灵活
      • 简化了一些机器指令可以让我们快速实现代码编程
    • 可执行文件很小
  • 缺点
    • 开发效率低
      • 仍然需要记住很多指令集
    • 复杂度很高
      • 一串代码可能会用到很多指令集
    • 跨平台性很差
      • 直接操作计算机底层硬件

【3】高级语言

(1)什么是高级语言

  • 从人类角度出发,将人的语言转换为计算机可以识别的语言

    • 可以通过人类的指令实现操作计算机的硬件
  • 不需要考虑底层硬件,而是直接操作系统

  • 更贴近于人类

(2)高级语言分类

  • 按照编译方式分为:
    • 编译型语言
    • 解释型语言

(3)编译型语言

【1】什么是编译型语言

  • 编译型语言就是将源代码一次性翻译成目标代码,然后生成一个可执行文件

    • 下次直接执行翻译过后的文件即可
  • 若代码需要修改和完善,修改完后需要重新编译

【2】优缺点

  • 优点:

    • 一次编译处处执行,只需编译一次,下次可以直接用,效率高
  • 缺点:

    • 修改后需重新编译
    • 跨平台性很差
      • Windows上编译出的文件只兼容Windows系统

【3】编译型语言的代表

  • C、C++、C#、Java

(2)解释型语言

【1】什么是解释型语言

  • 解释型语言就是在执行代码的过程中,不是一次编译而是由解释器逐句编译。
  • 修改源代码后,不需要重新编译整个程序,直接执行即可。
  • 执行效率较低,但开发效率高,且具有较强的跨平台性。

【2】优缺点

  • 优点:

    • 不需要改动后再进行编译,开发效率高
    • 跨平台性很强
  • 缺点:

    • 执行效率变低

【3】解释型语言的代表

  • GO、Python

【4】各种开发语言对比

(1)执行效率(从高到低)

  • 机器语言
  • 汇编语言
  • 高级语言
    • 编译型语言
    • 解释型语言

(2)开发效率(从高到低)

  • 高级语言
    • 解释型语言
    • 编译型语言
  • 汇编语言
  • 机器语言

(3)跨平台性(从高到低)

  • 高级语言
    • 解释型语言
    • 编译型语言
  • 汇编语言
  • 机器语言

【六】Python语言介绍

【1】创始人

  • 吉多·范罗苏姆(Guido van Rossum)。

【2】名字的由来

  • Python这个名字,来自Guido所挚爱的电视剧《Monty Python’s Flying Circus》,他希望这个新的叫做Python的语言,能符合他的理想:
  • 创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能

【3】全球语言排行榜

![屏幕截图 2024-03-27 163224](C:\Users\jy255\Pictures\Screenshots\屏幕截图 2024-03-27 163224.png)

【4】Python语言的应用领域

  • 人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。
  • 图像处理比如人脸识别
  • 数据分析

【5】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代码

  • 从Python解释器的官网 GitHub可以看到源码

(2)jpython

  • 基于Java写的Python解释器,没人用

(3)ipython

  • 可以进行交互的解释器版本

【七】Python解释器安装(Windows)

【1】访问Python官网

【2】选择Windows系统

![屏幕截图 2024-03-27 165116](C:\Users\jy255\Pictures\Screenshots\屏幕截图 2024-03-27 165116.png)

【3】搜索指定版本

  • Window系统
    • ctrl + f
  • Macos
    • command + f

![屏幕截图 2024-03-27 165343](C:\Users\jy255\Pictures\Screenshots\屏幕截图 2024-03-27 165343.png)

分别为64位及32位下载

【4】安装解释器

  • 点击安装程序安装

  • 自定义安装位置

  • Optional Feature 全勾上

  • 安装成功

【八】Python解释器安装(Mac)

【1】打开官网

Python Releases for macOS | Python.org

【2】双击安装程序

  • .pkg结尾的安装包

    【九】多版本解释器共存

【1】原因

  • 电脑系统中存在多个版本的Python解释器
  • 例如Python3.10 和 Python3.8

【2】查看电脑的环境变量

![系统属性 2024_3_27 17_04_18](C:\Users\jy255\Videos\Captures\系统属性 2024_3_27 17_04_18.png)

【3】系统变量

![系统属性 2024_3_27 17_06_50](C:\Users\jy255\Videos\Captures\系统属性 2024_3_27 17_06_50.png)

【4】Python解释器环境变量

  • 点击进入系统变量中的Path
  • 将Python38解释器版本环境变量上移并保存

![系统属性 2024_3_27 17_05_40](C:\Users\jy255\Videos\Captures\系统属性 2024_3_27 17_05_40.png)

每次需要用到其他版本的时候需修改环境变量

【5】修改解释器

  • 将原本的Python解释器快捷方式复制一份成副本

  • 修改副本的名称编程指定版本的解释器即可

  • 系统环境变量中谁在上面 则敲 python 就会先触发谁

【十】书写Python代码

【1】直接在命令行书写代码

  • CMD调出命令行窗口,进入到终端 敲 python 进入到解释器环境
  • 直接书写代码

如果在终端书写大量的Python代码,不能美化代码样式并且书写起来很费劲,临时的

【2】借助文件

  • 桌面上新建一个 txt文档
  • 书写Python代码
  • 将文件名命名为 以 .py 结尾的文件

修改的是文件的扩展名而不是文件名

  • 执行Python代码需要再终端输入 python + py文件路径即可完成调用

【3】方案

  • 我们向美化界面并且能持续的书写Python代码
  • 需要借助第三方工具
    • sublit 、 pycharm 、 vscode ...
  • 我们用pycharm

【4】Python代码执行的顺序及流程

  • 读取应用程序并执行的流程

  • 写一个带有Python代码的文件保存到了硬盘上

  • 首先要将文件里的内容读取到内存中

  • CPU需要将数据从内存读取到CPU,CPU去调度执行

    • 需要用到Python解释器
    • 去找Python解释器
    • 找到安装的解释器 python.exe
  • 调度解释器去执行代码

【十一】安装pycharm

【1】访问官网

![屏幕截图 2024-03-27 171444](C:\Users\jy255\Pictures\Screenshots\屏幕截图 2024-03-27 171444.png)

【2】点击下载

![屏幕截图 2024-03-27 171523](C:\Users\jy255\Pictures\Screenshots\屏幕截图 2024-03-27 171523.png)

【3】安装

(1)双击安装程序

(2)选择安装位置

  • 不要安装在C盘

(3)全选/选jetbrains

(4)安装成功

(5)进入并使用

【十二】pycharm操作

【1】添加解释器环境

![屏幕截图 2024-03-27 171914](C:\Users\jy255\Pictures\Screenshots\屏幕截图 2024-03-27 171914.png)

【2】添加解释器方式二

image-20240327172012835

posted @   随机昵称yi  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示