你曾经想知道计算机是如何工作的吗?尽管我们不能在一篇文章里面教会你所有的东西,但是可以通过学习如何写出你自己的程序来获得一个良好的开端。在这篇Python教程中,你将会学到计算机编程的基础知识,使用对新手来说最棒的编程语言之一。
什么是编程?
尽可能简单的讲,编程是编写代码,命令计算机去完成某项任务的艺术。这里讲的某项任务,可以是简单的两数相加,或是像把飞船送入轨道这样的复杂任务!
一个程序里面,最小的组成部分被称作语句(statement)——代表了对计算机做出的一条指令。

当你完成了自己的程序后,编译器会把你写的代码转换为机器码——计算机语言的最底层。机器码指示中央处理器工作(central processing unit),或者叫做CPU,这里面包含一些诸如加载某个值或是做数学运算的步骤。
如果你曾经听过某人说:“我编译了我的程序”,那代表他们已经把代码转换成了机器码。
为什么不直接写机器码呢?原因很显然,程序码具有可读性。下面比较了Python版的程序和其对应的机器码:
Python代码
print "Hello, World!"
...
"Hello, World!"
对应的机器码
c7 3c 2a 3c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c
28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c
2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b
2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c
3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28
5c 2a 2b 2a 5c 3c 28 5c 2a 2b 2a 5c 3c 28 5c 2a
2b 2a 00 00 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 64 48 65 6c 6c 6f 2c 20 57
6f 72 6c 64 21 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...
"Hello, World!"
很明显为什么你不会想要直接编写机器码了。但是,确实有一些人会去写机器码——萝卜白菜各有所爱嘛!
上面我们忽略了一个小问题。Python是一种解释型语言;你并不会像上面我们暗示的那样,把它直接编译成为机器码。
实际上是这样的,Python使用一个叫做解释器的东西。解释器是另外一个程序,把代码编译成叫做二进制码的东西,然后再程序运行的时候再转换成机器码。你等下会学到更多和解释器有关的内容。
当你最终运行程序的时候,你刚编译的那些机器码会被加载到内存中,CPU会读取它并执行程序。
然而,在刚开始学习使用Python编程的时候,你并不需要完全理解编译器的内部工作原理,但是你必须确保你已经安装了Python。
准备开始
如果你在使用Mac,你走运了——Python已经预装在Mac中了。在Mac中使用Python解释器,打开**终端**(**Terminal.app**);你可以再应用程序/工具文件夹下找到它,或者在Spotlight中输入,像这样:

打开终端后,输入下面的指令然后按下回车:
你会看到类似下面这样的结果:
注意:如果你没有得到上面的结果,把输出结果复制到论坛,我们会尽力帮助你的!**
Windows
在Windows上,这一过程稍微有点复杂——但是还是要说,大部分的东西还是在Windows!上:]
首先,在浏览器中访问Python官网的下载页面。

滚动页面跳过所有的Python 3.x.x版本,直接到Python 2.7.x。下载Windows安装包(Windows installer),运行,按照指引来做,接受默认的选项。
一旦安装包安装完成,你就可以启动它了。
在Windows Vista或者Windows 7上,这样启动:
1. 点击左下角的开始菜单。
2. 点击所有程序
3. 打开Python文件夹
4. 双击IDLE解释器
如果你使用Windows 8,这样启动:
1. 点击左下角开始菜单
2. 在搜索框中输入IDLE
3. 点击IDLE(Python GUI)

不管你是如何启动解释器的,你应默认的文本编辑器打开它,
一旦你的Python文件中有了一些内容后,你就可以在终端中输入`python guess.py` 来执行它。
Windows
在Windows系统下,点击IDLE中的文件按钮(File) 找到新建文件(New File)。你会发现一个文本编辑器映入眼帘,你可以在里面输入你的新程序。

再次点击文件按钮,选择保存。把文件名命名为`guess.py` 然后把它保存在你想要保存的地方。
运行你的程序,在菜单中选择RunRun,就像这样:

游戏时间!
猜谜游戏将会生成一个随机数,然后在一个循环中,反复询问游戏者他们的猜测结果。如果用户猜中,则结束循环;否则程序会提醒用户他们的猜测是过高还是过低并继续询问结果直到猜中。
import random
number = random.randint(0, 100)
上面这段程序会导入随机数模块,然后生成一个0到100之间的随机数并把它储存在变量number中。
接下来,你需要询问游戏者他们的答案。把这些代码加到程序的后面:
guess = raw_input("Guess the Number: ")
这段代码,和你猜的一样,让用户输入它们的答案并且把它保存在guess变量中。记住,现在这个变量是一个字符串,你需要把它转换为整型。
在程序中添加下面的代码,就加在上面的代码后面:
这个代码把用户输入的字符串转换为整型然后赋值给guess_int变量。
下面你需要比较用户猜测的值和随机数的大小。
在程序结尾添加下面的代码:
if number > guess_int:
print "Too low!"
if number < guess_int:
print "Too high!"
if number == guess_int:
print "You got it!"
点击菜单按钮的RunRun Module或是在终端中输入`python guess.py` 来运行程序;当程序提示你的时候,输入数字。发生了什么?程序在你输入数字后会把结果显示到屏幕上然后就停止了。哎呀!
你想让程序循环的询问你结果直到你猜中。你需要用一个running变量来添加这个功能。
running会被用在while循环中来控制你程序的循环。当用户输入正确的答案,程序会把running变量赋值为False然后while就会停止。
在你让用户输入结果的前面添加下面这段代码:
while running:
guess = raw_input("Guess the Number: ")
...etc
下面,缩进剩下的代码到同一层,这样while循环才能认出它们是循环中的代码块。
最后,你需要添加用户获胜时,把running赋值为False的语句:
if number == guess_int:
print "You got it!"
running = False
确保if下面的两行代码被缩进两层。
运行你的程序,现在再试一下。你需要多少回才能猜中正确答案?
你最终的程序看上去是这个样子的:
import random
running = True
number = random.randint(0, 100)
while running:
guess = raw_input("Guess the Number: ")
guess_int = int(guess)
if number > guess_int:
print "Too low!"?
if number < guess_int:
print "Too high!"
if number == guess_int:
print "You got it!"
running = False
恭喜你——你已经写出了你的第一个Python程序。别不是那么难,对吧?
从这里,到何方?
现在你已经完成了Python新手教程,我打赌你一定渴望一次挑战。尝试在你的程序中添加如下功能:
- 猜测次数统计
- 更大的随机数产生范围
- 一个电脑操控的游戏对手
如果你想要做一个稍微复杂一点的游戏,请看我的另一个教程:《Beginning Game Programming for Teens with Python》
|