каждый раз в count_primes вы помещаете значение в массив (который должен иметь лучшее имя, кстати). К сожалению, каждый раз это новая переменная, называемая массивом, и поскольку никто за пределами функции не может видеть эту переменную, она теряется, когда функция завершается. Если вы хотите сохранить значения, которые вы уже нашли, вам нужно установить некоторое состояние вне вашей функции.
Я могу придумать 2 быстрых решения. Можно было бы объявить свое хранилище в начале create_numbers и передать его в обе функции.
def count_primes(num, arr)
def check_for_primes(nums, arr)
Другой вариант - установить переменную вне всех функций, $ array, например, для хранения значений.
$array = []
...
$array << num
Поскольку область действия $ array глобальна (то есть все функции имеют к ней доступ), у вас есть доступ к ней из любой точки файла, и вы можете просто добавлять к ней что-либо в виде простых чисел. Обратите внимание, что использование глобалов таким способом обычно считается плохим стилем, и более элегантное решение будет передавать параметры и использовать возвращаемые значения.