【Python】100以内猜数游戏(含判断)

猜数游戏

猜数游戏是一个古老的密码破译类、益智类小游戏,通常由两个人参与,一个人设置一个数字,一个人猜数字,当猜数字的人说出一个数字,由出数字的人告知是否猜中:若猜测的数字大于设置的数字,出数字的人提示“很遗憾,你猜大了”;若猜测的数字小于设置的数字时,出数字的人提示“很遗憾,你猜小了”;若猜数字的人在规定的次数内猜中设置的数字,出数字的人提示“恭喜,猜数成功”。

本任务要求编写程序,实现遵循上述规则的猜数字游戏,并限制猜数机会只有5次。

任务目标

  • 掌握while循环的使用

  • 了解break的基本用法

  • 了解导入random模块的方式

任务分析

本任务的猜数字游戏是针对1-100以内的整数数字进行猜测,猜测的数字由Python中random模块中randint()方法随机产生;因为规定玩家有5次机会,所以可以使用for循环与range()函数控制循环次数,在进行猜数过程中还需要对玩家输入的内容进行判断,这里可以使用if-elif语句判断,如使用isdigit()方法判断玩家输入的内容是否是数字;使用比较运算符判断玩家输入的数字是否符合在规定范围内;判断玩家输入的数字是否与产生的随机数相等,如果相等输出“恭喜你用了x次猜对了”,当输入次数达到5次时,则输出“很遗憾,x次机会已用尽,游戏结束,答案为y”。根据以上分析可整理出以下实现思路:

(1)使用import语句导入random模块

(2)使用random模块中的randint()方法生成一个100以内的随机整数

(3)使用for循环控制玩家猜测的次数

(3)使用input ()函数接收玩家输入的数据

(4)判断输入数据的数据是否为数字

(5)判断输入的数据是否在指定范围内

(6)判断玩家输入的数据是否与生成的随机数一致,如果一致使用break语句跳出循环

(7)如果玩家输入的数据与生成额随机数不一致,给出相应提示

(8)当玩家猜测5次后,仍没有猜对,结束程序

import random
answer = random.randint(1, 100)
for i in range(5):
    # 使用while循环接收玩家输入的数据,直到输入符合要求的数字为止
    while True:
        guess = input("请猜一个1-100的整数:")
        if not guess.isdigit():
            print("输入的不是数字,请重新输入!")
        elif int(guess) < 1 or int(guess) > 100:
            print("输入的数字不在指定范围内,请重新输入!")
        else:
            guess = int(guess)
            break
    if guess == answer:
        print(f"恭喜你用了{i+1}次猜对了!")
        break
    if guess < answer:
        print("很遗憾,你猜小了")
    else:
        print("很遗憾,你猜大了")
else:
    print(f"很遗憾,{i+1}次机会已用尽,游戏结束,答案为{answer}。")
你想让我写一个游戏,是吗?那我就给你写一个吧! 首先,我们需要生成一个随机,让玩家来测这个。我们可以使用 Python 的 random 模块来生成一个 110 之间的随机整: ```python import random answer = random.randint(1, 10) ``` 接下来,我们需要让玩家来测这个。我们可以使用一个 while 循环,让玩家最多 5 次: ```python guesses_left = 5 while guesses_left > 0: # 让玩家输入测的 guess = int(input("请一个 110 之间的整:")) # 判断测的是否正确 if guess == answer: print("恭喜你,对了!") break else: print("错了,再试一次。") guesses_left -= 1 ``` 在每次测之后,我们需要判断玩家是否对了。如果对了,就输出恭喜信息并结束游戏;如果错了,就输出提示信息并让玩家再次测。 如果玩家用完了 5 次机会还没有对,我们就需要告诉他正确答案是什么: ```python if guesses_left == 0: print("很遗憾,你没有对,正确的答案是", answer) ``` 最终的代码应该是这样的: ```python import random answer = random.randint(1, 10) guesses_left = 5 while guesses_left > 0: # 让玩家输入测的 guess = int(input("请一个 110 之间的整:")) # 判断测的是否正确 if guess == answer: print("恭喜你,对了!") break else: print("错了,再试一次。") guesses_left -= 1 if guesses_left == 0: print("很遗憾,你没有对,正确的答案是", answer) ``` 运行这个程序,你应该可以在命令行中玩这个游戏了。如果你想让程序更加友好,可以给玩家输出更详细的提示信息,例如告诉他还剩下多少次机会等等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值