high-school-it-p2~> 基础科普
<~~ 发表日期:2022-09-11 | 本文词数:3133 | 预计阅读时间:16分钟 ~~>

让我们了解下python, 顺便科普一些常识, 进行环境搭建, 写一个Hello World吧!

注意:
本文是偏向初学者的科普性文章, 语言尽量小白化, 或因此丧失一定的严谨, 望理解

编译与解释

计算机是二进制的, 只认识二进制, 但你不可能手写二进制
c/cpp/python 等编程语言, 让你写人类可理解的 "代码", 然后将它们 "转化" 为二进制后供机器执行

反正记住一点:
机器无法理解代码, 它只理解二进制, 但你能通过程序, 将代码解析为二进制可执行文件, 即 .exe 结尾的文件
我们将代码被解析为二进制的过程, 称为 "编译", 将解析工具, 称为 "编译器"

当然, python 特殊一些, 编译的过程是分段的, 先编译一段, 再执行这段二进制, 重复, 直到全部解析完毕
我们将分段编译的过程, 称为 "解释", 将分段编译的工具, 称为 "解释器"

编程语言, 以 python 为例子, 在不断地高速迭代与进化, 因此有很多新旧版本
新版本的 python, 可能就会出现许多新的强大语法, 让人更爽地编写代码

py的代码很简单, 不像c语言要涉及底层的内存管理知识, 你不需关注底层的繁琐细节, 只需关注逻辑
因此它出现在了高中的信息技术学科教育中, 适合初学者, 虽然我个人并不喜欢python :)

代码:
代码并非特殊之物, 你完全能在桌面新建个txt文件, 然后在里面写代码
它仅是段文本, 若没了编译器/解释器, 代码毫无用处
编译器/解释器才是最重要的, 因为它们可以接收文本, 将其解析为exe文件

文件后缀: 文件本身的内容, 并不会因修改文件的后缀名而发生更改
后缀只不过起到一个进行分辨的作用, 当你看见 "xxx.jpg", 就知道它是张图片, 看见 "xxx.txt", 就知道它是段文本

文件的后缀只不过是个约定, 让人们知道该文件代表什么, 但约定不具有强制性
windows会根据文件的后缀, 尝试用对应的工具打开该文件, 比如:

当你新建个txt, 然后将其后缀改为jpg, windows就会以为它是张图片, 用查看图片的方式来处理它, 此时自然就无法显示了
一个图片文件, 你非要把内容改成你随便敲打的文字, 工具无法识别, 自然就是 "文件损坏" 了

如何显示文件后缀?
按住 "win+e" ("win" 是键盘下面的windows图标, win与e一起按), 打开文件浏览器
在上方顶栏, 点击 "查看", 随后勾选右侧的 "文件扩展名", 然后关闭文件浏览器
此时, 桌面上的文件, 就会显示后缀了, 你也能通过重命名修改文件后缀了


Python的特点

  • 是一门 ++高级语言++
  • 是一门 ++面向对象++ 的语言
  • 是一门 ++解释型++ 语言
  • 语法简单, 拥有丰富强大的库, 适合快速开发

高级语言
计算机界, 编程语言具有一个演化史, 那就是越来越具有可读性, 分为三个阶段

  • 机器语言: 由二进制代码组成, 计算机可以识别并运行, 但人类无法理解
  • 汇编语言: 加上了许多符号, 通过编译器编译为机器语言, 人类稍微可以理解了
  • 高级语言: 加上了非常多的符号与语法, 通过编译器/解释器, 转为汇编语言, 人类可读, 比如py/c/cpp

值得注意的是, 还有一个叫 ++自然语言++, 别和上面的搞混了
自然语言指我们日常生活中, 进行对话时使用的语言, 如汉语/英语/法语/德语

面向对象
假设你要搭积木, 这个积木很复杂, 那么你可以将积木分解成五六个子型的小积木
那么, 可以先拼好这五个小积木, 然后组合成搭积木, 而不是一块一块拼
(非严谨版, 勿喷, 只是快速了解而已)

库:
当你需要开发一个无比复杂的程序, 不可能自己从头开始一行一行敲, 太复杂
比如你用Python时, 想使用产生随机数的功能, 不用自己写, 官方已经给你写好了, 你直接调用就完事了


环境搭建

你可以选择用家里的电脑练习python, 这时就需要自己安装python了 (以Windows为例, 毕竟你要是用的是linux还需要看这步吗...)

python的官网在国外, 访问起来有点慢, 让我们使用华为搭建的镜像网站, 点击此处下载py, 版本是3.9.0: 安装程序
至于出现安装界面后点哪里, 你就记住两个地方:

  • 先勾选底部的两个框框, 分别是"install launcher" 与 "add path", 都选上
  • 点击 "Install Now" 进行安装, 等待安装成功后直接点击close

如何检验自己是否安装成功?
请按住 win+r (win键是键盘最下面的window图标, "win" 与 "r" 要一起按)
随后输入 cmd, 然后再敲回车, 会出现一个黑窗口, 不用理会闪烁的粗体光标, 与光标前的前置提示

请输入以下命令, 检验python是否安装成功:

python  --version

以上的 python, 就是安装的python解释器, 是个可执行文件(exe)
我们执行它, 但并不让它解释代码, 此处仅表示: 让它输出当前python的版本
它应该会输出类似下面的文字:

Python 3.9.0

如果是其他输出, 很可能是安装的时候, 未勾选 add path 这个框, 导致路径无法被识别

:::tips 命令与路径
这个出现的黑框框, 作用是执行你敲下的命令, 我们称其为 "终端/命令行/cmd"
粗体闪烁的光标前的提示符, 表示你当前处于的路径

