昨天我们了解了while和in的基本用法,用while实现猜数字内部的逻辑循环;用in实现了选择判断的“容错”问题。那如何连续开局,怎么设置难度等级呢?今天提供给大家两个版本的优化,我们来一起温故知新一下。
V1--连续开局

import random
print("猜数字小游戏开始了!")
while True:
target = random.randint(1, 50)
print("\n新的一局开始了!")
while True:
guess = int(input("请输入数字:"))
if guess > target:
print("猜大了,再接再厉!")
elif guess < target:
print("猜小了,再接再厉!")
else:
print("Bingo!!!猜对啦")
break
print("准备进入下一局...\n")


与此前不同的是,在结束一局之后会自动开启新一局,原因在于,我们添加了while 外循环。参考代码为标蓝部分:
while True:
target = random.randint(1, 50)
print("\n新的一局开始了!")
print("准备进入下一局...\n")
以上是基于1-50阈值范围内的猜数字,如果想要更简单1-20或者更难1-100范围内怎么设置呢?接下来来看一下多版本选择:
V2--多版本选择

import random
print("欢迎来到猜数字游戏")
while True:
print("\n请选择难度:")
print("1. 简单(1 -20)")
print("2. 普通(1 -50)")
print("3. 困难(1 -100)")
print("4. 退出游戏")
choice = input("请输入数字(1-4):")
if choice == "4":
print("\n感谢游玩,再见!")
break
elif choice == "1":
max_num = 20
level_name = "简单"
elif choice == "2":
max_num = 50
level_name = "普通"
elif choice == "3":
max_num = 100
level_name = "困难"
else:
print("⚠️ 输入无效,请选择 1-4。")
continue
target = random.randint(1, max_num)
print(f"\n--- {level_name}模式:数字范围 1-{max_num} ")
while True:
guess = int(input("请输入数字:"))
if guess > target:
print("猜大了,再接再厉!")
elif guess < target:
print("猜小了,再接再厉!")
else:
print("Bingo!!!猜对啦")
break
print("准备进入下一局...\n")
这个优化的版本加入了难度选择和判断的代码部分,if和elif提供了4种条件选择:3种难度选择和一种退出机制。

下面我们选困难模式,并以30为例运行一下代码:

结果显示,当你成功猜对之后,会自动跳转下一局。同理,你也可以选择其他不同的模式。以上就是本节要分享的全部内容了。我们可以一起回顾一下重要的点。
重点回顾

1. while True 外循环可以实现连续开局;
2. “\n”代表换行;
3. 多版本可以用if, elif条件选择。
留个小问题

print("\n请选择难度:")
print("1. 简单(1 -20)")
print("2. 普通(1 -50)")
print("3. 困难(1 -100)")
print("4. 退出游戏")
这段代码有没有更简单的写法?
参考1:采用”\n”换行命令将其放进一个print里。
print("\n请选择难度:\n1. 简单(1-20)\n2. 普通(1-50)\n3. 困难(1-100)\n4. 退出游戏")
往期精彩
零基础学 Python(2):写个“超市收银机”和“自动售卖机”!
零基础学Python(3) :搞懂 while True 和 break,写个“猜数字”小游戏!
零基础学 Python(4):电脑猜心小游戏,聊聊 while 和 in 的妙用
更多精彩敬请期待中...

微信号丨飞苑的窝
关注 获得 更多 精彩内容