1. 假设你正在参加一个有奖游戏的节目,并且有3个盒子可选:其中一个里面是MacBookPro,另外两个里面是U盘,你选择一个盒子,比如说选择1号盒子,主持人知道每个盒子里面是什么,并且打开了另外一个盒子,比如说3号盒子,里面是一只U盘。然后主持人问你“你想改选打开2号盒子吗?”那么问题来了,改选的话对你会有利吗?请通过编程运用所学过的知识模拟这个游戏过程。 (1) 要求:用上函数,并且使用字典来模拟3个盒子,使用其中的“键”表示盒子的编号,“值”表示盒子里面的内容; (2) 使用上基本的异常处理结构Try……Except; (3) 使用上选择结构和循环结构;
时间: 2024-03-05 22:54:13 浏览: 17
以下是一个 Python 实现,模拟上述游戏过程:
```python
import random
# 定义一个字典,表示3个盒子,其中1个盒子里面是 MacBookPro,其他2个盒子里面是 U 盘
boxes = {1: 'MacBookPro', 2: 'U盘', 3: 'U盘'}
# 定义函数,实现游戏过程
def game():
# 随机选择一个盒子
my_choice = random.choice(list(boxes.keys()))
print('我选择了盒子 %d' % my_choice)
# 主持人打开另一个盒子,里面是 U 盘
for key, value in boxes.items():
if key != my_choice and value == 'U盘':
open_box = key
break
print('主持人打开了盒子 %d,里面是 U盘' % open_box)
# 决定是否改选
change_choice = input('你想改选打开另一个盒子吗?(输入 Y 或 N)')
while change_choice not in ['Y', 'N']:
change_choice = input('输入有误,请重新输入(Y 或 N)')
if change_choice == 'Y':
for key in boxes.keys():
if key != my_choice and key != open_box:
my_choice = key
break
# 判断最终结果
if boxes[my_choice] == 'MacBookPro':
print('恭喜你获得了 MacBookPro!')
else:
print('很遗憾,你只获得了 U 盘。')
# 异常处理
try:
game()
except:
print('程序出错,请重试!')
```
运行结果类似于:
```
我选择了盒子 1
主持人打开了盒子 2,里面是 U盘
你想改选打开另一个盒子吗?(输入 Y 或 N)Y
恭喜你获得了 MacBookPro!
```
```
我选择了盒子 3
主持人打开了盒子 2,里面是 U盘
你想改选打开另一个盒子吗?(输入 Y 或 N)N
很遗憾,你只获得了 U 盘。
```