3.python编程与计算机的关系,如何执行python文件
上一节预告了这一章想讲如何不停地和世界打招呼,这涉及到编程中一个重要的概念:循环。
但经过了两周断更后细想了一下,不行,我们得对上一章进行补充,而且这个补充非常关键!也印证了上一章所说的:
上一节章很重要但没意思,但这一章,很重要也很有意思。

我们觉得学编程的时候不能太固化,得多学一些扩展性的东西,这样有助于触类旁通。毕竟我们这个是零基础教程,不是短期突击就业课程,不需要赶鸭子上架。
所以就尽可能多讲当初阿菌自己学习编程的时候想了解的东西,比如这章会介绍一下我们写代码和计算机运行代码之间的关系。
上一集我们讲了如何下载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目录:
由于我们的文件夹里面写了字符,所以文件的大小不再为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文件里(如果是打开已有文件就不需要了),然后执行指令就可以了。
好啦,第三章到这里就结束啦,感谢大家的支持。
3.python编程与计算机的关系,如何执行python文件的更多相关文章
- Python编程Day1——计算机组成与操作系统
一..计算机基础 二.编程与编程的目的 1.什么是语言? 一种事物与另外一种事物沟通的介质 编程语言是程序员与计算机沟通的介质 2.什么是编程? 程序员把自己想要让计算机做的事用编程语言表达出来,编程 ...
- python编程基础--计算机原理之硬件基础
一.寄存器:寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果. 1.寄存器的特性: 1)寄存器位于CPU内部,数量很少,仅十四个: 2)寄存器所能存储的数据不一定 ...
- python编程之如何在Windows上安装python
一.安装python 首先检查你的系统里是否安装了python,开始菜单里点击运行输入cmd打开一个命令窗口,或键盘快捷键windows+R打开,在窗口中输入python并回车,如果出现了Python ...
- 读书笔记「Python编程:从入门到实践」_10.文件和异常
10.1 从文件中读取数据 10.1.1 读取整个文件 with open(~) as object: contents=object.read() with open('C:/Users/jou/ ...
- 【Python编程:从入门到实践】chapter10 文件和异常
chapter10 文件和异常 10.1 从文件中读取数据 10.1.1 读取整个文件 with open("pi.txt") as file_object: contents = ...
- python编程os、os.path 模块中关于文件、目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名( ...
- 【python之路2】CMD中执行python程序中文显示乱码
在IDLE中执行下面代码,中文显示正常: # -*- coding:utf-8 -*- st=raw_input("请输入内容")print st 但在CMD中执行e:\hello ...
- python脚本 pyqt 打包成windows可执行exe文件 pyinstaller
今天学习pyqt,做了一些好玩的东西. 好奇之中想试试python脚本编译成可执行文件,一顿查询之后成功了! 我的环境是: windows10 64bit python3.5 pyqt5 ...
- Python编程:从入门到实践(选记)
本文参考< Python 编程:从入门到实践>一书,作者: [ 美 ] Eric Matthes 第1章 起步 1.1 搭建python环境 在不同的操作系统中, Python 存 ...
随机推荐
- 在js中使用moment将秒转换为多少天多少小时多少分多少秒
let x = 2703750;//单位是秒 var d = moment.duration(x, 'seconds'); console.log(Math.floor(d.asDays()) + ' ...
- Go语言十六进制转十进制
Go语言十六进制转十进制 代码Demo import ( "fmt" "strconv" "testing" ) func Test_1(t ...
- hive学习笔记之五:分桶
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- PUN丨实用API
原文地址:PUN丨实用API 当前房间人数 int num = PhotonNetwork.CurrentRoom.PlayerCount; 当前脚本是否属于当前玩家 //需继承MonoBehavio ...
- 六、JavaSE语言基础之数组
一维数组(关键字[]) 关于数组的一些概念: 数组是多个基本数据有机组合形成一个复杂数据,是一个引用数据类型数据. 数组:装指定数量元素类型相同的数据的容器. 元素:在数组中,数组中的每个数据称之为数 ...
- oracle查询用户所在表为空的表名
1 select * from user_tables where num_rows = 0 查询之后发现查询的不全,查询之后发现num_rows为空 select * from user_table ...
- BGV方案
BGV方案 SIMD技术 中国剩余定理 在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物 ...
- js实现文字分割动画
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...
- Linux:Linux安装配置JDK1.8
1 在/usr/local 文件夹下新建一个文件夹software ,将JDK放到此文件夹中 并在此文件夹下解压执行命令 tar zxvf jdk-8u144-linux-x64.tar. ...
- 令牌桶限流思路分享(PHP+Redis实现机制)
一 .场景描述 在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源, 通常来说我们会对于服务器上的各种接口进行调用次数的限制.比如对于某个 用户,他在一个时间段(interval ...