完成你人生的第一个Python程序

几乎每一种编程语言的入门开端都是“Hello world!”也就是编写最简单的程序来在屏幕上显示一句话,并通过这个过程了解编程实现的最基本逻辑。

1. 创建新程序

首先点击Python自带的开发环境IDLE,点击左上角的“File”(文件)并在下拉列表中点击“New File”(新建文件),就会弹出未命名的编辑框,如下图所示。在这个编辑框里输入代码就可以了,操作方式与Word是一样的。

2. 导入Pygame模块

所谓的模块或者库,可以理解为一种“工具包”。有些工具包在程序启动后会自动添加,有些则不会,要想使用一种工具,首先要导入这种工具所在的包。

举个例子,假如你正在做手工,需要剪刀来剪纸,并用蓝色彩笔在上边绘制图案。“红纸”来自“彩纸”工具包,“剪刀”来自“劳动工具”工具包,上课的时候老师已经把它们放在桌子上了,因此这个工具包就是“自带”的,不需要你来取。而“蓝色彩笔”来自“彩笔”工具包,它在教室的柜子里,需要你从柜子里把它取出来——这个取的过程就称为“导入”。

Pygame模块并不是自带的包,需要我们使用import命令手动导入,语句如下:

import pygame

同时,我们也要用到sys模块,因此也要导入它,两个模块可以写在一行,用逗号隔开即可:

import pygame,sys

