Python快速编程小案例——猜数字

提示:(个人学习),案例来自工业和信息化"十三五"人才培养规划教材,《Python快速编程入门》第2版,黑马程序员◎编著


猜数游戏是一种经典的密码破译类益智游戏,通常由两个人参与。一个人在心中设定一个数字,另一个人尝试猜测这个数字。在每次猜测后,设定数字的人会根据猜测结果给出提示:"很遗憾,你猜大了"、"很遗憾,你猜小了"或者"恭喜,猜数成功"。这种游戏不仅考验玩家的逻辑推理能力,还能带来不少乐趣。

一、实例目标

通过完成本实例,你将了解、熟悉或掌握以下知识或技能:

  1. while 循环的使用
  2. break 的基本用法

二、实例分析

在这个案例中,我们将实现一个猜数字游戏,游戏的目标是猜测一个1到100之间的整数。玩家通过 input() 函数输入猜测的数字,并且只有5次猜测机会。为了控制循环次数,我们将使用 while 循环和 range() 函数。在猜数过程中,我们需要对玩家的输入进行判断,使用 if-elif 语句进行条件判断,使用 isdigit() 方法判断输入是否为数字,并使用比较运算符确保输入的数字在1到100的范围内。如果玩家猜中了数字,我们将使用 break 语句跳出循环。

三、代码实现

python 复制代码
import random

# 生成一个1到100之间的随机数
guess_num = random.randint(1, 100)

# 给玩家5次猜测的机会
for frequency in range(1, 6):
    number = input("请输入第" + str(frequency) + "次猜测的数字: ")
    if not number.isdigit():
        print('请输入一个正确的数字')
    elif int(number) < 0 or int(number) > 100:
        print("请输入1-100范围的数字")
    elif int(number) == guess_num:
        print("恭喜你用了{}次猜对了".format(frequency))
        break
    elif int(number) < guess_num:
        print("很遗憾,你猜小了")
    else:
        print("很遗憾,你猜大了")

# 如果玩家5次都没有猜对,告诉他们正确答案
if frequency == 5:
    print("很遗憾,5次机会已用尽,游戏结束。答案为{}".format(guess_num))

四、运行结果

五、代码解释

  1. 导入random模块 :我们使用random.randint(1, 100)来生成一个1到100之间的随机数,这个数字就是玩家需要猜测的数字。

  2. 设置猜测次数 :我们使用一个for循环来给玩家5次猜测的机会。

  3. 获取用户输入 :使用input()函数获取玩家的猜测,并使用isdigit()方法检查输入是否为数字。

  4. 判断玩家输入:如果玩家的输入是数字,并且位于1到100之间,我们将其与生成的随机数进行比较,并给出相应的提示。

  5. 结束游戏:如果玩家在5次尝试内猜对了数字,程序会恭喜玩家并结束游戏。如果5次尝试后玩家仍未猜对,程序会显示正确答案。

六、结语

通过这篇文章,我们介绍了如何使用Python编写一个简单的猜数字游戏。这不仅是一个有趣的编程练习,也是一个了解基本编程概念的好机会。你可以在此基础上添加更多的功能,比如设置不同的难度级别,或者增加一个计分系统,来使游戏更加有趣和具有挑战性。


!仅供参考

相关推荐
秋田君9 小时前
QT_一个UDP通信程序(单播+广播)
开发语言·qt·udp
a-6269 小时前
三维重建的步骤-1(采集的是环绕物体均匀旋转一圈的视频)
python·pycharm·三维重建·metashape
qq_22589174669 小时前
基于Flask的空气质量监测与预测分析系统
开发语言·后端·python·信息可视化·django·flask
lhldsg9 小时前
社区健身系统开发实战:从需求分析到落地部署全流程指南
java·开发语言·小程序·需求分析
李高钢10 小时前
C# WPF Prism 进阶(三):导航(Navigation)深入
开发语言·c#·wpf
冯汉栩10 小时前
Swift Control DashLineView(虚线)
开发语言·ios·swift
覆东流10 小时前
4.Java运算符与表达式
java·开发语言·后端
Dxy123931021610 小时前
Python XPath position() 完整使用指南,避坑合集(lxml适用)
前端·javascript·python
SomeB1oody10 小时前
【RustyML入门】5.1. 回归指标
开发语言·后端·机器学习·rust·教程
AndrewHZ10 小时前
图像处理入门009 | OpenCV 图像读取与显示:imread/imshow 全解析
图像处理·python·opencv·算法·计算机视觉·图像显示