Никол обнови решението на 23.10.2022 03:22 (преди около 2 години)
+def calculate_final_vector(starting_point, directions):
+ if not isinstance(starting_point, tuple) or not isinstance(directions, list):
Няма нужда да валидираш очаквания инпут. Това е работа на клиента, който ползва функциите.
+ return "Please enter valid arguments!"
+ if len(starting_point) != 2:
+ return "Please enter valid coordinates of the starting point!"
+
+ possible_directions = ['FFFFFF', '000000', '00C000', 'FFC0C0', 'C0FFC0', 'C00000',
+ 'FFFFC0', '0000C0', 'C0C000', 'C0C0FF']
+
+ for i in range(0, len(directions)):
Ако ще обхождаш колекция, обхождай елементите, а не техните индекси. Овен, разбира се, ако това не е по-удобно, но тук не е.
for direction in directions:...
+ directions[i] = directions[i].upper()
+ if directions[i] not in possible_directions:
+ return "Invalid direction!"
+
+ moving_point = [starting_point[0], starting_point[1]]
Ако си решил да пазиш данните в list, за да се справиш с mutability-то, можеш да го направиш с moving_point = list(starting_point)
.
Аз бих използвал две отделни променливи:
x, y = starting_point
Не е нужно да пускаш ново решение. Просто споделям информация.
+
+ for direction in directions:
+ if direction == 'FFFFFF':
+ continue
+ elif direction == '000000':
+ return moving_point[0], moving_point[1]
Един break
тук вместо този ред ще ти спести повторението на код между текущия и последния ред.
+ elif direction == '00C000' or direction == 'FFC0C0':
+ moving_point[0] += 1
+ elif direction == 'C0FFC0' or direction == 'C00000':
+ moving_point[0] -= 1
+ elif direction == 'FFFFC0' or direction == '0000C0':
+ moving_point[1] -= 1
+ elif direction == 'C0C000' or direction == 'C0C0FF':
+ moving_point[1] += 1
+
+ return moving_point[0], moving_point[1]
Няма нужда да валидираш очаквания инпут. Това е работа на клиента, който ползва функциите.
Ако ще обхождаш колекция, обхождай елементите, а не техните индекси. Овен, разбира се, ако това не е по-удобно, но тук не е.
for direction in directions:...
Ако си решил да пазиш данните в list, за да се справиш с mutability-то, можеш да го направиш с
moving_point = list(starting_point)
. Аз бих използвал две отделни променливи:x, y = starting_point
Не е нужно да пускаш ново решение. Просто споделям информация.
Един
break
тук вместо този ред ще ти спести повторението на код между текущия и последния ред.