#python #error-handling #jupyter-notebook #undefined #probability
#python #обработка ошибок #jupyter-ноутбук #не определено #вероятность
Вопрос:
привет, я работаю над 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))
Комментарии:
1. Вы думали
bag_2
, что где-то определили переменную?
Ответ №1:
Ваша переменная bag
представляет собой список, содержащий строки ‘bag_1’ и ‘bag_2’. Итак, ваше if
утверждение всегда ложно (т. Е. Ноутбук всегда выполняет 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', 'black'
print(random.choices(colour, weights=(60, 40), k = 1))
Этот код случайным образом выбирает пакет из списка и, в зависимости от того, какой пакет вышел, выбирает цвет в соответствии с указанными весами.