simple draw - рисование линий через функцию

Нарисовать 7 линий разного цвета, использовать библиотеку simple_draw, передать координату начала и координату окончания через функцию. Помогите понять почему переменные 'x' переданные через функции определяется как None? Как передать эту координату через функцию, чтобы она сразу определялась как значение по умолчанию. Что бы результат был 7 линий разного цвета с одинаковыми координатами 'y', а изменялась, только, координата 'x' как здесь.

import simple_draw as sd

sd.resolution = (600, 600)
rainbow_colors = (sd.COLOR_RED, sd.COLOR_ORANGE, sd.COLOR_YELLOW, sd.COLOR_GREEN,
                  sd.COLOR_CYAN, sd.COLOR_BLUE, sd.COLOR_PURPLE)

def start_point(x=50):
    pass

def end_point(x1=350):
    pass

for i in range(len(rainbow_colors)):
    sd.line(sd.Point(start_point(), 50), sd.Point(end_point(), 450), color=rainbow_colors[i], width=10)
    sd.pause()

Пробовал использовать выражения для изменения значения координаты 'x', как в функциях, так и в цикле, результат не меняется.

Как понимаю это получается потому, что параметр координаты переданный через функцию воспринимается как x = None после чего библиотека simle_draw определяет рандомную координату 'x'.

Результат получается вот такой

введите сюда описание изображения


Ответы (1 шт):

Автор решения: MacClane

Спасибо @Стас твой комментарий помог решить задачу. Действительно в написанных мною функциях для координаты 'x' начала и конца линии, функции не чего ни возвращали. Добавил выражение изменения 'x' для цикла и return 'x' и всё заработало как надо. Magic

    import simple_draw as sd

sd.resolution = (600, 600)

rainbow_colors = (sd.COLOR_RED, sd.COLOR_ORANGE, sd.COLOR_YELLOW, sd.COLOR_GREEN,sd.COLOR_CYAN, sd.COLOR_BLUE, sd.COLOR_PURPLE)

for i in range(len(rainbow_colors)):
    def start_point(x=50):
        x += i * 30
        return x


    def end_point(x1=350):
        x1 += i * 30
        return x1


    sd.line(sd.get_point(start_point(), 50), sd.get_point(end_point(), 450), color=rainbow_colors[i], width=10)


sd.pause()

Результат как надо)

введите сюда описание изображения

→ Ссылка