第20天:完善猜数字游戏 & 增加功能

0 阅读3分钟

学习内容

  • 综合运用条件判断和循环
  • 添加游戏统计功能(猜测次数、最高分)
  • 处理非法输入(如输入非数字)

练习任务

  1. 为猜数字游戏增加 猜测次数计数,并在猜中后显示“你共猜了 X 次”。
  2. 增加 难度选择:简单(1-50)、中等(1-100)、困难(1-200)。
  3. 增加 多次游戏 功能:一轮结束后询问“是否继续游戏?(y/n)”,若输入 y 则开始新的一轮。
  4. (可选)添加输入验证,确保用户输入的是有效整数。

为猜数字游戏增加 猜测次数计数,并在猜中后显示“你共猜了 X 次”。

创建变量counts=0用来计数,每猜一次,counts+1.

import random
num=random.randint(1,100)
counts=0
while True:
    yh_num=int(input("请输入你猜测的数字:"))
    if yh_num>num:
        print("猜大了")
        counts+=1
    elif yh_num<num:
        print("猜小了")
        counts+=1
    elif yh_num==num:
        counts += 1
        print(f"恭喜你,猜对了。你总共猜了{counts}次")
        break

image.png

增加 难度选择:简单(1-50)、中等(1-100)、困难(1-200)。

用户输入选择的难度,使用if进行判断,并生成相应范围的随机数

import random

counts=0
hard=input("请选择难度等级(简单,中等,困难):")

if hard=="简单":
    num = random.randint(1, 50)
elif hard=="中等":
    num = random.randint(1, 100)
elif hard=="困难":
    num = random.randint(1, 200)

while True:
    yh_num=int(input("请输入你猜测的数字:"))
    if yh_num>num:
        print("猜大了")
        counts+=1
    elif yh_num<num:
        print("猜小了")
        counts+=1
    elif yh_num==num:
        counts += 1
        print(f"恭喜你,猜对了。你总共猜了{counts}次")
        break

image.png

增加 多次游戏 功能:一轮结束后询问“是否继续游戏?(y/n)”,若输入 y 则开始新的一轮。

将猜数字游戏的主体放入while的无限循环中,当用户在一轮游戏结束后输入为N时结束

import random
counts=0
while True:
    hard = input("请选择难度等级(简单,中等,困难):")
    if hard == "简单":
        num = random.randint(1, 50)
    elif hard == "中等":
        num = random.randint(1, 100)
    elif hard == "困难":
        num = random.randint(1, 200)
    while True:
        yh_num = int(input("请输入你猜测的数字:"))
        if yh_num > num:
            print("猜大了")
            counts += 1
        elif yh_num < num:
            print("猜小了")
            counts += 1
        elif yh_num == num:
            counts += 1
            print(f"恭喜你,猜对了。你总共猜了{counts}次")
            break
    goon=input("是否继续游戏(Y或N):")
    if goon == "N":
        break

image.png

(可选)添加输入验证,确保用户输入的是有效整数。

使用字符中的isdigit()方法判断输入的是否是0~9组成的数字

import random
counts=0
while True:
    hard = input("请选择难度等级(简单,中等,困难):")
    if hard == "简单":
        num = random.randint(1, 50)
    elif hard == "中等":
        num = random.randint(1, 100)
    elif hard == "困难":
        num = random.randint(1, 200)
    while True:
        yh_num = int(input("请输入你猜测的数字:"))
        if not str(yh_num).isdigit():
            print("请输入0~9组成的有效整数")
            yh_num = int(input("请输入你猜测的数字:"))
        if yh_num > num:
            print("猜大了")
            counts += 1
        elif yh_num < num:
            print("猜小了")
            counts += 1
        elif yh_num == num:
            counts += 1
            print(f"恭喜你,猜对了。你总共猜了{counts}次")
            break
    goon=input("是否继续游戏(Y或N):")
    if goon == "N":
        break

image.png