Python while循环实现猜字谜游戏

简介: ​python的while更多地应用于程序的一般性循环,而不是遍历迭代对象。与其他的计算机编程语言不同,python没有do...while这样的while循环。接下来,我们将详细介绍一下Python的while循环,并用寥寥数行代码开发一个小游戏,作为实例。

​python的while更多地应用于程序的一般性循环,而不是遍历迭代对象。与其他的计算机编程语言不同,python没有do...while这样的while循环。接下来,我们将详细介绍一下Python的while循环,并用寥寥数行代码开发一个小游戏,作为实例。

while循环

while循环需要一个启动循环和终止循环的条件判断,这二者通常为同一个,其一般形式为:

while condition:
    do something

while循环猜字小游戏

这里我们用寥寥数行python代码开发一个猜字小游戏,因为缩进比较多,建议大家使用jupyter notebook编辑器或其它自带缩进功能的集成开发环境IDE。

In[1]:md = int(input('请输入谜底:'))
start = 0
end = 100
inp = int(input('从%s到%s猜一个数字:' %(start, end)))
while start <= inp <= end:
    if inp < md:
        start = inp
        inp = int(input('从%s到%s猜一个数字:' %(start,end)))
    elif inp > md:
        end = inp
        inp = int(input('从%s到%s猜一个数字:' %(start,end)))  
    else:
        print('恭喜你中奖了')
        break
————————————————————————————————
请输入谜底:660100猜一个数字:88088猜一个数字:222288猜一个数字:333388猜一个数字:683368猜一个数字:555568猜一个数字:66
恭喜你中奖了

示例解析

上面的实例是非常典型的while和break的联合应用。

1、intput()函数前面为什么要加一个Int()函数呢,因为input()所获取的输入值都是str字符串类型的数据,必须将其进行类型转换,否则无法进行小于大于等于之类的比较运算。

2、intput()函数用于获取输入值,这个函数的前面为什么要加一个Int()函数呢,因为input()所获取的输入值都是str字符串类型的数据,必须将其进行类型转换,否则无法进行小于大于等于之类的比较运算。

3、上面实例中的代码按照从上到下的顺序执行,先给游戏设定所要猜测的数字范围,分别用start和end两个变量表示,这个时候还不是限定范围,只是两个变量而已,但程序执行到了while的时候,开始根据start <= inp <= end这个条件进入循环,这个时候,start和end才变成游戏意义上的限定范围。

4、因为我们的游戏需要限定的范围是越来越小的,如上面的游戏中,我们第一次猜了88,大于谜底的66,则限定范围变成0到88,第二次猜猜测的数字为22,小于谜底的66,则限定范围变成22到88,以此类推。所以,在while的循环之中,我们要确保两个方面的功能能够完成,一是限定范围不断变化,二是限定范围变化的同时不影响到while循环的条件,所以,我们需要对start变量和end变量在循环之中不断根据输入值进行赋值,如start=inp,end=inp。

5、当我们猜到了谜底,while循环就结束,这里我们并不是根据条件判断来终止循环,而是用break。

游戏代码优化

我们还可以将上面的小游戏进行优化一下,就是将谜底用随机数,而不是用认为输入的方式。

In[1] import random #导入随机数的库
md = random.randint(0,100) #在0到100之间取一个随机的整数
... #下面的代码一样
————————————————————————————————
从0100猜一个数字:66066猜一个数字:22022猜一个数字:101022猜一个数字:111122猜一个数字:151522猜一个数字:171722猜一个数字:18
恭喜你中奖了

注意:这个游戏中有一个bug,大家知道是什么吗?就是当我们输入的数字在数字的限定范围之外的话,程序会终止。那要怎么改呢?大家可以自己去尝试一下。很简单。
原文python的while循环,游戏实例
免责声明:内容仅供参考,不保证正确性!

相关文章
|
1月前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
26 2
|
1月前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
33 2
|
1月前
|
Python
Python 中,循环判断
Python 中,循环判断
50 1
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
37 4
|
2月前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
71 5
|
2月前
|
Python
Python 循环语句的高级应用与深度探索
本文深入探讨了Python中循环语句的高级应用,包括`for`循环遍历字典获取键值、同步遍历多个序列,以及`while`循环结合条件判断和异常处理。通过嵌套循环实现了矩阵乘法,并介绍了如何优化循环以提升程序性能。示例代码展示了这些技术的实际应用。
53 15
|
2月前
|
数据安全/隐私保护 Python
Python循环语句
【10月更文挑战第7天】
|
2月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
62 1
|
3月前
|
Python
python编写下象棋游戏|4-14
python编写下象棋游戏|4-14
|
3月前
|
Python
Python 中如何循环某一特定列的所有行数据
Python 中如何循环某一特定列的所有行数据
37 2
下一篇
DataWorks