Python春节特训营07:和电脑玩猜数字游戏

本文介绍了一个使用Python编写的猜数字游戏,游戏的目标是猜出电脑随机生成的1到10之间的数字。通过输入猜测的数字,游戏会给出太大了或太小了的提示,直到猜中为止。文章详细解释了如何使用Python的random模块生成随机数,以及如何使用分支结构控制游戏流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第7天 和电脑玩猜数字游戏

在这里插入图片描述

猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩。今天我们就来用 Python 写一个猜数字游戏!

游戏规则

  • 一个玩家从1~10(或者1~100)之间选取一个随机数;
  • 另一个玩家尝试猜这个数字,如果猜的数太大则提示 “小了”,如果猜的数太小则提示 “大了”,直到猜对为止;
  • 谁猜的次数最少,谁就获胜。

在这里插入图片描述

为了实现这个游戏,我们需要解决两个问题:

  1. 如何生成一个随机数?
  2. 如何实现分支结构的控制流程?

生成随机数

Python 已经为我们准备好了 random 模块,使用它可以很方便地生成随机数。暂时先不用管模块是什么,我们先把它用起来!

在 Python 交互式环境中逐行输入以下代码:

import random
random.randint(1, 10)

第一行代码使用 import 命令导入 random 模块;第二行代码使用 random 模块中的 randint() 函数(它是 random integer 的缩写,表示随机的整数),生成一个 1~10 之间的随机数。

在这里插入图片描述

重复运行多次 random.randint(1, 10) 看看是否出现不同的随机数。(import random 在程序中只需要执行一次即可)

在这里插入图片描述

分支结构

现实生活有很多 “分支” 情况,比如家里的水管分支。

在这里插入图片描述

物种进化的分支结构促进了生物多样性。

在这里插入图片描述

同样,在程序的世界里,分支结构也无处不在,通过分支的组合,可以编写出很多有趣的程序。通常,分支结构通过条件判断来实现。

根据判断的情况,又可分为单项分支、双项分支、多项分支。三种结构的伪代码如下:

单项分支

if 条件:
    #执行的内容...

双项分支

if 条件:
    #执行的内容...
else:
    #执行的内容...

单项分支和双项分支就像开关一样,要么开,要么关。只不过单项分支只关心其中一种情况,双项分支两种情况都关心。

在这里插入图片描述

多项分支

if 条件:
    #执行的内容...
elif 条件:
    #执行的内容...
else:
    #执行的内容...

多项分支中可以有很多个 elif 分支。就像风扇开关那样,有不同的档位,每个档位都有不同的处理方式。

在这里插入图片描述

说明:

  • 分支结构的条件判断顺序是自上而下逐个分支进行判断的;
  • 在分支结构中,无论如何只会执行一个分支;
  • 当执行完一个分之后,分支结构就会结束,后面的分支是不会执行的。

猜数字游戏

有了前面的知识背景,我们就可以撸起袖子写代码了。

在这里插入图片描述

打开编辑器,输入下面代码,并保存为 guess.py 文件。

import random

target = random.randint(1, 10)
guess = int(input("1~10之间猜一个数字:"))

while guess != target:
    if guess > target:
        print(guess, "太大了")
    elif guess < target:
        print(guess, "太小了")

    guess = int(input("再猜一遍:"))

print("猜对了!{} 是正确的数字".format(guess))

执行 python3 guess.py 看看运行效果吧~

在这里插入图片描述

代码说明

  • 第一行代码导入 random 模块,以便于待会可以使用 randint 函数生成一个随机整数。
  • 生成的随机整数存放在变量 target 中。
  • 玩家输入的数字存放在变量 guess 中。
  • 接下来,判断 guess 和 target 的大小。

作业

(1)自己动手写一遍猜数字游戏的代码。

(2)运行猜数字游戏,想一想用什么策略可以猜得更快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿基米东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值