(我指的是 Monty Hall 问题,这个网站不允许我提交标题中带有“问题”的内容)
我试图在 python 中创建 Monty Hall 问题,我认为我有一个很好的计划,但我收到错误““NoneType”对象不可订阅”。当我尝试嵌套列表时会发生这种情况。有谁知道我该怎么做?或修复它?
谢谢。
代码如下:
car = 0
goat = 0
turns = 0
amount = 100
import random
items = ["New Car", "Goat", "Goat"]
doors = ["Door1", "Door2", "Door3"]
while turns < amount:
x = random.shuffle(items)
door = random.shuffle(doors)
door1 = [door[0], x[0]]
door2 = [door[1], x[1]]
door3 = [door[2], x[2]]
new_list = [door1, door2, door3]
player_choice = random.randint(0, 2)
if player_choice == 0:
print("You have chosen {0}, and behind that is a {1}".format(door1[0], door1[1]))
if new_list[0][1] == "New Car":
car += 1
turns += 1
else:
goat += 1
turns += 1
然后报错:
Traceback (most recent call last):
File "<string>", line 250, in run_nodebug
File "C:\Programming\Random Programs\Monty Hall Problem.py", line 16, in <module>
door1 = [door[0], x[0]]
TypeError: 'NoneType' object is not subscriptable
请您参考如下方法:
random.shuffle 不返回结果。它只是修改您作为参数传递的列表。
也许你想要这样的东西?
random.shuffle(items)
random.shuffle(doors)
door1 = [doors[0], items[0]]
door2 = [doors[1], items[1]]
door3 = [doors[2], items[2]]
