Python基础背单词游戏
Hangman直译为“吊死鬼”,是一个猜单词的双人游戏。由一个玩家想出一个单词或短语,另一个玩家猜该单词或短语中的每一个字母。第一个人抽走单词或短语,只留下相应数量的空白与下划线。
想字的玩家一般会画一个绞刑架,当猜字的玩家猜出了短语中存在的一个字母时,想字的玩家就将这个字母存在的所有位置都填上。
如果玩家猜的字母不在单词或短语中,那么想字的玩家就给绞刑架上小人添上一笔,直到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经典案例 学会这些 实例变量 控制变量