Python NOOB Как передать переменную из одной функции в другую. Помогите с тестовым заданием, плз)))
Всем привет! Второй день бьюсь над задачей из тестового задания в ПерфомансЛаб...
Задание такое: Круговой массив - массив из элементов, в котором по достижению конца массива следующим элементом будет снова первый. Mассив задается числом n, то есть представляет собой числа от 1 до n. Пример кругового массива для n=3: [1, 2, 3, 1, 2, 3, 1] Напишите программу, которая выводит путь, по которому, двигаясь интервалом длины m по заданному массиву, концом будет являться первый элемент. Началом одного интервала является конец предыдущего. Путь - массив из начальных элементов полученных интервалов. Пример 1: n = 4, m = 3 Решение: Круговой массив: 1234. При длине обхода 3 получаем интервалы: 123, 341. Полученный путь: 13. Пример 2: n = 5, m = 4 Решение: Круговой массив: 123456. При длине обхода 4 получаем интервалы: 1234, 4512, 2345, 5123, 3451. Полученный путь: 14253. Параметры передаются в качестве аргументов командной строки. Например, для последнего примера на вход подаются аргументы: 5 4 Ожидаемый вывод в консоль: 14253
Откровенно, питон изучал пару лет назад, поэтому, много чего забыл и ещё больше не знаю, так что, тут мои полномочия всё...
Родил вот такой код, но не могу решить задачу над передачей переменной mass дальше в цикле while.
Саму переменную mass объявлял и глобально, и локально в разных местах кода, и через global вместо return.
Буду признателен, если укажете на ошибки..
m = int(input("Enter period (M): "))
startfrom = 1
path = []
mass = []
def pathfunction(n, m, startfrom):
firstitem = 1
lastitem = 0
while firstitem != lastitem:
period(n, m, startfrom)
firstitem = mass[0]
path.append(mass)
lastitem = mass
startfrom = mass
return path
def period(n, m, startfrom):
mass = []
j = 0
for i in range(m):
if startfrom + j < n:
mass.append(startfrom + j)
j += 1
elif startfrom + j >= n:
mass.append(startfrom + j)
startfrom = 1
j = 0
return mass
if __name__ == "__main__":
pathfunction(n, m, startfrom)```