跟电脑玩"你猜我猜"!10行Python代码做出一个猜数字游戏
开篇小故事
"117 比 89 大还是小?"——三年级的豆豆对着比大小的题目直犯困。
爸爸说:"咱们玩个游戏吧。你心里想一个数,我来猜。我猜大了你就说'大了',猜小了就说'小了'。"
豆豆来了兴趣:"反过来!你心里想一个,我来猜!"
爸爸打开电脑:"不仅我陪你玩,我还能让电脑陪你玩。"
你能学到什么
• 理解 if 判断(如果…就…否则…) • 巩固比较大小(大于、小于、等于) • 用 while 循环反复猜直到猜对
直接上代码
import random
# 电脑心里想一个1到100之间的整数
answer = random.randint(1, 100)
cishu = 0 # 记录猜了多少次
print("我心里想了一个 1~100 之间的整数,你来猜猜看!")
while True:
guess = int(input("你猜是多少?"))
cishu = cishu + 1
if guess > answer:
print("太大了!再猜小一点~")
elif guess < answer:
print("太小了!再猜大一点~")
else:
print(f"🎉 恭喜你猜对了!正确答案是 {answer}")
print(f"你一共猜了 {cishu} 次")
break # 猜对了就结束游戏代码讲解
random.randint(1, 100) | |
while True: | break 才停下来 |
if guess > answer: | |
elif guess < answer: | |
else: | |
break |
用生活场景来理解
想象你妈妈心里想了一个数字,让你猜:
• 你说 50,妈妈说"小了" → 那 50 以下的数字全都不用试了 • 你说 75,妈妈说"大了" → 那 75 以上的也不用试了 • 你说 63,妈妈说"对了!"
这就是 二分查找 的思想——等到了高年级,你会知道这是一种非常聪明的搜索方法。
进阶版:加上次数限制
如果想让游戏更刺激,可以限制最多猜 7 次:
import random
answer = random.randint(1, 100)
max_times = 7
print(f"你只有 {max_times} 次机会哦!")
for times in range(1, max_times + 1):
guess = int(input(f"第{times}次,你猜是多少?"))
if guess == answer:
print(f"🎉 恭喜!你用了 {times} 次就猜对了!")
break
elif guess > answer:
print(f"大了!还剩 {max_times - times} 次机会")
else:
print(f"小了!还剩 {max_times - times} 次机会")
else:
# for 循环正常结束(没被break打断)才会走到这里
print(f"😢 机会用完了!正确答案是 {answer}")试试加点变化?
random.randint(1, 1000) | |
random.randint(0, 50) | |
易错点提醒
int(input(...)) | int() 转换成整数 | |
=== | == | |
break | break |
学校信息课考点预告
本期涉及的核心考点:
• 条件判断(if / elif / else)——信息科技课必考 • 比较运算符( >、<、==)——数学与编程的交叉考点• 循环与条件结合——算法设计基础
家长辅导小贴士
1. 先和孩子玩"真人版":你心里想一个数,让孩子猜,你说"大了""小了"。玩熟练后再到电脑上写代码,孩子会更容易理解。 2. 如果孩子总是乱猜,可以引导他思考"最优策略":先猜 50,根据反馈排除一半,再猜剩下的中间数…… 3. 鼓励孩子把游戏拿给同学玩。教别人是最好的学习方式。 4. 如果孩子问"为什么 while True 不会一直跑下去?",让他试试把 break删掉,感受一下"死循环"——然后再加回来,他会永远记住break的作用。
夜雨聆风