我们在正式踏入编程语言的学习之前,首先对计算机要有一个初步的了解。

1 计算机基础

整个计算机系统分为硬件部分和软件部分,通俗来讲就是身体与灵魂的关系

硬件系统包含四大核心组件:中央处理器(CPU)作为运算控制中心,通过控制单元(CU)调度指令、算术逻辑单元(ALU)执行计算;存储器分为内存(临时存储运行数据)和硬盘(永久存储程序文件);输入/输出设备(如键盘、显示器)实现人机交互;总线系统则通过数据、地址和控制三类通道连接各硬件组件。

形象比喻就是CPU和存储器相当于大脑,CPU负责运算和思考,存储器负责记忆,内存是浅层记忆,能够很快的想起但也会很快的忘记,硬盘是深层记忆,每次都需要将记忆想一想,把内容提取到浅层记忆中,然后再交给大脑进行处理,输入输出设备相当于人的耳朵、声带、四肢能够与外界进行交互造成影响,总线就是人的神经系统,它可以将各个硬件联系起来让大脑进行控制。

软件系统分为操作系统和应用系统,前者管理硬件资源,及时调配资源,后者解决具体场景需求,这就相当于人想跳一段舞蹈,应用系统负责舞蹈具体怎么跳,将怎么跳的指令交给操作系统,让操作系统命令全身的肌肉完成舞蹈。

我们重新梳理一下舞蹈:人想要跳一段舞,需要从深层记忆(硬盘)中找寻舞蹈的跳法(应用系统以及相关的数据)提取到浅层记忆中(内存),跳舞的应用系统会将其指令一一交给操作系统,操作系统会分解指令让大脑一个动作一个动作的命令肢体进行舞蹈,也许舞蹈较长,可能需要边跳边回想动作(在程序运行过程中随时可能与内存交换数据),跳完后跳舞的过程会非常难以忘记(内存运行完成后将数据存储到硬盘中)。

这一过程体系被叫做“冯·诺依曼体系结构”,以“存储程序”为核心原理。其工作流程体现为指令执行周期:CPU首先从内存中取指,解码器译码识别操作类型,随后算术逻辑单元执行计算或数据传输,最终将结果写回寄存器或内存。所有操作均基于二进制(0/1)完成,例如数字、文字等信息均被转化为二进制代码,通过晶体管电路的开关状态实现高速处理,这一机制构成了计算机高效运算的物理基础。

2 常见的硬件与操作系统

以上介绍的硬件为核心部分,为了支撑计算机更好的完成工作,硬件还有:网卡、显示器、机箱、电源...等

再次注意:机械将硬件组合,不赋予软件控制,他们之间无法协作。

操作系统常见类别:WINDOWS、UNIX、LINUX、MACOS、安卓、IOS等

软件系统:微信、QQ、Python等

各个操作系统会因为搭载的软件系统不同,有一定的差异,我们在后续主要围绕WINDOWS、LINUX进行学习,WINDOWS不必过多赘述,LINUX是当前最流行的服务器系统,原因无他,开源免费,短小精悍!能够在占用最低资源的情况下跑服务器系统,并且在不断地迭代中,让其能够很好的兼容专业工作

3 编程语言

在计算机的发展之初,它是一台由真空管和继电器构成的庞然大物,那个时候的程序员需要使用打孔卡或拨动开关,1代表真空管通电(开),0代表断电(关),组成由1和0编制的代码,例如101 001 00001 00010 001000100010001(称为机器码),交给计算机去执行。再后来,程序越来越复杂,编写这样的代码是不人道的,所以出现了低级语言,也就是汇编语言,它会将CPU的操作步骤一步一步封装成英文,但每次执行命令也需要将它步骤描述完整,例如从某寄存器中取出什么样的数据,交给哪个运算器执行。还是太过复杂,就出现了现在使用高级语言,他将汇编语言的很多步骤进行封装,封装成STL库和第三方库,让编程语言更接近人的语言风格。

我们现在学习的编程语言就属于高级编程语言,高级编程语言属于软件系统,通常它有翻译组件,我们根据翻译组件要求进行内容编写,翻译组件能够将我们的内容翻译成计算机能够读懂的语言,让计算机逐一执行。

1

世界上的编程语言有2500+种,常见的编程语言:Java、C#、Python、PHP、C...,通常我们把他们区分为解释型语言和编译型语言,这其实是他们翻译组件的工作原理不同。

  • 解释型语言:翻译组件叫做解释器,工作方式为实时翻译。

    • 拿到代码之后,解释一句交给操作系统运行一句。

  • 编译型语言:翻译组件叫做编译器,工作方式为全文翻译。

    • 拿到代码之后,会将文件直接翻译成可执行文件,然后将可执行文件交给操作系统运行。

Python、PHP、Javascript、Ruby...一般称之为解释型语言,C、C++、Go...一般称之为编译型语言。

Java是个另类,他是先编译成字节码文件,再由解释器进行执行,具体分类业界暂有争议。

我们这次挑选其中最适合安全从业者、较为简单的编程语言Python为大家打开这扇编程的大门。

  • Python语言中输出的语法规则

print("我是python语言的输出规则")
  • Golang语言中的输出的语法规则

fmt.println("我是GO语言的输出规则")

学习编程本质上就是三件事:

  • 选择一门编程语言,在自己电脑上安装此编程语言相关的编译器/解释器。

  • 学习编程语言的语法规则,根据语法规则+业务背景 设计并开发你的软件。

  • 使用编译器/解释器去运行自己写的代码。

4 Python

4.1 Python的介绍

终于来到了我们今天的主题-Python,Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。

