python第一个小游戏 + 随机数random模块

小游戏:猜数字

一、游戏版本

(一)简易版

for i in range(3):  # 给玩家3次机会
    temp = eval(input("猜一下我想的数字(1~10):"))
    if temp == 7:  # 设定的数字是7
        print("niubi,猜对了!")
        print("游戏结束")
        break
    else:
        a = 2 - i  # 剩余机会次数
        print("还有", a, "次机会")
        if a == 0:  # 如果机会用完
            print("游戏结束")

(二)升级一:增加提示性语句

for i in range(10):  # 给玩家10次机会
    a = 9 - i  # 剩余机会次数
    temp = eval(input("猜一下我想的数字(1~10):"))
    if temp == 7:  # 设定的数字是7
        print("niubi,猜对了!")
        print("游戏结束")
        break
    elif temp > 7:  # 如果猜大了
        print("大了")
        print("还有", a, "次机会")
        if a == 0:  # 如果机会用完
            print("游戏结束")
    elif temp < 7:  # 如果猜小了
        print("小了")
        print("还有", a, "次机会")
        if a == 0:  # 如果机会用完
            print("游戏结束")

(三)升级二:随机数字

引入模块 random,让游戏更具趣味性。

import random  # 导入random模块
j = random.randint(1, 100)  # 随机生成一个1到100之间的整数
for i in range(10):  # 给玩家10次机会
    a = 9 - i  # 剩余机会次数
    temp = eval(input("猜一下我想的数字(1~100):"))
    if temp == j:  # 猜对了
        print("niubi,猜对了!")
        print("游戏结束")
        break
    elif temp > j:  # 如果猜大了
        print("大了")
        print("还有", a, "次机会")
        if a == 0:  # 如果机会用完
            print("游戏结束")
            print("正确答案是:", j)  # 显示正确答案
    elif temp < j:  # 如果猜小了
        print("小了")
        print("还有", a, "次机会")
        if a == 0:  # 如果机会用完
            print("游戏结束")
            print("正确答案是:", j)  # 显示正确答案

模块 random 介绍

Python 提供了强大的生成随机数的功能,主要通过内置的 random 模块来实现。以下是一些常用的生成随机数的方法:

  1. random.random():生成一个 [0.0, 1.0) 区间内的随机浮点数。

    import random
    print(random.random())  # 输出类似 0.123456789
    
  2. random.uniform(a, b):生成一个在指定范围 [a, b] 内的随机浮点数。

    print(random.uniform(1.0, 10.0))  # 输出类似 5.6789
    
  3. random.randint(a, b):生成一个在指定范围 [a, b] 内的随机整数。

    print(random.randint(1, 10))  # 输出类似 7
    
  4. random.randrange(start, stop[, step]):从指定范围内按照指定步长返回一个随机数。

    print(random.randrange(1, 10, 2))  # 从 1 到 9 之间返回一个奇数,如 3 或 7
    
  5. random.choice(seq):从序列(如列表、元组等)中随机选择一个元素。

    print(random.choice([1, 2, 3, 4, 5]))  # 输出类似 3
    
  6. random.shuffle(x[, random]):将序列 x 中的元素随机打乱。

    numbers = [1, 2, 3, 4, 5]
    random.shuffle(numbers)
    print(numbers)  # 输出类似 [4, 2, 5, 1, 3]
    
  7. random.sample(population, k):从指定的 population 中返回一个长度为 k 的随机样本列表。

    print(random.sample(range(1, 10), 3))  # 从 1 到 9 中随机抽取 3 个数字,如 [2, 6, 8]
    

在使用这些函数之前,确保你已经导入了 random 模块:

import random

如果你需要在多个函数调用间保持随机数生成的“随机性”一致,可以使用 random.seed() 函数设置随机数生成器的种子。例如:

random.seed(1)  # 设置随机数生成器的种子为 1
print(random.random())  # 每次运行程序时,生成的随机数序列将是一样的

这在测试和调试时非常有用。


while 循环改编

一、while 循环回顾

i = 0
while i <= 10:  # 当 i 小于等于 10 时,循环继续
    print(i)  # 输出当前 i 的值
    i += 1  # i 自增 1,注意 i+=1 的位置在前在后结果不同

二、改编版本

(一)改编一:基础版

import random
temp = eval(input("请输入你想猜的数字(1~100):"))
i = random.randint(1, 100)  # 随机生成一个 1 到 100 之间的数字
j = 0
while temp != i:  # 如果猜的数字不等于随机数
    if temp > i:  # 如果猜大了
        print("大了")
    else:  # 如果猜小了
        print("小了")
    a = 9 - j  # 剩余机会次数
    print("还有", a, "次机会")
    j += 1
    if a == 0:  # 如果机会用完
        print("失败")
        break
    temp = eval(input("请输入你想猜的数字(1~100):"))
    if temp == i:  # 如果猜对了
        print("niubi,猜对了!")

(二)改编二:编程思想改变

import random
secret = random.randint(1, 10)  # 随机生成一个 1 到 10 之间的数字
temp = input("现在心里想的是哪个数字(1~10):")
guess = int(temp)  # 将输入的字符串转换为整数
times = 1
while (guess != secret) and (times < 3):  # 如果没猜对且次数小于 3
    if guess > secret:  # 如果猜大了
        print("大了")
    else:  # 如果猜小了
        print("小了")
    temp = input("请再试试吧:")
    guess = int(temp)  # 更新猜测的数字
    times = times + 1  # 次数加 1
if (times <= 3) and (guess == secret):  # 如果在 3 次内猜对了
    print("good")
else:  # 如果没猜对
    print("defeat")

posted @ 2025-02-07 21:56  kyle_7Qc  阅读(117)  评论(0)    收藏  举报