“NoneType”对象不可下标。试图创造蒙蒂霍尔理论

2024-05-15 09:51:43 发布

您现在位置:Python中文网/ 问答频道 /正文

(我是说Monty Hall问题,这个网站不允许我提交标题中有“问题”的内容)

我试图在python中创建Monty-Hall问题,我认为我有一个好的计划,但是我得到了一个错误“NoneType”object is not subscriptable“。当我试图嵌套列表时会发生这种情况。有人知道我怎么做吗?或者修复它?在

谢谢。在

代码如下:

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

然后出错:

^{pr2}$

Tags: newisitemsrandomcaramountmontyhall
3条回答

random.shuffle不返回结果。它只是修改作为参数传递的列表。在

也许你想要这样的东西?在

random.shuffle(items)
random.shuffle(doors)
door1 = [doors[0], items[0]]
door2 = [doors[1], items[1]]
door3 = [doors[2], items[2]]

random.shuffle原地乱序它不返回任何内容。。。我想你想random.choice

random.shuffle原地乱序处理列表,但不返回任何内容。在

使用random.choice代替:

door1 = [random.choice(doors), random.choice(items)]

相关问题 更多 >