Python 作业题1 (猜数字)

题目

你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置都不对,则会提示“Bagels”。你有10次猜数字机会

花十分钟,来实现一下吧! 输出结果如下:
在这里插入图片描述

请勿偷看答案哟!


为了用Python实现这个猜数字游戏,我们可以遵循以下步骤:

  1. 随机生成一个三位数(例如100到999之间)。
  2. 允许用户进行最多10次猜测。
  3. 根据用户的猜测,使用“Pico”,“Fermi”,“Bagels”作为反馈。
  4. 如果用户在10次以内猜中数字,则宣布胜利。

下面是实现这个游戏的Python代码:

import random

def guess_number_game():
    target_number = random.randint(100, 999)  # 生成目标数字
    guesses_left = 10  # 初始化猜测次数
    guess = None

    print("欢迎来到猜数字游戏!")
    print("我已经想好了一个100到999之间的数字。")
    print("你有10次机会来猜这个数字。")

    while guesses_left > 0:
        guess = input("请输入你的猜测(三位数): ").strip()

        # 检查输入是否有效
        if not guess.isdigit() or len(guess) != 3 or int(guess) < 100 or int(guess) > 999:
            print("无效的输入,请输入一个有效的三位数。")
            continue

        guess = int(guess)

        pico = 0  # 猜对数字但位置不对的数量
        fermi = 0  # 猜对数字且位置对的数量

        for i in range(3):
            if guess // 10**(2-i) % 10 == target_number // 10**(2-i) % 10:
                if i == target_number.count(guess // 10**(2-i) % 10):
                    fermi += 1
                else:
                    pico += 1

        if fermi == 3:
            print("恭喜你!猜对了!")
            break
        elif pico > 0:
            print("Pico")
        elif fermi > 0:
            print("Fermi")
        else:
            print("Bagels")

        guesses_left -= 1
        if guesses_left == 0:
            print(f"很遗憾,你的机会用完了。正确答案是:{target_number}")

if __name__ == "__main__":
    guess_number_game()

注意

  • 代码中,我们使用了//运算符来进行整除,以及%运算符来找到每一位上的数字。
  • count()方法用于检查在目标数字中某个数字出现的次数,这有助于确定是否猜对了位置。
  • 如果用户输入的不是一个有效的三位数,程序会提示用户重新输入。
  • 当用户猜对全部数字且位置也正确时,游戏结束并宣布用户胜利。如果用户在10次内未能猜中,则显示正确答案。
  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Aaron_945

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

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

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

打赏作者

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

抵扣说明:

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

余额充值