1.4 第一个简单的程序

通过对四则运算的学习,已经初步接触了Python中的内容,如果是零基础的学习者,可能会有点迷惑:难道敲几个命令,然后看到结果,就算编程了?这也不是那些能够自动运行的程序啊?

到目前为止,还不能算编程,只能算会用一些指令(或者叫作命令)来做点儿简单的工作。

少安毋躁,下面就开始编写一个真正的、简单的程序。

1.4.1 程序

下面一段内容是关于程序的概念,内容来自维基百科:

计算机程序(Computer Program)是指一组指示计算机或其他具有信息处理能力、装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语和烹饪手法的人(体系结构)来做这个菜。

通常,计算机程序要经过编译和链接而成为一种人们不易看清而计算机可解读的格式,然后运行。未经编译就可运行的程序,通常称之为脚本程序(script)。

简而言之,程序就是指令的集合。但是,有的程序需要编译,有的不需要。Python编写的程序就不需要编译,因此她也被称之为解释性语言,编程出来的程序叫作脚本程序。

某些程序员认为“编译型语言比解释性语言高价”,这是错误的。不要认为编译的程序好,不编译的就不好;也不要认为编译的程序属于“高端”,不编译的就属于“低端”,这是毫无根据的。

不争论,用得妙就是好。

1.4.2 用IDE编程

在实践中,每个人都有自己喜欢的IDE。所以,也请读者在学习中找到自己喜欢的IDE,

Python有一个默认IDE,当打开了Python Shell之后,通过“File->New window”打开一个文本编辑界面。如图1-2所示。在这个界面中就可以写程序了。

在这个界面看不到用于输入指令的提示符“>>>”,这个界面有点像记事本。说对了,其本质上就是一个记事本,只能输入文本,不能直接在里面贴图片。如图1-3所示。

1.4 第一个简单的程序 - 图1图1-2 文本编辑界面

1.4 第一个简单的程序 - 图2图1-3 输入界面

1.4.3 Hello,World

“Hello,World”是面向世界的标志,所以,任何程序的第一句一定要写这个,因为程序员是面向世界的,绝对不畏缩在某个局域网内。

直接上代码,就这么一行即可。

  1. print "Hello,World"

如图1-4所示为代码样式。

程序就是指令的集合。现在,这个程序里面就一条指令,一条指令也可以成为集合。

注意观察,单击Run菜单,在下拉列表里面选择“Run Module”,如图1-5所示。

1.4 第一个简单的程序 - 图3图1-4 代码样式

1.4 第一个简单的程序 - 图4图1-5 单击菜单选项

然后弹出对话框,要求把这个文件保存,将文件保存到一个位置,一定要记住这个位置,并且取个文件名,文件名以.py为扩展名。

都做好之后,单击“确定”按钮,就会发现在另外一个带有“>>>”的界面中,就自动出来了“Hello,World”两个大字。

成功了吗?成功了也别兴奋,因为还没有到庆祝的时候。

在这种情况下,我们依然是在IDE的环境中实现了刚才那段程序的自动执行,如果脱离这个环境呢?

关闭IDLE,打开shell,或者打开cmd,通过命令的方式,进入到你刚才保存的文件目录。

1.4 第一个简单的程序 - 图5

这个文件夹里面就一个文件,名为105.py,就是刚才保存的那个文件。

然后在这个shell里面输入:python 105.py。

上面这句话的含义就是:告诉计算机运行一个Python语言编写的程序,程序文件的名称是105.py

我的计算机我做主,于是它乖乖地执行了这条命令。如下图:

1.4 第一个简单的程序 - 图6

还在沉默?可以欢呼了。因为你在程序员道路上迈出了伟大的第二步(思考:什么时候迈出的第一步?)。

1.4.4 解一道题目

题目:请计算19+2*48/2

读者先自己仰望天空(或者天花板)冥想一下大概如何写,然后继续。

代码:

  1. #!/usr/bin/env python
  2. #coding:utf-8
  3.  
  4. """

请计算:19+2*48/2

  1. """
  2.  
  3. a = 19 + 2 * 4 – 8 / 2
  4. print a

提醒初学者,不要复制这段代码,要一个字一个字地敲进去,然后保存(我保存的文件名是:105-1.py)。

在shell或者cmd中,执行:python文件名.py。

执行结果如下图:

1.4 第一个简单的程序 - 图7

好像还是比较简单。

下面对这个简单程序进行解释。

  1. #!/usr/bin/env python

这一行是必须写的,它能够引导程序找到Python的解释器(或者叫解析器、直译器)。也就是说,不管这个文件保存在什么地方,这个程序都能执行,而不用指定Python的安装路径。

解释器(Interpreter),是一种电脑程序,能够把高级编程语言逐行直接翻译运行。解释器不会一次性把整个程序翻译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再运行,因此解释器的程序运行速度比较缓慢。它每翻译一行程序语句就立刻运行,然后再翻译下一行,再运行,如此不停地进行下去。

解释器的好处是它消除了编译整个程序的负担,但也会让运行时的效率打折扣。相对地,编译器并不运行程序或源代码,而是一次将其翻译成另一种语言,如机器码,以供多次运行而无须再编译。其制成品无须依赖编译器而运行,程序运行速度比较快。(来自《维基百科》)

  1. #coding:utf-8

这一行是告诉Python,本程序采用的编码格式是utf-8,什么是编码?什么是utf-8?这是一个比较复杂且有历史的问题,此处暂不讨论。只有有了上面这句话,在后面的程序中才能写汉字,否则就会报错。

  1. """
  2. 请计算:19+2*4?8/2
  3. """

这一行是让人看的,而计算机看不懂。在Python程序中(别的编程语言也是如此),要写所谓的注释,就是对程序或者某段语句的说明文字,这些文字在计算机执行程序的时候被计算机姑娘忽略,但是,必要的注释又是必不可少的,正如前面说的那样,程序在大多数情况下是给人看的,注释就是帮助人理解程序的。当然,本程序中的注释是不必要的,纯粹是为了说明注释而写。

写注释的方式有两种,一种是单行注释,用“#”开头,另一种是多行注释,用一对“'''”(三个单引号)包裹起来。

用#开头的注释,可以像下面这样来写:

  1. #请计算:19+2*48/2

这种注释通常写在程序中的某个位置,比如某个语句的前面或者后面。计算机也会忽略这种注释的内容,因为只是给人看的。

一般在程序的开头部分都要写点东西,主要是告诉别人这个程序是用来做什么的,比如刚才的注释,就是说明本程序时要计算那个表达式。

  1. a = 19 + 2 * 4 8 / 2

所谓语句,就是告诉程序要做什么事情。程序是由各种各样的语句组成的。这条语句还有一个名字,叫作赋值语句。19+2*48/2是一个表达式,最后要计算出一个结果,这个结果就是一个对象。

“=”,不要理解为数学中的等号,它的作用不是“等于”,而是完成赋值语句中“赋值”的功能。a是变量。这样就完成了一个赋值过程。

语句和表达式的区别:“表达式就是某件事”,“语句是做某件事”。

  1. print a

这还是一个语句,称之为print语句,就是要打印出a的值(这种说法不是非常严格,但是通常都这么说。严格的说法是打印变量a做对应的对象的值。但这种说法啰嗦,就直接说打印a的值)。

是不是在为看到自己写的第一个程序而欣慰呢?