全球众多编程语言,为何Python可以脱颖而出成为业界炙手可热的编程语言?目前位居TIOBE排行榜第三名并且一直呈上升趋势。

image-20201021214459011

image-20201021214518950

Python如此火爆的原因如下:

  • 语法简洁 & 适合小白学习,相比较于其他编程语言Python的学习成本非常低,甚至可以让其他行业的人快速掌握编程技能,通过编程提供工作效率,例如:Excel自动化办公、文件和文件夹的处理等。

  • 类库强大,Python自诞生之初就任其自然生长,经过多年的发展,造就其在很多领域都是积累了很多方便的类库,自然也成为了运维自动化、数据分析、机器学习首选编程语言。

  • 开发效率极高,结合Python语法精炼和类库齐全的特点,所以在使用Python进行开发时可以用更少的代码完成更多的功能,大大提升开发效率。例如:Python10行代码实现的功能,用其他语言可能需要100+行才能完成。

4.2 Python的解释器种类

前文提到过,编程是与计算机的对话,编程的解释器、编译器就是人与计算机的翻译器,那么在学习之前,我们就要安装我们与python的解释器,由于python非常火,所以很多公司都开发了python的解释器(用来翻译python代码成为计算机能够识别的命令),主要有以下几种:

  • CPython【主流】,底层是由C语言开发出来的Python解释器。

  • Jython,是由Java语言开发出来的Python解释器,方便与让Python和Java代码做集成。

  • IronPython,是基于C​代码做集成。

  • RubyPython,...

  • PyPy,是对CPython的优化,他的执行效率提高了。引入编译器的功能,本质上将Python代码进行编译,再去执行编译后的代码。

  • ...

注意:常说的Python解释器默认指的就是CPython解释器。

4.3 CPython解释器的版本

CPython的解释器主要有两大版本:

  • 2.x。

Being the last of the 2.x series, 2.7 received bugfix support until 2020. Support officially stopped January 1 2020, and 2.7.18 code freeze occurred on January 1 2020, but the final release occurred after that date.
  • 3.x,目前主流版本。

python的开发者是非常有魄力的,为了让python3更适应未来,破釜沉舟的将2.x升级3.x做了大规模改动,互不兼容,我们在本次学习中主要围绕python3进行。

5.环境搭建

5.1 安装Python解释器

5.1.1 mac系统

  • 去Python官网下载Python解释器(3.x版本)

https://www.python.org/
  • 安装

默认Python解释器安装目录: /Library/Frameworks/Python.framework/Versions/3.9

有bin目录下有一个 python3.9 文件,他就是Python解释器的启动文件。
解释器路径:/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 
  • 写一个简单的Python代码并且让解释器去运行。 接下来要让解释器去运行代码文件:

name = input("请输入用户名:")
print("欢迎使用NB系统:",name)
将文件保存在:文稿/hello.py【/Users/kinghtDocuments/hello.py】
- 打开终端
- 在终端输入:解释器 代码文件
  /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello.py
  • 【补充】系统环境变量

- 假设你有30个Python文件要运行
   /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello1.py
   ...
   /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 /Users/wupeiqi/Documents/hello30.py

- Python解释器的路径每次不用再写这么长。
    - 将  /Library/Frameworks/Python.framework/Versions/3.9/bin 添加到系统的环境变量中。
    - 以后再使用Python解释器去运行python代码时,就可以这样:
       python3.9 /Users/wupeiqi/Documents/hello1.py
       ...
       python3.9 /Users/wupeiqi/Documents/hello2.py

- 如何将 /Library/Frameworks/Python.framework/Versions/3.9/bin 添加到系统的环境变量中 ?
  - 默认你不用添加,默认Python解释器在安装的过程中已经帮你添加了。
  - 自己手动想添加:
     - 打开用户目录的下的  .bash_profile 文件(.zprofile)
     - 在文件中写如下内容
# Setting PATH for Python 3.9
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH

5.1.2 windows系统

  • Python官网下载Python解释器

https://www.python.org/downloads/release/python-390/
  • 在自己电脑上进行安装

python解释器安装目录:C:\Python39
python解释器的路径:C:\Python39\python.exe
  • 编写一个Python代码并交给Python解释器去运行 怎么让解释器去运行写好的代码文件呢?

name = input("请输入用户名")
print("欢迎使用NB系统",name)
并将文件保存在:Y:\hello.py
- 打开终端
- 在终端输入:解释器路径 代码路径
  • 优化配置(让以后操作Python解释器去运行代码时候更加方便)

- 写了30个Python代码,想要使用解释器去运行。
    C:\Python39\python.exe Y:\hello1.py
    C:\Python39\python.exe Y:\hello2.py
    ...
    C:\Python39\python.exe Y:\hello10.py

- 然你以后可以方便的去运行代码,不用再写Python解释器所在的路径。   
    只要你将 C:\Python39 路径添加到系统的环境变量中。以后你在终端就可以:
        python.exe Y:\hello1.py

- 如何将 C:\Python39 添加到环境变量呢?【默认在解释器安装的时已自动添加到环境变量了】

5.2 安装Pycharm编辑器(mac)

帮助我们快速编写代码,用Pycharm可以大大的提高咱们写代码的效率。 + 用解释器去运行代码。

print("asdfasdf")
  • 下载Pycharm

https://www.jetbrains.com/pycharm/
  • 安装

  • 快速使用,写代码+运行代码

  • 破解Pycharm(专业版)

5.3 安装Pycharm编辑器(win)

  • 下载Pycharm

https://www.jetbrains.com/pycharm/download/other.html
  • 安装

  • 快速使用:编写代码 + 运行代码

  • Pycharm(专业版)