你能输入命令, 敲回车, 来运行该命令 (命令其实也就是一个exe文件)
事实上, 当你想执行命令时, 应输入它的完整路径, 告诉了windows可执行文件的路径, 才能执行对应的文件嘛
比如, 敲下 "C:\asdiasdadows\asdadtem32\casd.exe" 来执行某个叫 casd.exe 的可执行文件 (乱编的路径)
你鼠标点击软件图标后, 就会出现界面, 这也相当于, 在终端/命令行中, 敲下了对应的路径 :)

但若有个很常用的命令, 不想每次都输完整路径, 只想简单地用 "xxx" 来执行 "C:\asdad\xxx.exe" 该怎么办呢?
这时, 可将该path添加到系统path中, 然后为该path取个名字, 之后输入这名字, 此时就相当于, 执行了对应path指向的文件

你现在懂得, 为什么在python的安装向导程序中, 需要勾选下方的 "add path" 了吗?
就是为了能够直接输入 "python" 来执行命令, 而不需要在意它的路径!

同样的道理, 你按 "win+r" 后, 输入的 cmd, 其实就代表着, 通过 cmd 背后对应的路径, 执行了叫 cmd.exe 的exe文件
因此, 出现了这个黑框框 :)

但请明白一点, 这个黑框框只不过是个 "外壳", 只是让你输入命令而已, 能够显示文字而已
真正执行命令的, 还是windows系统本身, 你在cmd中敲下的命令, 都会交给windows系统本身去执行
你可以 "win+r" 后直接敲 python, 与在 cmd 中敲 python, 效果是一样的
:::


idle的背后原理

你现在已经了解了很多基础的概念/常识了, 对吧?!

在课堂上, 老师是怎么教你们码代码的? 是不是通过一个叫 "idle" 的工具, 编辑代码后, 点击 "Run" 开始运行? (或类似工具)
实际上, 若你明白了先前讲的 "编译器/解释器", 这个图形化的界面实际上也并不神秘

你编辑代码后点击的 "Run", 实际上的作用, 就是获取你编辑的当前文件的路径, 然后把该路径传递给python解释器, 进行执行
执行后, python解释器根据你的代码, 可能会进行输出, 然后 idle 就会该输出粘过来, 显示给你, 仅此而已

整个过程如下:

  • 新建一个文件, 编辑, 然后保存, 复制该文件的路径, 假设该路径是 "xxx.py"
  • 在 cmd 中输入: python xxx.py

Hello world!

来加深印象, 写个非常简单的程序吧, 作用是打印一句话: "Hello world!"
这是计算机界非常经典的, 几乎适用于一切编程语言的, 非常简单的初学者代码

:::tips 注意: 这是本教程唯一的一次不用idle, 目的是理解上面的知识, 之后的所有代码, 都会使用idle编辑, 因为小白化
你可以选择直接跳过本节, 该讲的都讲了, 特在此说明
:::

首先, 在桌面右键, 新建一个txt文件, 假设它叫 "first_app", 然后右键编辑, 输入下面的内容:

print("Hello world!")

随后打开cmd/终端, 你的当前路径应该是 "C:\Users\用户名"
我们新建的文件, 在桌面中, 桌面对应的文件夹是 "Desktop", 因此我们应该进入Desktop文件夹, 然后根据路径执行它:

cd Desktop
python first_app.txt

这将会打印:

Hello world!

瞧吧! 编辑器/解释器本身, 是不在乎文件后缀的, 只在乎文件的内容, 然后读取文件的内容, 将其解析为二进制, 然后运行
当然, 这样有个问题, 那就是人们看见其后缀txt, 会下意识认为它仅是个普通的文本文件

你可以将后缀改为py, 告诉其他人, 这是个装着py代码的文件, 让含义更加清晰, 仅此而已
(如果你不懂怎么修改后缀, 请看上面的 "常识科普: 文件后缀")

当你将后缀更改为py后, 你会发现文件的图标变成了python的图标, 啊, 多么清晰!
当你右键它, 会发现能用idle编辑了, windows根据后缀, 知道了 "这是段python代码", 然后去寻找相关的工具了
这就是正确使用后缀的便利, 即使后缀并不改变文件本身的内容, 但我们能更好地, 根据后缀辨别文件的类型与用途

但还是有个问题
那就是, 当你双击时, windows会根据后缀, 将该文件的路径, 传入命令 "python", 进行执行
执行的时候, 会自动打开cmd, 来显示你的输出/接收你的输入

这时, 你会发现, 黑窗窗一闪而过, 为何它没停下来, 直接闪退了?!?!
实际上, 我们的代码已经执行完毕了, 那么既然已经好了, 临时打开的cmd自然就消失了

在之前通过win+r产生的cmd, 用途是进行交互, 让你能一直在一个 "输入命令, 得到结果" 的循环
但通过双击而获得的cmd, 此时仅为单个程序服务, 程序一结束自己就消失

有没有什么办法来阻止双击后黑框框的消失呢? 当然有
windows中有这么一个命令, 叫做 "pause", 英文的意思是停顿, 作用是停顿cmd, 直到你随便按一个键, 打破这个停顿
你可以 win+r 打开 cmd, 然后输入 pause, 自己来试试, 就明白了, 很简单的

python是可以调用外部命令的!

你可以在 first_app.py 中, 这样改进你的代码:

import os

print("Hello World!")
os.system("pause")

上面的 import, 表示你导入了一个库, 关于库的概念之后会讲, 此处不懂也没事
os.system("pause") 表示调用一条外部命令, 相当于在cmd中调用了 pause 命令

好了, 本节已经结束了, 仅作为一篇科普向文章, 之后会正式涉及python的语法部分