上一节预告了这一章想讲如何不停地和世界打招呼,这涉及到编程中一个重要的概念:循环。
但经过了两周断更后细想了一下,不行,我们得对上一章进行补充。
我们觉得学编程的时候不能太固化,得多学一些扩展性的东西,这样有助于触类旁通。
所以就尽可能多讲当初阿菌自己学习编程的时候想了解的东西,比如这章会介绍一下我们写代码和计算机运行代码之间的关系。
上一集我们讲了如何下载python和编辑工具vscode。
安装python很好理解,毕竟安装了python,才能使用python;而编辑工具,大家可以随意选用。
当时阿菌学的时候,就不太了解上面那句,什么叫**“编辑工具可以随意用”?**
没有骗大家,当年呆头呆脑的阿菌一直以为,只有用老师指定的软件,才能写代码......
这样,我们先从一个大的角度解释一下我们表面写的python代码,背后实际都是些什么东西。
首先我们要知道,写代码,就是让电脑,按照我们编写的指令(软件)去干活。
我们的电脑,它由各种各样的部件组成,比如内存呀,显示器什么的,这些东西,它们自己是不会工作的,我们也需要写指令(软件)让它们协同工作起来。
让各种电脑部件协同工作起来的指令(软件),我们把它叫操作系统。
没错,操作系统也是一个软件,只不过,它是一个很大型的软件。想成为世界首富么?想的话可以考虑学习盖茨,开发一套像 Windows 这样全世界都用的操作系统,当全世界人民都用你的操作系统时,就能当首富啦。
当然这只是开玩笑啦,毕竟不是每个人都是天选之子。想要颠覆前辈创垫下的格局,得有两把刷子,比如说像乔布斯老爷子,开发一套更炫酷的苹果操作系统。
不过,大家一定要明白,编程语言的学习,和操作系统是无关的。
重要的概念要再说一遍哈,我们只是编写指令让电脑为我们工作。比如说,我们现在学习 python 语言,写的是python 指令。不知道大家还记不记得,上一节课里,我们在正式学习python之前,是需要到 python 官网下载安装 python 的(确切点说应该是安装一个python解释器),不知道大家有没有思考过为什么要安装这个东西?
想问题要多从反面想。如果不安装 python 软件(解释器)会怎样?
不安装 python 直接面临的问题是:我们写的 python 代码,操作系统它**看不懂。**因为每个操作系统的指令集都不一样。
看不懂自然就没办法执行。
操作系统不执行,我们的机器就不能响应我们的指令。
所以我们要去下载安装一个对应自己操作系统的软件包,这个软件包里面有 python 解释器,它能够将我们的 python 代码,转化成我们对应操作系统能执行的代码,这样机器才能响应我们的代码。
现在大家明白,为什么我们到官网下载软件的时候,Windows 的下载 Windows 版本的安装包,Mac 下载 Mac 版本的安装包了吧?
停!肯定有好奇宝宝会问:
为啥我们不直接写机器能看懂的代码呢?
大家可以看看上面的图,编程语言很好懂的,见名知意。比如print
是打印输出的意思,我们想要输出Hello World
,直接调用print
就行了。而机器能看懂的语言,可就复杂多了,阿菌这里给出的是汇编代码,再深入一点可就是 0101 的机器码了,那个可不是我们能手写的。
回到正题,我们下载了相应系统版本的安装包,比如我的是 Mac 系统,这样 Mac 版的 python 包就能把我的 python 代码转化成 Mac 操作系统对应的执行指令。这样一来,我的 python 代码就能控制我的 mac 系统了!
其他操作系统也是一样的道理。
估计会有好奇宝宝问:这个转化的过程是怎么样的?
这貌似又能更新一个专题了,不过,这个可能会枯燥很多,这门课大概叫编译原理。初学的话,建议大家先别深入这个,要不然很快就劝退了,可以考虑先跟着阿菌的教程,打点基础,做点小项目,逐步培养信心,等基础和知识面广了之后,很多东西会轻松很多的。
好啦,现在大家知道我们说的写代码是个什么概念了,接下来回顾一下,我们上一节写的第一行代码:
print("Hello world!") 复制代码
对了,大家要记得写代码时一定要切换到英文模式写,中文格式下的括号呀,双引号呀什么的是不能被识别的。
这行代码的结构是怎样的我们先不管,上节课我们演示的是,在 vscode 这个代码编辑工具里,点一下右上角的小播放号就能执行:
这个文件,当初我是保存在桌面一个叫python-study
的文件夹里的,现在我们回答这篇文章开头提到的问题:
什么叫“编辑工具”可以随意使用?
上一期里,有小伙伴提出可以不用 vscode
,使用别的工具。确实,有很多比 vscode
好用的工具,大家以后可以随心选择。
阿菌当初时的这个疑惑,就是受限于:老师用了什么软件写代码,偶就用什么软件跟着敲,没有搞明白自己究竟在做什么东西。
当时期望的就是有人能讲讲上面的内容,这样点一点就能把写代码和计算机的关系串起来了。
有了这些铺垫之后,我们尝试进入我们的工作目录,也就是当初建立在桌面的文件夹python-study
,当然,这个文件夹的名字大家可以随便起(建议取英文名字,要不然以后有点点可能会在不留意的地方带来一些小错误),自己记得就好啦。
我们创建一个.txt
文件,取名叫helloworld2
,系统会默认给我们创建一个带.txt
后缀的文本文件(当然文件的名字也可以随便取,最好用英文哈):
然后我们打开这个文件,在里面写入我们向世界打招的代码:hello world!
阿菌的教程用 Windows ,这样群众基础会更广泛一些。
写完后记得ctrl + s
保存,然后再退出哈!
然后我们回到python-study
目录:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7G9MuYOm-1628466904371)(C:\Users\liuyj\AppData\Roaming\Typora\typora-user-images\image-20210807220248132.png)]
由于我们的文件夹里面写了字符,所以文件的大小不再为0了。
接下来我们按F2,重命名文件,把helloworld2.txt
,改成helloworld2.py
:
他会提示我们可能会导致文件不可用,问我们是否确定更改,我们点击是。
这个小环节估计能有助于大家理解:什么叫“编辑工具”可以随意使用?
Windows 创建的文本文件默认是 .txt
结尾的文件,这个可以用Windows
自带的文本编辑工具打开,这个文本编辑工具,也可以是代码编辑工具。
我们只要有一个工具,提供一个窗口,让我们把我们想写的字符输入到文件里就行了。
至于文件末尾的后缀名,管他呢,我们写的是一个python
脚本,这个我们自己知道就行,不需要管电脑的提示,是我们让电脑干活。
然后我们在电脑左下角的搜索框中搜索cmd
,打开命令提示符窗口(Mac
叫终端),我们可以通过这个黑窗口操作我们的操作系统。
然后输入指令cd Desktop
,输入后按回车:
可以看到,我们光标前面的路径多了一个Desktop
的标签,意味着我们进入了这个目录。
然后,我们输入cd python-study
进入工作目录:
接着,我们输入指令dir
,查看一下工作目录下有哪些文件或文件夹(在之前的目录中也可以尝试用cls
查看一下):
可以看到我们已经编辑好的两个代码文件,接下来我们用 python 指令去运行我们的 helloworld2.py
,我们输入python helloworld2.py
(一些操作细节请看视频,mac 和 windows 通用的):
可以看到我们的 python 代码被操作系统执行了,同样向世界打了个招呼。
现在大家能明白,代码文件,编辑工具,操作系统之间的关系了吧?
我们回到 vscode,我们刚刚不是向世界打过一次招呼了么,vscode 下方也有一个命令行:
我们不妨把上面的步骤再重复一遍,输入指令cd Desktop/python-study
,cd 是进入某个文件夹的意思,我们当前在liuyj
目录,也就是阿菌自己的用户根目录下,大家可以在根目录下用dir
指令查看一下的,能看到 Desktop 这个表示桌面的目录,然后再次执行helloworld2.py
:
同样是向世界打了个招呼!
大家再留意一下上面那串很长的黄色字符,在第二节教程中,我们点了vscode右上角的小播放号后,就执行了这行指令,这行指令的结构其实也是python xxx
只不过它把python执行文件具体在操作系统的那个位置全写出来了。
肯定会有好奇宝宝接着问:咦?为什么这个按键背后的指令要写这么仔细的路径,而我们只需要敲一个单词python就可以了呢?
这就涉及到一个知识点,叫环境变量。
我们想要执行python脚本,需要找到C:/Users/liuyj/AppData/Local/Programs/Python/Python37/python.exe
这个可执行文件。
每次我们输入:python xxx
的时候,实际上系统会帮助我们去磁盘上找到上面的可执行文件。
这个可执行文件的路径,python在安装时就帮我们配好了。
想起当年学java的时候,第一步就是要配这个东西。
不知道小伙伴们会不会有一种冲动:或许我也可以参照vscode写一个最简单的代码编辑器呢!就一个框框,右上角加一个运行按钮。
虽然实现起来会有很多复杂的细节,但我们也不妨思考一下的,比如阿菌会这样想:首先我们得创造出一个窗口,这个窗口的实现不需要我们写的,不管是python还是java,都有相应的图形界面功能。所以,这个小功能的关键点在于运行按钮。
或许可以这样:我们先读取系统变量的配置,然后获得python可执行文件的路径,接着把编辑框的内容写到一个python文件里(如果是打开已有文件就不需要了),然后执行指令就可以了。
作者:阿菌要努力