学Python前必备知识


首先我们知道Python是门编程语言,编写的是程序,那这程序在计算机中起到了什么作用,这就需要我们首先了解下计算机;第二,我们的程序为什么要用Python来写?有什么替代方案吗?这就需要我们了解程序语言的发展历史,以及各个编程语言的优缺点;

一:计算机基础知识

计算机组成原理

计算机组成原理是讲计算机是由什么组成,并且怎么运行起来的;研究计算机由什么组成,相对应的就是计算机硬件部分;怎么运行起来的,相对应的是计算机的软件部分,以及硬件如何与软件相互配合工作;专业话语是:它涵盖了计算机系统的各个方面,包括计算机的功能、组件、数据表示、指令集体系结构、处理器设计、存储器层次结构、输入输出系统、总线结构、操作系统以及计算机网络等。

冯·诺依曼体系结构

计算机系统是如何运行的,软件与硬件是如何配合运行的,这个计算机设计模式就是冯·诺依曼体系结构;自从1940年这个理论提出来,直到现在,计算机一直是使用的这个理论,它的核心思想是将程序和数据存储在同一个存储器中(内存),并通过控制单元执行指令(cpu)。‌

基本组成

冯·诺依曼体系结构主要由以下几个部分组成:
1. 中央处理器(CPU):CPU是计算机的核心部件,负责执行指令和处理数据。它包括控制单元和算术逻辑单元(ALU)控制单元负责指令的解码和控制ALU负责执行算术和逻辑操作
2. 存储器:存储器用于存储数据和指令。计算机中的存储器按层次结构包括寄存器、、主存(内存)和辅助存储器寄存器是最快速但容量最小的存储器,用于存储处理器中的数据和指令主存是计算机的主要存储器,用于存储程序和数据。辅助存储器(如硬盘、固态硬盘)用于长期存储大量的数据。
3. 输入输出设备:输入输出设备用于与计算机进行交互和数据的输入输出。常见的输入设备包括键盘、鼠标、扫描仪等,输出设备包括显示器、打印机、音频设备等。输入输出设备通过接口和控制器与计算机连接。
4. **总线:总线是计算机中各个组件之间进行数据传输的通道。它包括数据总线、地址总线和控制总线。**数据总线用于传输数据,地址总线用于指定数据的存储位置,控制总线用于传输控制信号。
在这里插入图片描述

工作原理

冯·诺依曼体系结构的工作原理基于“存储程序计算机”的概念,即指令和数据存储在同一内存中。CPU从存储器取出指令和数据,进行相应的计算。其主要特点包括:

  • 单处理机结构‌:以运算器为中心。
  • 采用二进制表示‌:数据以二进制形式存储。
  • 指令顺序执行‌:程序按照预先定义的顺序执行。
  • 软硬件分离‌:软件和硬件完全分离。

总结:

  • 我们的程序是以二级制形式存储在内存中,我们传递给计算机的信息流只能是二进制
  • CPU从内存中取出指令和数据来运行
  • *存储器按照运行速度:寄存器(容量最小,存储CPU中的指令数据)>内存(主要存储器,用于存储程序和数据)>外部存储(存储长期数据)

二: 编程语言

什么是编程语言

编程语言是一种用于编写计算机程序的形式化语言。比如我们现在正在学习的Pyton,它是一种人与计算机之间进行交流的工具,用于描述和指示计算机执行特定任务或完成特定操作的步骤和逻辑

分类:机器语言、汇编语言和高级语言

