1. 静态程序——程序的源代码

上一章我们讲到了程序的源代码,你是不是很好奇它和程序到底是不是一回事儿啊?

严格来讲,“程序”和“程序的源代码”并不是一回事情噢。

程序的源代码是指用编程语言编写出来的程序的逻辑,是静态的文本,我们暂且可以叫 TA 安静的程序,一般被存储为以特定字符串为后缀的文件。

比如下面就是一个 Python 程序(程序员世界中最著名的打印“Hello World”的程序),被保存为 FirstProgram.py (py 是 python 文件的特定后缀)。

def main():print("Hello World")if __name__ == "__main__" :main()

是不是有点看不懂,没关系,听我给你娓娓道来,这个程序的名字叫做 FirstProgram ,FirstProgram.py 文件里面的内容就叫做 FirstProgram 程序的源代码, FirstProgram 程序源代码的功能是在运行该程序的计算机的显示器屏幕上打印 “Hello World” 字样。

你可以把上面的代码拷贝到一个文本文件里,然后将该文件存储为 “FirstProgram.py” ——注意后缀,后面没有“.txt”。

2. 让程序跑起来——运行程序

光有了程序的源代码还不行,因为静止的程序什么都干不了。要让程序干活,就得让它先跑起来。

这时,我们就需要程序的运行环境

涉及到运行环境,不同的编程语言的具体需求不一样,这里又涉及到编译执行、解释执行等概念,不要着急,这些后面会讲到。

在此处,我们只需要知道, Python 的运行环境是一个专门的软件,需要下载安装就可以了。

如果你想和我们一起上这门课,那就一起先来到 Python 的官网下载安装 Python 的运行环境吧:

点击可下载安装 Python 的运行环境

安装教程:https://www.aiyc.top/578.html

打开 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悦创「博客文章右边二维码哦!」加小编好友,小编拉你入群!(记得备注来意哦!)。

阅读文章过程中有任何疑问随时可以跟其他小伙伴讨论,或者直接向作者提问(作者看到后抽空回复)。你的分享不仅帮助他人,更会提升自己。

安静的程序,淘气的程序和编写程序相关推荐

  1. vc 写c语言程序步骤,VC++ 6.0编写程序的详细步骤

    想知道VC++ 6.0工具如何编写程序吗,可能有些朋友还不熟悉,我们一起去了解一下VC++ 6.0编写程序的详细步骤吧. VC++ 6.0编写程序的详细步骤 vc++6.0的菜单简洁,工具明了,这里以 ...

  2. 编写程序体重身高输入和输出C语言,(C语言程序设计实验.doc

    (C语言程序设计实验 创新源于实践 <高级语言程序设计> 课程实验教学手册 高级语言程序设计课程组 实验手册使用及要求 实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识 ...

  3. 60吨反渗透+混床程序 西门子200 smart 编写程序,西门子smart line触摸屏上位机组态

    60吨反渗透+混床程序. 西门子200 smart 编写程序,西门子smart line触摸屏上位机组态. 带模拟量,读写时钟,报警视图,用户管理,报警指示器,运行状态. 非常好的一个纯水项目实例. ...

  4. 1-2课:安静的程序,淘气的程序和编写程序

    静态程序--程序的源代码 上一章我们讲到了程序的源代码,你是不是很好奇它和程序到底是不是一回事儿啊? 严格来讲,"程序"和"程序的源代码"并不是一回事情噢. 程 ...

  5. java十个整数相反顺序_编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578, 输出为 8753。...

    编写程序,对输入的一个整数,按相反顺序输出该数.例如,输入为 3578, 输出为 8753. package HomeWork08; import java.util.Scanner; public ...

  6. 实验2  使用T-SQL编写程序

    实验2  使用T-SQL编写程序 [实验目的] 1)掌握常用函数的使用方法. 2)掌握流程控制语句的使用方法. [实验环境] SQL Server 2012 Express(或SQL Server 2 ...

  7. 编写程序记录文件位置

    当我们编写程序是会注意到,首先是配置一些函数的结构体. 所以我们就要找到下面的界面,然后打开FWLB中.c文件下面所对应的.h文件,这样就能查找到相应的结构体.下图为我所找到的中断的结构体. 然后就是 ...

  8. 将一张100元的钞票换成1元、5元和10元的钞票,每种钞票至少一张,编写程序输出所有的换法,循环次数需要尽可能地少。

    2.将一张100元的钞票换成1元.5元和10元的钞票,每种钞票至少一张,编写程序输出所有的换法,循环次数需要尽可能地少. public class Two_2money { public static ...

  9. 电大计算机dm编写程序,中央电大计算机组成原理与汇编语言试题.docx

    中央电大计算机组成原理与汇编语言试卷 一.填空题(每空1分) 1>冯?诺依曼体制中最核心的思想是计算机采用 存储程序工作方式. 2.有一机器字 24位,其中操作码占 4位.若采用二地址寻址,则每 ...

最新文章

  1. java找到项目下的某个文件夹_servlet 得到 JavaWeb项目下某文件夹的路径
  2. Linux基础命令---tracepath
  3. OpenShift Security (13) - 利用Log4j漏洞攻击容器
  4. 计算机硬件如何分类,计算机硬件分类教学.doc
  5. android callmanager.java,如何使用Mobile-SDK-Android正确注销DJISDKManager和SDKManagerCallback应用程序?...
  6. 【 D3.js 入门系列 --- 4 】 怎样使用scale(比例)
  7. HTTP详解(1)-工作原理
  8. 拦截器和过滤器的执行顺序和区别
  9. Windows10系统把JDK安装到D盘上的步骤及安装
  10. 机器学习:朴素贝叶斯算法对新闻分类
  11. docker网络模式--资源分配叙述(1)
  12. visio任意角度精确旋转图形
  13. 使用wxjava实现发表内容、预览信息以及推送文章
  14. 计算机软件专业的学术道德,遵守学术规范 恪守学术道德--计算机工程学院举行2019届毕业设计(论文)动员会...
  15. 【AD22】设置原理图纸张大小
  16. 天融信上网行为管理如何做短信验证?
  17. 广播发射系统的安装调试维护——TFN T300F天馈线驻波比测试仪手持矢量网络分析仪
  18. jmeter查看平均响应时间_Jmeter查看QPS和响应时间随着时间的变化曲线
  19. STM32的复位与电源管理
  20. 商超连锁行业异速联解决方案

热门文章

  1. Android获取手机名称,版本号,生产商等信息(转)
  2. 微信图书馆开发——cnsoft总结
  3. 新农慕课python答案第零周答案_智慧树慕课答案农产品加工工艺学参考答案公众号...
  4. 微信小程序硅谷音乐动态实现排行榜数据绑定并且渲染画面
  5. 北斗三号短报文的新特点
  6. 服务器错误信息10016,服务器提示错误10016
  7. 赛灵思FPGA IO_BUF学习
  8. (215)AMD完成对赛灵思的收购
  9. 数据分析Excel必备技能有哪些
  10. 如何快速给你的微软考试证书续期?