导入程序后,是两个pygame的基础命令(Python通过行来自动区分每一条命令,如下所示)。可以看到我在命令的后边增加了井号(#)和中文注释——Python会自动将每一行井号后的内容忽略掉,也就是说,这些注释对程序的运行没有作用,只是为了便于阅读者理解此行程序的逻辑或意义。

from pygame.locals import*#导入pygame所有常量

pygame.init()#初始化pygame

这里对程序逻辑不做过多讨论,注释已提示了语句的作用——总之它们加上之前的import语句就是让pygame中必要的工具都可以使用。

2. 创建窗口

有了pygame工具包,我们就可以很容易地创建一个“窗口”——所有的图像、文字、动画都会显示在这个窗口中。我们通过“点”(.)来调用子模块,也就是pygame大工具包中的“小包”,然后再用“点”(.)来使用小包里的工具,像下面这样:

这里使用了pygame的子库display中的set_mode函数,并赋值给screen。所谓的“函数”或者“方法”可以理解为一种工具,你只要给它一些必要的材料(参数),它就可以按照特定的方式实现功能。“参数”放在括号里,上边语句之所以有两个括号,是因为里边的括号整个是一个参数——“(600,500)”是一个“元组”,此处不做过多解释,可以理解为一种“固定的数字组合”。600是创建窗口的宽,500是高,即这个函数的结果就是创建一个宽600高500的窗口。如果你想改变窗口的宽或高,只要调整这两个数字就可以了。

另一方面,我刚刚提到了“赋值”这个词,它通过等号(=)来实现,表示将两件事物“关联”起来。你可以理解为“命名”,也就是给等号右边的结果一个“名字”。在上边的例子中,我们将程序创建的窗口命名为“screen”。有了名字之后,如果我们想对这个窗口进行操作,只要提“screen”这个名字就可以了。

3. 字体、颜色和文本平面

如果你理解“子模块”、“函数”、“参数”、“赋值”这些词,下面的语句就很好理解。首先我们调用font子模块的Font函数创建一种字体,并命名为myfont。函数有两个参数,第一个表示字体样式(如“宋体”,使用“None”时表示使用默认的字体样式),第二个表示字体大小。创建后,当我们想显示文字时,只要通过myfont就可以给想输出的内容设置格式了。完成后的代码如下:

myfont=pygame.font.Font(None,60)#创建字体对象(默认Pygame字体,大小60)

下面我们来定义颜色。Python可以使用三个数字来表示颜色,这种表示方式称为“RGB”(Red红,Green绿,Blue蓝)。你大概听过三原色,道理是差不多的。每种颜色由深到浅分为256种程度,从0(“没有”)到255(“完全”)。如此一来,通过确定每个颜色的多少并将三种颜色“混合”起来,就得到了不同的颜色。颜色经常作为参数来调用,像前边屏幕的宽高那样,被组合成一个“数字组合”,比如“(33,33,33)”。很多时候,为了方便,我们会想给特定的颜色(即数字组合)一个名字——这样在后续需要这种颜色当参数时,只要调用名字就可以了,比输入三个数字要方便很多(注意此处的三个数字不必要加括号)。

white=255,255,255#定义颜色变量(白色)

blue=0,0,255#蓝色

最后我们来创建一个“文本平面”,并将文本的内容放在平面上。这里“文本平面”可以理解为一块“布”:虽然有了一个窗口,但是不能直接把文字放上去,我们需要拿一块布,在上边将文字写好,然后再把这块布蒙在窗口上。代码如下:

textImage=myfont.render("Hello Pygame", True, white)#创建文本平面(内容,抗锯齿字体/提高质量,颜色)

此处调用了myfont的render函数(或称为方法)。myfont是我们刚生成的字体,Python的模块生成的结果(即所谓的“对象”)会有一些对应的操作方式,即方法或函数。此处相当于将“内容”以抗锯齿字体及白色的形式传给myfont并生成文本平面。“抗锯齿”不多做解释,总之为True时会提高显示的质量。

4. 循环

Python中用“while True:”来创建一个无限的循环:除非有特定的结束命令,冒号内的程序就会不断地执行下去。很多人都知道,动画本身并不是真正“连续”的,它是通过“图片”快速切换(比如每秒24次)来实现的。其实我们在屏幕上看到的动态的游戏或应用也是由一系列静态画面组成的。无限循环的作用就是让画面一直显示下去——它是显示的核心。另一方面,我们在每次画面做切换前通过一些逻辑对画面内容进行调整,就形成了运行的游戏或应用。

比如说,我们设置如果按下“1”键,每次切换前人物会向上移动1个像素,而每秒是30次切换。如此一来,当我们按下1时,人物看上去就是以每秒30个像素的速度向上方移动了。

我们的程序如下,注意循环内的内容要有四个空格的缩进,以确保Python知道哪些是属于循环的内容(实际输入时,“while True: ”被输入后回车换行,下一行会自动缩进,很方便):

while True:

if event.type in (QUIT, KEYDOWN):#若事件为×或按下任何键则退出程序

sys.exit()

screen.fill(blue)#设置背景颜色/清除原屏幕内容

screen.blit(textImage, (100,100))#绘制文字(文本平面,位置)

循环内后三行命令的结构应该可以自己理解了。第一行相当于先给窗口蒙一块“背景布”,然后将刚才的文字平面(只有文字,即其背景是“透明的”)“盖在”背景布上,文字的位置为距左边框100(第一个数字),距上边框100(第二个数字)。最后一行将结果输出给显示屏——即让用户看到结果。

5. 运行程序

现在我们已经完成了所有代码,你的编辑框应该类似于下图:

此时,点击编辑框上边的“Run”并在下拉列表里选择“Run Module”,就可以运行程序了。不过运行前必须保存程序,否则会弹出提示,如下图所示。

点击“确定”运行程序,若是新程序则要先设置好文件名并选择保存。运行后的画面如下:

保存后的文件后缀为“.py”,如果直接点击这个文件也可以运行程序并得到相同的显示结果。

另外,通过上述两种方式得到显示窗口时会先显示黑色的后台运行框,之后再显示我们想要的结果。如果想点击文件只显示想要的结果,将后缀改为“.pyw”就可以了。

本节课的内容就到这里。恭喜!你已经完成了第一个Python程序!不是很难,是吧?

不过就显示一行字确实有点无聊,下节课我们玩点好玩的——在屏幕上画出各种各样的图形~

(本文为原创文章,欢迎分享,转载请与作者联系,谢谢!)

阅读后有何感想,请留言给我吧~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180911G1VIBZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券