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 模块来实现。以下是一些常用的生成随机数的方法:
-
random.random():生成一个 [0.0, 1.0) 区间内的随机浮点数。import random print(random.random()) # 输出类似 0.123456789 -
random.uniform(a, b):生成一个在指定范围 [a, b] 内的随机浮点数。print(random.uniform(1.0, 10.0)) # 输出类似 5.6789 -
random.randint(a, b):生成一个在指定范围 [a, b] 内的随机整数。print(random.randint(1, 10)) # 输出类似 7 -
random.randrange(start, stop[, step]):从指定范围内按照指定步长返回一个随机数。print(random.randrange(1, 10, 2)) # 从 1 到 9 之间返回一个奇数,如 3 或 7 -
random.choice(seq):从序列(如列表、元组等)中随机选择一个元素。print(random.choice([1, 2, 3, 4, 5])) # 输出类似 3 -
random.shuffle(x[, random]):将序列 x 中的元素随机打乱。numbers = [1, 2, 3, 4, 5] random.shuffle(numbers) print(numbers) # 输出类似 [4, 2, 5, 1, 3] -
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")

浙公网安备 33010602011771号