编程语言根据其抽象层级和与硬件的交互方式可分为机器语言、汇编语言和高级语言三大类。

  1. 机器语言

    1. 也就是机器指令(1930-1960s);
    2. 计算机本质上就是是一台只懂得执行简单指令的机器。而执行的指令也就是我们说的机器指令,其实背后对应的就是一个个电路运算,例如算术运算、逻辑运算、存储等等。
    3. 指令的执行本质就是由CPU来触发****这些对应的电路执行从而完成特定的功能在这里插入图片描述
  2. 汇编语言(1947 )

    1. 机器语言对人类来说非常晦涩和难以理解。这使得编写和理解机器语言程序非常困难和容易出错。为了让人类能够更方便地编写和理解计算机程序,汇编语言应运而生
    2. 汇编语言本质就是指令符号化。因为计算机只能识别二进制,所以需要使用汇编器指令转换为二进制;
      在这里插入图片描述
  3. 高级语言(1972 )

    1. 尽管汇编语言比机器语言更容易理解,但仍然需要编写大量的指令来完成复杂的任务,包括各种底层硬件的直接操作。这对于开发人员来说是一项繁琐和容易出错的工作。为了进一步提高编程效率和可读性,高级语言应运而生。
    2. 高级语言是一种更加抽象和易用的编程语言,如C,Java、Python等。它们提供了更高级别的抽象,包括更丰富的数据类型、复杂的数据结构、函数、类、库等。使用高级语言,开发人员可以用更简洁、易读的方式表达程序的逻辑和算法,而不需要关注底层的机器细节
    3. 随着计算机硬件的发展,高级语言的应用越来越广泛,例如 C、C++、Java、Python、JavaScript 等。
    4. 高级语言的核心是语句封装了指令
    5. 需要使用编译器或者解释器把高级语言编译为二进制文件;
    6. 总之,高级语言的出现使得编程变得更加高效、易读和易维护。它们提供了更强大、更友好的工具和库,使开发人员能够更快速地构建复杂的应用程序,并推动了软件开发的快速发展。
    7. 高级语言可分为编译型语言与解释型语言
      1. 编译型语言(C、C++和Pascal等)
        1. 编译型语言的代码在执行之前需要经过编译器的处理。编译器将源代码作为输入,通过多个阶段的处理生成机器码(目标代码),然后将目标代码链接为可执行文件。这个可执行文件可以直接在计算机上执行。编译型语言的典型代表是C、C++和Pascal等
        2. 特点:
          1. 编译过程在代码执行之前进行,只需要进行一次编译
          2. 编译后的代码执行效率高,因为它是直接由计算机硬件执行的机器码
          3. 可执行文件独立于源代码,可以在不同的计算机上执行,前提是目标机器上有相应的编译器和运行时支持。
          4. 编译型语言对代码的静态类型检查较为严格,需要在编译时确定变量的类型和错误检查
      2. 解释型语言(Python、JavaScript和Ruby等)
        1. 解释型语言的代码在**执行时逐行被解释器解释执行,不需要显式的编译过程。**解释器将源代码逐行解释翻译成机器码或虚拟机指令,并实时执行。解释型语言的典型代表是Python、JavaScript和Ruby等。
        2. 特点:
          1. 不需要显式的编译过程,代码可以直接执行。
          2. 每次执行都需要解释器逐行解释代码,因此执行效率相对较低
          3. 源代码可以跨平台执行,只需要针对不同平台提供相应的解释器。
          4. 解释型语言通常具有动态类型检查的特性,变量的类型在运行时确定。
  4. 在这里插入图片描述

主流编程语言对比

  1. 开发效率与运行效率不可兼得
  2. C语言是离硬件最近的高级语言,是面向过程开发,运行效率最高,开发难度最高;C语言的应用场景:服务器开发、嵌入式、操作系统;
  3. C++是在c的基础上增加了面向对象,本质还是C;C++ 最大的应用场景:游戏; 仅次于java,在企业里面的第二大应用,
  4. SHELL不是编程语言,是脚本语言,在运维圈会用;
  5. Python的作者其实就是使用C+SHELL来做的;发布后很长时间没有火,原因是它是位于离机器最远的那个等级的语言;后面有两次小高潮:1.在运维圈想做自动化脚本,SHELL不能像编程语言那样写代码,而Python可以,python 取代shell ; 2. 真正引爆的时候是2015年之后,做数据分析,数据挖掘,2020年人工智能把python带到了第一位;
  6. perl,ruby,python 其实都是脚本语言,但是python其实远远超过了脚本语言的作用;perl主要做文本处理;
  7. go:c家族的,谷歌开发的,攻守平衡:80%的C的运行性能,80%的python的开发难度,想要替代c,c++;
  8. Rust:也想要替代c,c++;

在这里插入图片描述

总结:Python最可能成为全民编程的语言

  1. Python是解释性高级编程语言,性能没有C语言好,但是随着硬件的发展,性能问题是能够被解决的;
  2. Python简洁优雅,易学易用,生态资源丰富,应用广泛,尤其在智能领域发光发热,所以是最可能成为全民编程的语言;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值