Я создал простую, произвольную функцию, которая выводит значение (1) на основе первого элемента из случайного перетасованного списка.Python: Неожиданные значения печати из простой функции
Посмотрите на следующий код: Я создаю переменную и устанавливаю ее в 1, тогда я создаю небольшой список (1,2,3), а затем перетасовываю список. Идея состоит в том, что если первый элемент этого списка (после перетасовки) равен 1 или 2, напечатайте значение «правильно», НО если первым элементом списка будет 3, установите «правильный» на 0 и затем снова запустите функцию. Как видно из инструкции if, когда значение «value» установлено равным 0, я не ожидаю, что это будет напечатано вообще, потому что функция запускается снова (chair()) до того, как произойдет какая-либо печать.
Запустив это, я ожидал найти распечатку из 5 значений 1. Проблема в том, что я тоже вижу 0 значений. Это кажется очень простой функцией, и я чувствую себя немного, но глупо, потому что не вижу, почему это происходит. Есть идеи?
def chair():
correct = 1
a = [1,2,3]
random.shuffle(a)
if a[0] == 3:
correct = 0
chair() #run function again without printing
print correct
for i in range(5):
chair()
Отлично. Это небольшое изменение было именно тем, что мне было нужно. Спасибо. – Steve