Python 为什么jupyter会出现未定义的名称

Python 为什么jupyter会出现未定义的名称,python,error-handling,jupyter-notebook,undefined,probability,Python,Error Handling,Jupyter Notebook,Undefined,Probability,嗨,我在做jupyter for probability的工作,当我去运行这段代码时,它不断地出现 未定义“名称”bag_2“。 在这之前的几天里,这似乎对我有效,我对此没有任何改变,所以我不明白。谢谢 import random bag = ['bag_1', 'bag_2'] print(random.choice(bag)) if bag == 'bag_1': colour = 'white', 'black' prin

嗨,我在做jupyter for probability的工作,当我去运行这段代码时,它不断地出现 未定义“名称”bag_2“。 在这之前的几天里,这似乎对我有效,我对此没有任何改变,所以我不明白。谢谢

    import random

    bag = ['bag_1', 'bag_2']
    print(random.choice(bag))

    if bag == 'bag_1':
        colour = 'white', 'black'
        print(random.choices(bag_1, weights=(30, 70), k = 1))
    else:
        colour = 'white', 'black'
        print(random.choices(bag_2, weights=(60, 40), k = 1))

变量
bag
是一个包含字符串“bag_1”和“bag_2”的列表。因此,您的
if
语句始终为false(即笔记本始终执行
else
语句)。这是因为函数
print(random.choice(bag))
在输出选项卡中显示“bag_1”或“bag_2”,但它没有将该值分配给变量
bag
,该变量仍然是一个列表

如果我正确理解了您试图实现的目标,那么解决方案可能是定义第二个变量,例如
bag\u selected

import random

bag = ['bag_1', 'bag_2']
bag_chosen = random.choice(bag)
print(bag_chosen) # in case you still want to print the chosen bag

if bag_chosen == 'bag_1':
    colour = 'white', 'black'
    print(random.choices(colour, weights=(30, 70), k = 1))
else:
    colour = 'white', 'black'
    print(random.choices(colour, weights=(60, 40), k = 1))

此代码从列表中随机选择一个袋子,并根据哪个袋子出来,根据指定的重量选择颜色。

您是否认为您在某处定义了一个
bag_2
变量?