Слишком много проблем с этим кодом, чтобы сосредоточиться на ошибке алгоритма.Когда я пытаюсь запустить его, я получаю TypeError: 'int' object is not iterable
.Особые проблемы:
Аргументу i
здесь передается число:
iterations += 1
...
color(iterations, n)
...
def color(i, n):
output = map(i, 2, 10000, 0, 2500)
, но функция Python map
(и Джулии) ожидает функцию в качестве первого аргумента:
map(func, *iterables)
и возвращает список результатов применения func
к iterables
, но вы рассматриваете результат как скалярное значение:
output = map(i, 2, 10000, 0, 2500)
if output < 0:
output = 0
if output > 0:
output = 255
Функция color()
никогда не используетвторой аргумент, и никогда ничего не возвращает!
Переменные a
& b
здесь обрабатываются как глобальные, устанавливаются, но не используются, как если бы они были подготовлены для использования repeat()
:
global a
global b
...
a = x
b = y
iterations = 0
repeat(10 ** d, r, i)
, но a
& b
, используемые repeat()
, являются локальными переменными, инициализированными нулями:
a = 0
b = 0
У вас есть функция и глобальная переменная с одинаковым именем y_set
!
И ваши глобалы вышли из-под контроля.