问题描述
嗨,我正在为Jupyter做概率分析,当我去运行这段代码时,它不断出现 '''名称'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_chosen
。
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',weights=(60,40),k = 1))
此代码从列表中随机选择一个袋子,然后根据所出的袋子,根据指定的重量选择颜色。