почему у jupyter появляется имя, не определенное

#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))
  

Этот код случайным образом выбирает пакет из списка и, в зависимости от того, какой пакет вышел, выбирает цвет в соответствии с указанными весами.