通过对四则运算的学习,已经初步接触了Python中内容,如果看官是零基础的学习者,可能有点迷惑了。难道敲几个命令,然后看到结果,就算编程了?这也不是那些能够自动运行的程序呀?
的确。到目前为止,还不能算编程,只能算会用一些指令(或者叫做命令)来做点简单的工作。
稍安勿躁,下面就开始编写一个真正的但是简单程序。
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/105.md#程序)程序
下面一段,关于程序的概念,内容来自维基百科:
* 先阅读一段英文的:[computer program and source code](http://en.wikipedia.org/wiki/Computer_program),看不懂不要紧,可以跳过去,直接看下一条。
> A computer program, or just a program, is a sequence of instructions, written to perform a specified task with a computer.[1] A computer requires programs to function, typically executing the program's instructions in a central processor.[2] The program has an executable form that the computer can use directly to execute the instructions. The same program in its human-readable source code form, from which executable programs are derived (e.g., compiled), enables a programmer to study and develop its algorithms. A collection of computer programs and related data is referred to as the software.
>
> Computer source code is typically written by computer programmers.[3] Source code is written in a programming language that usually follows one of two main paradigms: imperative or declarative programming. Source code may be converted into an executable file (sometimes called an executable program or a binary) by a compiler and later executed by a central processing unit. Alternatively, computer programs may be executed with the aid of an interpreter, or may be embedded directly into hardware.
>
> Computer programs may be ranked along functional lines: system software and application software. Two or more computer programs may run simultaneously on one computer from the perspective of the user, this process being known as multitasking.
* [计算机程序](http://zh.wikipedia.org/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A8%8B%E5%BA%8F)
> 计算机程序(Computer Program)是指一组指示计算机或其他具有信息处理能力装置每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语和烹饪手法的人(体系结构)来做这个菜。
>
> 通常,计算机程序要经过编译和链接而成为一种人们不易看清而计算机可解读的格式,然后运行。未经编译就可运行的程序,通常称之为脚本程序(script)。
程序,简而言之,就是指令的集合。但是,有的程序需要编译,有的不需要。python编写的程序就不需要,因此她也被称之为解释性语言,编程出来的层序被叫做脚本程序。在有的程序员头脑中,有一种认为“编译型语言比解释性语言高价”的认识。这是错误的。不要认为编译的就好,不编译的就不好;也不要认为编译的就“高端”,不编译的就属于“低端”。有一些做了很多年程序的程序员或者其它什么人,可能会有这样的想法,这是毫无根据的。
不争论。用得妙就是好。
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/105.md#用idle的编程环境)用IDLE的编程环境
能够写python程序的工具很多,比如记事本就可以。当然,很多人总希望能用一个专门的编程工具,python里面自带了一个,作为简单应用是足够了。另外,可以根据自己的喜好用其它的工具,比如我用的是vim,有不少人也用eclipse,还有notepad++,等等。软件领域为编程提供了丰富多彩的工具。
以python默认的IDE为例,如下所示:
操作:File->New window
[![](https://box.kancloud.cn/2015-09-07_55ed2cca7bbe1.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10501.png)
这样,就出现了一个新的操作界面,在这个界面里面,看不到用于输入指令的提示符:>>>,这个界面有点像记事本。说对了,本质上就是一个记事本,只能输入文本,不能直接在里面贴图片。
[![](https://box.kancloud.cn/2015-09-07_55ed2ccd407d1.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10502.png)
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/105.md#写两个大字helloworld)写两个大字:Hello,World
Hello,World.是面向世界的标志,所以,写任何程序,第一句一定要写这个,因为程序员是面向世界的,绝对不畏缩在某个局域网内,所以,所以看官要会科学上网,才能真正与世界Hello。
直接上代码,就这么一行即可。
~~~
print "Hello,World"
~~~
如下图的样式
[![](https://box.kancloud.cn/2015-09-07_55ed2ccf97ee4.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10503.png)
前面说过了,程序就是指令的集合,现在,这个程序里面,就一条指令。一条指令也可以成为集合。
注意观察,菜单上有一个RUN,点击这个菜单,在下拉列表里面选择Run Module。
[![](https://box.kancloud.cn/2015-09-07_55ed2cd1ce270.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10504.png)
会弹出对话框,要求把这个文件保存,这就比较简单了,保存到一个位置,看官一定要记住这个位置,并且取个文件名,文件名是以.py为扩展名的。
都做好之后,点击确定按钮,就会发现在另外一个带有>>>的界面中,就自动出来了Hello,World两个大字。
成功了吗?成功了也别兴奋,因为还没有到庆祝的时候。
在这种情况系,我们依然是在IDLE的环境中实现了刚才那段程序的自动执行,如果脱离这个环境呢?
下面就关闭IDLE,打开shell(如果看官在使用苹果的 Mac OS 操作系统或者某种linux发行版的操作系统,比如我使用的是ubuntu),或者打开cmd(windows操作系统的用户,特别提醒用windows的用户,使用windows不是你的错,错就错在你只会使用鼠标点来点去,而不想也不会使用命令,更不想也不会使用linux的命令,还梦想成为优秀程序员。),通过命令的方式,进入到你保存刚才的文件目录。
下图是我保存那个文件的地址,我把那个文件命名为105.py,并保存在一个文件夹中。
[![](https://box.kancloud.cn/2015-09-07_55ed2cd3efeb4.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10505.png)
然后在这个shell里面,输入:python 105.py
上面这句话的含义就是告诉计算机,给我运行一个python语言编写的程序,那个程序文件的名称是105.py
我的计算机我做主。于是它给我乖乖地执行了这条命令。如下图:
[![](https://box.kancloud.cn/2015-09-07_55ed2cd70dd45.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10506.png)
还在沉默?可以欢呼了,德国队7:1胜巴西队,列看官中,不管是德国队还是巴西队的粉丝,都可以欢呼,因为你在程序员道路上迈出了伟大的第二步(什么迈出的第一步?)。顺便预测一下,本届世界杯最终冠军应该是:中国队。(还有这么扯的吗?)
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/105.md#解一道题目)解一道题目
请计算:19+2*4-8/2
代码如下:
~~~
#!/usr/bin/env python
#coding:utf-8
"""
请计算:
19+2*4-8/2
"""
a = 19+2*4-8/2
print a
~~~
提醒初学者,别复制这段代码,而是要一个字一个字的敲进去。然后保存(我保存的文件名是:105-1.py)。
在shell或者cmd中,执行:python (文件名.py)
执行结果如下图:
[![](https://box.kancloud.cn/2015-09-07_55ed2cdbc2979.png)](https://github.com/qiwsir/StarterLearningPython/blob/master/1images/10507.png)
好像还是比较简单。
下面对这个简单程序进行一一解释。
~~~
#!/usr/bin/env python
~~~
这一行是必须写的,它能够引导程序找到python的解析器,也就是说,不管你这个文件保存在什么地方,这个程序都能执行,而不用制定python的安装路径。
~~~
#coding:utf-8
~~~
这一行是告诉python,本程序采用的编码格式是utf-8,什么是编码?什么是utf-8?这是一个比较复杂且有历史的问题,此处暂不讨论。只有有了上面这句话,后面的程序中才能写汉字,否则就会报错了。看官可以把你的程序中的这行删掉,看看什么结果?
~~~
"""
请计算:
19+2*4-8/2
"""
~~~
这一行是让人看的,计算机看不懂。在python程序中(别的编程语言也是如此),要写所谓的注释,就是对程序或者某段语句的说明文字,这些文字在计算机执行程序的时候,被计算机姑娘忽略,但是,注释又是必不可少的,正如前面说的那样,程序在大多数情况下是给人看的。注释就是帮助人理解程序的。
写注释的方式有两种,一种是单行注释,用`#`开头,另外一种是多行注释,用一对`'''`包裹起来。比如:
~~~
"""
请计算:
19+2*4-8/2
"""
~~~
用`#`开头的注释,可以像下面这样来写:
~~~
#请计算:19+2*4-8/2
~~~
这种注释通常写在程序中的某个位置,比如某个语句的前面或者后面。计算机也会忽略这种注释的内容,只是给人看的。以`#`开头的注释,会在后面的编程中大量使用。
一般在程序的开头部分,都要写点东西,主要是告诉别人这个程序是用来做什么的。
~~~
a = 19+2*4-8/2
~~~
所谓语句,就是告诉程序要做什么事情。程序就是有各种各样的语句组成的。这条语句,又有一个名字,叫做复制语句。`19+2*4-8/2`是一个表达式,最后要计算出一个结果,这个结果就是一个对象(又遇到了对象这个术语。在某些地方的方言中,把配偶、男女朋友也称之为对象,“对象”是一个应用很广泛的术语)。`=`不要理解为数学中的等号,它的作用不是等于,而是完成赋值语句中“赋值”的功能。`a`就是变量。这样就完成了一个赋值过程。
> 语句和表达式的区别:“表达式就是某件事”,“语句是做某件事”。
~~~
print a
~~~
这还是一个语句,称之为print语句,就是要打印出a的值(这种说法不是非常非常严格,但是通常总这么说。按照严格的说法,是打印变量a做对应的对象的值。嫌这种说法啰嗦,就直接说打印a的值)。
是不是在为看到自己写的第一个程序而欣慰呢?
- 第零章 预备
- 关于Python的故事
- 从小工到专家
- Python安装
- 集成开发环境
- 第壹章 基本数据类型
- 数和四则运算
- 除法
- 常用数学函数和运算优先级
- 写一个简单的程序
- 字符串(1)
- 字符串(2)
- 字符串(3)
- 字符串(4)
- 字符编码
- 列表(1)
- 列表(2)
- 列表(3)
- 回顾list和str
- 元组
- 字典(1)
- 字典(2)
- 集合(1)
- 集合(2)
- 第贰章 语句和文件
- 运算符
- 语句(1)
- 语句(2)
- 语句(3)
- 语句(4)
- 语句(5)
- 文件(1)
- 文件(2)
- 迭代
- 练习
- 自省
- 第叁章 函数
- 函数(1)
- 函数(2)
- 函数(3)
- 函数(4)
- 函数练习
- 第肆章 类
- 类(1)
- 类(2)
- 类(3)
- 类(4)
- 类(5)
- 多态和封装
- 特殊方法(1)
- 特殊方法(2)
- 迭代器
- 生成器
- 上下文管理器
- 第伍章 错误和异常
- 错误和异常(1)
- 错误和异常(2)
- 错误和异常(3)
- 第陆章 模块
- 编写模块
- 标准库(1)
- 标准库(2)
- 标准库(3)
- 标准库(4)
- 标准库(5)
- 标准库(6)
- 标准库(7)
- 标准库(8)
- 第三方库
- 第柒章 保存数据
- 将数据存入文件
- mysql数据库(1)
- MySQL数据库(2)
- mongodb数据库(1)
- SQLite数据库
- 电子表格
- 第捌章 用Tornado做网站
- 为做网站而准备
- 分析Hello
- 用tornado做网站(1)
- 用tornado做网站(2)
- 用tornado做网站(3)
- 用tornado做网站(4)
- 用tornado做网站(5)
- 用tornado做网站(6)
- 用tornado做网站(7)
- 第玖章 科学计算
- 为计算做准备
- Pandas使用(1)
- Pandas使用(2)
- 处理股票数据
- 附:网络文摘
- 如何成为Python高手
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系