首页 > 寺庙

Python基础背单词游戏|

Python基础背单词游戏

Hangman直译为“吊死鬼”,是一个猜单词的双人游戏。由一个玩家想出一个单词或短语,另一个玩家猜该单词或短语中的每一个字母。第一个人抽走单词或短语,只留下相应数量的空白与下划线。

Python基础背单词游戏|

想字的玩家一般会画一个绞刑架,当猜字的玩家猜出了短语中存在的一个字母时,想字的玩家就将这个字母存在的所有位置都填上。

如果玩家猜的字母不在单词或短语中,那么想字的玩家就给绞刑架上小人添上一笔,直到7笔过后,游戏结束。

文字有点枯燥,让我们看一个玩法示例

今天借用猜单词游戏的Python代码,要讲解Python中的几个重要概念:

1.行和缩进

2.认识变量

3.流程控制

话不多说,我们来看下。

1.行和缩进:

在Python中,可以粗略的把行分为两种。

1.1 首先是“物理行”,顾名思义文件中的每一个肉眼可见的行都算作一个物理行。

1.2 逻辑行:我们的一个业务逻辑-即一个赋值/判断或者其他任何一件事都称为一个逻辑。一般来说,Python中一个物理行就对应一个逻辑行。但是也有例外:①空行 ②用分号隔开的逻辑行

这里我们可以先记住最常用的逻辑,“每一个肉眼可见的“物理行”,就对应一个逻辑”

1.3 缩进

Python中的缩进意味着一个新的“代码块”,我们可以粗略的理解为一个代码段落。

话说回来,因为Python依靠缩进(4个空格或者1个制表符)来识别代码块。所以在每一行的开头要注意检查空格与否,以及有几个空格(空格和制表符的混用也会报错)

2.变量

变量的定义是计算机语言中能储存计算结果或能表示值抽象概念。想象一下,在猜单词的游戏中我们最开始就可以设计几个变量。来存储游戏过程中的几个信息

missedLetters:当我们猜错一个字母的时候,当然不希望在同一个坑上浪费一次机会。所以这里设置变量来记录所有猜错的字母

correctLetters:相对的,猜中的字母需要另一个变量来记录

secretWord:所有输入的字母都要和“谜底”进行比对,所以把它也存成一个变量来供计算机调取

gameIsDone:游戏完成标志这个变量的意义在于,我们希望游戏结束时-程序能够知道这个信息。我们可以在这个节点设计“重玩游戏”或者猜对以后的奖励事件等等

3.流程控制

流程控制,通俗的说流程控制是程序运行的基础,流程控制决定了程序按照什么样的方式去执行

以猜单词的游戏为例,为了存储游戏中几个需要记录的结果,先要进行“变量初始化”。

这时候就运用到了程序世界里的第一种流程-顺序执行。先创建HANGMAN_PICS变量,而后是words。

实际上,如果我们的业务逻辑可以精确到唯一的途径。那么代码就仅会用到顺序

但是现实问题总是有很多分叉选项,以猜单词为例。需要用到分支控制(if…else)来屏蔽掉输入多个字母/非字母的情况,来保证程序不会因为错误的输入不知所措

另外,屏蔽掉错误输入之后。这里给玩家机会重新进行这次尝试(可以想象成现实游戏中,我们会出代表26个字母的牌。这样的话重复输入一个字母或者输入多个字母的场景并不会出现。故而,在设计游戏程序的时候。这种错误不会扣掉一次机会)。

重新尝试的代码/逻辑和第一次并没有任何区别,所以使用了循环控制的方法复用了这段逻辑。相应的,在分支控制之中使用return关键字设计了这段循环的出口(return会终止循环)

最后,当我们了解了Python的基本规则后。可以尝试读懂整个游戏逻辑。在工作之中也是如此,读懂范例或者前辈的代码。加以适当改造,可以让学习过程更加高效。

练习思路

后台回复“背单词”获得完整游戏代码,尝试对代码进行改造。例如:

1.备选单词读取txt文件

2.编写一个简单的游戏界面(命令行打包/GUI)

3.对规则进行改造,例如balloon。

作者: Testfan布尔

出处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

十五个Python经典案例 学会这些 Python基础已过关

今天给大家搜集了十五道Python的经典案例,希望各位都能学会!不懂得大家可以在加群在群里发消息问问题,想要资料的也自取!

猜数字

1到4能组成多少个互不相同且不重复数字的三位数?分别是?

分析:可填在百位、十位、个位的数字都是4。组成所有的排列后再去 掉不满足条件的排列。

程序源代码:

公司发放的奖金的计算

分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

程序源代码:

一个整数加上100后是一个完全平方数,再加168又是一个完全平方数,请问该数是多少?

分析:

程序源代码:

输入*年*月*日,判断这一天是这一年的第几天?

分析:以3月5日为例,先把前两月的加起来,再加上5天就是本年的第几天,特殊情况下闰年且输入月份大于2时需考虑多加一天:

程序源代码:

以上实例输出结果为:

输入三个整数x,y,z,把这三个数由小到大输出

分析:我们把最小数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,再用x与z进行比较,当xz则将x与z的值进行交换,这样能使x最小。

程序源代码:

斐波那契数列

分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、123……。

在数学上,费波那契数列是以递归的方法来定义:

程序源代码:

方法一

方法二

以上实例输出了第10个斐波那契数列,结果为:

55

方法三

以上程序运行输出结果为:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

将一个列表的数据复制到另一个列表中

程序分析:使用列表[:]

程序源代码:

以上实例输出结果为:

[1, 2, 3]

输出 9*9 乘法口诀表

分析:分行与列考虑,共9行9列,i控制行,j控制列。

源代码:

以上实例输出结果为:

暂停一秒输出

分析:使用 time 模块的 sleep() 函数

程序源代码:

以上实例输出结果为(会有停顿效果):

1 a2 b

暂停一秒输出,并格式化当前时间

源代码:

以上实例输出结果为:

2015-10-21 17:48:402015-10-21 17:48:41

十有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

程序源代码:

以上实例输出结果为:

十判断101-200之间有多少个素数,并输出所有素数

分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

代码:

以上实例输出结果为:

十打印出所有的水仙花数

程序源代码:

以上实例输出结果为:

153370371407

十将一个正整数分解质因数

程序源代码:

以上实例输出结果为:

90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5

十利用条件运算符的嵌套来完成学习成绩计算

学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

分析:(ab)?a:b这是条件运算符的基本例子。

代码:

以上实例输出结果为:

输入分数:8989 属于 B


|Python基础背单词游戏

        

Python基础背单词游戏|
  • 什么是编程课程|
  • 什么是编程课程| | 什么是编程课程| ...

    Python基础背单词游戏|
  • 编程语言python可以做什么 个让你不得不学习的理由|
  • 编程语言python可以做什么 个让你不得不学习的理由| | 编程语言python可以做什么 个让你不得不学习的理由| ...

    Python基础背单词游戏|
  • Python面向对象|
  • Python面向对象| | Python面向对象| ...