Full Circle中文杂志
——之Python教程(猴哥稍微修改版,欢迎修正)
Python 编程——第一部分
历数我们目前能使用上的计算机编程语言,可谓数以万计、多不胜数,但Python可以算得上是最易于学习的语言之一了。Python语言的发展史可以追溯 到上个世纪八十年代末,并逐步走向成熟。但尽管它被预装在大多数的Linux发行版之中,可每当人们想学习编程时,却往往忽视了这个最显而易见的编程语 言。我们现在暂且抛开华丽的图形化界面,先来讲讲如何编写一个最基础的命令行程序。再循序渐进,相信大家在读完本教程后,都能轻松的驾驭图形化界面编程。 纸上谈兵终觉浅,得知此事要躬行,让我们现在就开始设计一个Python程序,一起领略Python的世界!
第一个我们自己的程序
打开gedit一类的文本编辑器,让我们以下短短四行的代码,然后,我们再分析一下每行代码分别的意义和作用:
好了,就这么简单。保存文件hello.py到您喜欢的地方。但为了便于今后的调用,我建议您将它保存在Home分区的python_examples目 录里。麻雀虽小,五脏俱全,这几行代码虽短,却相当完整,这足以证明Python的易用性。在我们运行程序之前,需要在终端中切换到当前目录并输入输入 “chmod +x hello.py”赋予它可执行权限<;译者注:这是Linux的提权命令,其中的参数“x”意指给该文件赋予可执行权限。如下文的译注所 言,Linux是根据操作权限来判断是否为可执行文件。如果不执行该命令,则不能直接执行下一条命令>。现在让我们开始执行程序:
就这么简单,我们再分析一下每行代码所表示的意义:
这一行相对来说就难理解些了,这行代码可以分成"name ="和"ra w_input("W hat is your name?")"两部分。我们先来看第二部分,"ra w_input"函数将打印“W hat is your name?”到终端模拟器中,接着等待用户键入相关内容。再看看第一部分的"name ="将您所输入的内容定义为“name”变量的值。那么,什么是
变量呢?打个比方,尽管把变量当成一个盒子,您可以在随心所欲的在里面装自己想装的东西—— 鞋子、电脑零配件、纸张……总而言之,具体盒子装些什么,只要它能装得下,都问题不大。回到这个例子,您想将变量定义为什么,这都是您自己的事情,例如我 的输入的是"Ferd B urphel"。在这个例子中,Python只是简单地把它装进变量“name”这个“盒子”里,以备接下来使用。
我们再一次执行这个命令将内容打印到屏幕上,这次,我们将"Hello there,"和“name”变量中的内容,以及后面的感叹号这三个小部分并置在一起,并打印出来<;译者注:大家可能会注意到,"Hello there, "和"!"都有一组双引号,而“name”没有,是前两者是文本而后者是变量的缘故>。
好了,这个范例的讲解到此结束。
在进行下一个范例之前,我们花上点的时间,讨论研究一个稍复杂的问题。让我们打开一个终端模拟器,输入命令“python”。不出意外的话,返回的内容是这样的:
python教程字符串函数现在我们已经进入了Python的S hell中。各种各样的内容便可以直接在这里完成。首先,您应该注意到P
ython的版本号,我用的是2.5.2版,而且这里提到了如何获得相关的英文帮助。现在您可以大胆输入“print 2+2”<;译者注:这里的print可以省略,直接输入2+2亦可获得同样的结果>:
当你输入单词“print”时,你可能会有一些困惑了,如果把首字母改为大写会怎么样呢?Python解释器只会返回如下的结果:
这是因为“print”是一个已知的命令,但“Print”不是。因为Python在这方面极其严格,明白了这个问题非常重要。
好的,这个暂且搁置一旁,我们再更深层次的认识变量,输入"v ar =2+2",你会发现解释器没有返回任何结果,但是这并不能代表这个命令毫无用处。Python已经悄悄地在后台新建了一个叫“v ar”的变量,并赋值为 “2+2”。看看现在“v ar”这个“盒子”里面装了些什么:
好的,我们再在原有变量的基础上进行一些运算:
如果我们再次输入原有的命令"print v ar",我们得到的还是原来的赋值:
看到了吧,刚才的变量值毫无变化,还是“2+2”的值或“4”。如我们所说的那样,在刚才的讲解中,
我们选取的是相当简单的例程,现在,我们要向更加复杂的问题进军,但在此之前,我们再看一些关于
变量的例子:
在终端模拟器中输入:
我可以新建一个名为“strng”的变量,并赋值为“T he time has come f or all good men to come to the aid o f the party!”除非你再次改动它,我们的变量“strng”始终都是不变的。但我们再突发奇想,看看这个乘于4后会怎么样:
哦,结果就是这样。是不是在我们的意料之外?它反复打印出了四遍“strng”变量。W hy?因为解释器
只会将它理解为一个字符串,而非一个数值,你不可能对一个字符串执行数学运算。
我们再像以前的例子一样,赋值“s”为“4”:
我们想当然的认为变量s的值为整数4,但事实并非如此。实际上变量s的值是字符串形式的“4”。所以,当我们输入“print s *4”时,我们看到的是…
和以前的例子一样,解释器将它读作字符串,原因在于我们在为s赋值的时候,给“4”加上了引号。
我接着上面的例子输入“print type(s)”<;译者注:这条命令中的type函数是用于查看变量的类型,故输
出“str”,即S tring类型,字符串>,看看系统对此 的输出:
经确认,此时变量s的类型一个字符串类型。如果你确实想把它当作一个数值,可以输入以下代码:
看到了吧,我们已经把字符串“s”转换为一个数值,自然输出的是16。 好了到此为止,我们已经初步认识了“print”命令和“ra w_input”函数,变量的赋值以及一些字符串与数值之间的关系。 我们又向Python的奇妙世界迈进了一大步,我们输入"q uit()"<;译者注:其实也可以按快捷键Ctrl+D>,退出Python S hell。
循环范例
现在让我们探讨一下关于循环的问题。打开文本编辑器,输入以下代码:
确认你已经在"print cntr"的行首缩进了。这在Python中相当重要,因为它并不像其他编程语言一样,使用小、大括号来识别程序块。至于空多少格,要求并不苛刻。只要在 行首空了格就行,具体空多少格关系不大。但是如果有多行要缩进,一定要保证每行的空格统一。还有一点要切切记住,尽量不要使用T a b 键缩进。一般为了方 便,Python会将T a b翻译为四个空格后再进行解释,但这并不是完全通行的办法。所以要尽量养成好的编程习惯。然后保存以上代码 为"f or_loop.py"文件,然后运行它,看看发生了什么。
循环指在一序列的对象上递归使用队列中的每个项目。在我们的例程中,循环十次,并打印变量“cntr”的数值。如果要我们用平常的语言组织其思路便是“先将变量“cntr”赋值为0-10以内的整数,并打印出来。”先看到代码的"range(0,10)"这一部分,意思是从0开始增加,当达 到10时结束。
在运行前,可以先执行这条刚才的提权命令:
然后运行它:
(转下页)
正如我们所看到的,它开始工作了,但为什么它只是循环到9就结束了呢?大家可能会想:0-9已经足够有10个数字了,这不正是我们所让它做的吗?把 “range(0,10)”的10改为11,不就输出10个数了吗?可真的是我们所想的那样吗?我们应该透过现象看本质,让编程的原理一目了然。如果你确实要弄懂你到底让系统做些什么,这依然是很复杂的。如果你修改代码为"range(1,10)",它还是只输出1-9,总是在将要达到10时循环就停止 了。所以在循环中,包含我们给出的第一个数,但不包括最后一个。 在编程过程中,我们一定要注意语法的正确。总结刚才的代码,我们得出这样一条式子:"f or 变量 in range(第一个数,最后一个数):"其中的冒号表示,以下还有一个程序块,这在Python编程中相当重要,而且还不要忘记在下面的程序块中缩进。 我们再在上文的例子的基础上,把代码改为:
于是当循环结束后,在末尾出现了一个“结束语”:
记住,请在编程的时候再三确认程序块缩进的正确。关于这些,我们会在今后的教程中详细讲解。
好了,今天的讲解告一段落,下期我们将继续遨游在Python编程的奇妙世界中。同时,大家可能需要考虑使用新立得包管理器安装一个类似 于D r. Python或S P E这类的Python编辑器。
中文稿: 看完了刚才的Python教程,你是否开始举一反三了?你可能会把刚才例子中“print 'Hello. I am a python program.'”这行代码的“Hello”换成中文“你好”。可按照文中的方法输出,却无情地得到了错误信息。 这是怎么回事?原因在于如果在代码中含义非A S CLL字符就需要在开头加入代码“#
coding=ut f8”或“# coding: ut f8”。 好了,这一问题就这么简单,祝你能遨游在Python的奇妙世界中!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论