安静的程序,淘⽓的程序和编写程序
1. 静态程序——程序的源代码
上⼀章我们讲到了程序的源代码,你是不是很好奇它和程序到底是不是⼀回事⼉啊?
严格来讲,“程序”和“程序的源代码”并不是⼀回事情噢。
程序的源代码是指⽤编程语⾔编写出来的程序的逻辑,是静态的⽂本,我们暂且可以叫 TA 安静的程序,⼀般被存储为以特定字符串为后缀的⽂件。
⽐如下⾯就是⼀个 Python 程序(程序员世界中最著名的打印“Hello World”的程序),被保存为 FirstProgram.py (py 是 python ⽂件的特定后缀)。
def main():
print("Hello World")
if __name__ == "__main__" :
python怎么读取py文件main()
是不是有点看不懂,没关系,听我给你娓娓道来,这个程序的名字叫做 FirstProgram ,FirstProgram.py ⽂件⾥⾯的内容就叫做FirstProgram 程序的源代码, FirstProgram 程序源代码的功能是在运⾏该程序的计算机的显⽰器屏幕上打印 “Hello World” 字样。
你可以把上⾯的代码拷贝到⼀个⽂本⽂件⾥,然后将该⽂件存储为 “FirstProgram.py” ——注意后缀,后⾯没有“.txt”。
2. 让程序跑起来——运⾏程序
光有了程序的源代码还不⾏,因为静⽌的程序什么都⼲不了。要让程序⼲活,就得让它先跑起来。
这时,我们就需要程序的运⾏环境。
涉及到运⾏环境,不同的编程语⾔的具体需求不⼀样,这⾥⼜涉及到编译执⾏、解释执⾏等概念,不要着急,这些后⾯会讲到。
在此处,我们只需要知道, Python 的运⾏环境是⼀个专门的软件,需要下载安装就可以了。
如果你想和我们⼀起上这门课,那就⼀起先来到 Python 的官⽹下载安装 Python 的运⾏环境吧:
打开 Python 下载页⾯你会发现⾥⾯有好多版本,我推荐你安装 Python3 最新版。其实任何以 Python3 开头的版本都可以,不过对于这类软件,⼤家都习惯于去追最新版。
⽽且最新版就在下载页⾯最显眼的地⽅,好,⽐如下图是 2019 年 5 ⽉的下载页头部,你读到这⼉的时候,可能版本已经有所不同,不过最新版的位置总是⼤同⼩异:
注意:不要选 Python2 因为 Python2 和 Python3 对源码的要求有些不同。
当然,你如果⾮要装 Python2 ,别怪我没有提醒你,本课所有的例⼦都是⽤ Python3 写的噢,如果装了 Python2 ,部分代码需要改写才能运⾏,这样会更加⿇烦,不如下载 Python3 省事⼉噢。
Python 运⾏环境下载到你⾃⼰的台式机或者笔记本后(相信⼤多数⼈不会想⽤⼿机编程吧哈哈),安装它,设置好环境变量(这个只要根据安
装提⽰进⾏,不知道怎么设置就什么都不要改,⽤默认的路径和选项就好)。
特别注意:图中箭头指向处⼀定要记得勾选上。否则得⼿动配置环境变量了哦。
然后在命令⾏下进⼊ PythonSourceCode ⽬录(这个⽬录是⾃⼰建⽴的),把 FirstProgram.py 放到⽬录下,然后在命令⾏输⼊ python
FirstProgram.py 就能看到效果了:
在我们键⼊ “python FirstProgram.py” 到屏幕上显⽰出 “Hello World” ,看起来是⼀瞬间的事情,但实际上,后⾯却经历了⼀个“漫长” 的过程,你的计算机的各个部件⼏乎都参与了这个过程:
⾸先,运⾏环境将程序代码读⼊内存,将⼀个完整的程序描述拆解成指令和数据两部分。
然后,指令被送到 CPU,CPU 逐条执⾏指令,对数据产⽣影响:
在这个过程中,根据程序的逻辑,输⼊输出设备(I/O设备)可能会接受⽤户的输⼊(本程序没有⽤户输⼊),并将输出呈现给⽤户(本程序的将 “Hello World” 打印到屏幕就是输出);
直到所有指令执⾏完毕。
最后,所有指令执⾏完毕后,指令和数据被移出内存。 (计算机是不是真的很⾟苦,⼀个⼩⼩的动作,背后有这么复杂的步骤)
这些设备、内存、 CPU 之间的信息交换都是通过主板上的总线来实现的。
3. 跑动的程序——运⾏时程序
在程序的运⾏过程中,那些动态的、临时性存在于计算机核⼼部件中,并通过外围设备和⽤户进⾏交互的指令和数据才是真正的程序!
程序的源代码是⼀些静态的⽂字和符号,以⽂本⽂件形式存储在计算机的存储部件上。就算是打印或者⼿抄在普通纸张上也可以,源代码还是源代码,本⾝不会变化,只是不能直接被运⾏环境读取运⾏了⽽已。
⽽确切意义上的程序,则是在计算机执⾏源代码(或者由源代码编译⽽成的⼆进制码)的过程中,⼀个动态的流程和记录。对应到物理世界,程序的实际存在形式是硅晶、⾦属上流动的电波和不同⾼低的电压。
不过在⽇常⽣活中,“程序”⼀词往往被⽤来指代程序源代码,⽽且指代源代码的机会远⽐引⽤它的本意要多。我们也不⽤故意别扭,那就⼲脆约定⼀下,在下⾯的课程中我们 ⽤“程序”来指代静态的源代码,⽽ ⽤“运⾏时程序”指代动态的程序。
4. 令⼈激动的环节:编程
4.1 编程的步骤
我们已经知道了什么是程序,编程就是从⽆到有创造出⼀个可以正常运⾏的程序的过程。
这个过程通常包括⼀下这⼏个步骤,⼀定要看仔细了噢:
Step-1 编写:把程序写出来。
既然要“编写”,⾃然要涉及到语⾔⽂字,否则写什么呢?
就⽬前⽽⾔,在⼤多数情况下,我们编写程序都使⽤⾼级编程语⾔。既然有⾼级,当然就有低级,之后我们会有专门将编程语⾔的章节,在这⾥就不多说浪费时间啦。 总⽽⾔之呢,程序是⽤某种特定的语⾔描述出来的。
Step-2 编译(*):编译是将编程语⾔描述的、⼈类可读的程序源代码(source code, 或简称code)转化为⼆进制代码(binary code)的过程。
这⼀步并不是⼀定要进⾏,关键是在于你选⽤的编程语⾔是编译执⾏的还是解释执⾏的,如果是前者,就要进⾏本步,否则的话是不需要哒。
本课程选⽤的 Python 语⾔是后者,⽤ Python 写的代码是不需要编译的。
Step-3 测试 : 也就是试运⾏程序。
⼀⽅⾯看看我们写的程序是否可以运⾏了,另外⼀⽅⾯要看它是不是按照我们最初的设计运⾏的。这个环节通常令⼈⼼情紧张!
Step-4 问题修复(*): 如果上⼀步发现了问题,也就是程序员们常挂在嘴上的 Bug,当然不能放任不管,需要将问题修复才能正式投⼊使⽤。
这⼀步理论上当然也是可选的,如果测试没有发现问题⾃然就不⽤修复什么了。
4.2 把程序写出来
编程对应的英⽂可以叫做 Programming ,不过更通常地被叫做 Coding ,这两种叫法很多时候可以通⽤。有时后者⽐较偏重强调第⼀步:程序的编写。
和之前 “程序” 的静态动态概念混⽤类似,虽然编程实际上指的是⼀个从空⽩到有⼀个程序正确运⾏的全过程,但 很多时候“编程”会被⽤来简化地指 Step-1:编写程序 。
相⽐于Step2 ~ Step4有许多⾃动化⼯具辅助,编写程序这⼀步基本是纯⼈⼯的,这就就是为什么⼤多程序员⾃嘲为码农,就是码字的农民了。
4.3 程序编辑器
虽然编程语⾔⾥⼀般其中都会包含部分英语单词,但是还是有⼤量的内容是数字以及各种符号组成的,因此程序代码乍看起来和⼀般的⾃然语⾔⽂字很不同,更像是编码(Code)——这也就是为什么编程会被叫做 Coding 的原因。
虽然不同编程语⾔写出来的程序⼀般会以不同的后缀名来存储,⽐如 C 语⾔写的程序源码⽂件是 *.c ; C++ 是 *.cpp ; C# 是*.cs ; Java是*.java ; Python 是 *.py…… 不过说到底,这些其实都是⽂本⽂件。
所以理论上,要编程,打开⼀个 Notepad ,然后直接往⾥⾯敲字符,敲完了再存成固定后缀的⽂件就可以了!
如果你愿意,当然可以⽤ Notepad :
或者任何你⾃⼰喜欢的⽂本编辑器(⽐如在 Linux/Unix 圈很流⾏的 vim 或者 emacs 编辑器)。
这种⽅法很酷,不过不太⽅便。
4.4 集成开发环境
在这⾥给⼤家推荐⼀类超级好⽤的软件,新⼿必备,那就是:IDE(Integrated Development Environment) ——中⽂名叫作“集成开发环境”
这类软件⼤多与编程语⾔绑定的,也就是说某⼀个 IDE 主要⽀持⼀种语⾔(当然也不绝对哟)。
IDE 除了提供编辑器,还提供编译运⾏以及 debug 环境( debug 简单来说就是发现程序有 bug 以后,
能快速到 bug 所在位置的过程)。⽽且,在编写程序的过程中,⼀般 IDE 会提⽰有没有语法错误等,对于初学者来说,简直是⽆敌⽅便。
流⾏的语⾔⼀般有多种 IDE ,很多⼈在选编程语⾔的时候要先站⼀遍队 (Java vs Python),选语⾔版本的时候再站⼀遍队 (Python2 vs Python3),选 IDE 的时候⼜要站⼀遍队——也许是觉得在⼀个名⽬之下党同伐异好玩吧,但其实,这些都没什么必要~
学习本课的同学应该都是没怎么接触过编程的,想来还没有沾染动不动就 “站队“ 的习⽓,对 IDE 可能也没有什么认识,不过不要紧啦
在此我就为⼤家推荐⼀款:PyCharm 。在其官⽹:
PyCharm 有付费的专业版和免费的社区版,鉴于我们的课程内容真的⾮常滴简单,所以免费的就完全 ok 了。
5. 分享交流
我们为系列读者创建了交流,以⽅便更有针对性地讨论专栏相关问题。⼊⽅式请关注:AI悦创「博客⽂章右边⼆维码哦!」加⼩编好友,⼩编拉你⼊!(记得备注来意哦!)。
阅读⽂章过程中有任何疑问随时可以跟其他⼩伙伴讨论,或者直接向作者提问(作者看到后抽空回复)。你的分享不仅帮助他⼈,更会提升⾃
⼰。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论