Тина обнови решението на 24.10.2022 01:10 (преди около 2 години)
+def calculate_final_vector(start_point, *args):
+ x, y = start_point
+ white, black, dark_red, light_red, dark_blue, light_blue, dark_yellow, light_yellow, dark_green, light_green = ("ffffff", "000000", "c00000", "ffc0c0", "0000c0", "c0c0ff", "c0c000", "ffffc0", "00c000", "c0ffc0")
+ colors=args[0]
+ for color in colors:
+ color = color.lower()
+ if color == white:
+ continue
+ elif color == black:
+ break
+ elif color == dark_red:
+ x-=1
+ elif color == light_red:
+ x+=1
+ elif color == dark_blue:
+ y-=1
+ elif color == light_blue:
+ y+=1
+ elif color == dark_yellow:
+ y+=1
+ elif color == light_yellow:
+ y-=1
+ elif color == dark_green:
+ x+=1
+ elif color == light_green:
+ x-=1
+ else:
+ continue
+ final_point = (x, y)
+ return final_point
+
Излишно дефинираш args със астериск, защото по-късно взимаш само първата стойност на този списък от аргументи. По-удобно за клиента на кода ти би било да знае, че не е подал правилния броя аргументи, ако подаде повече. В момента ти просто тихо игнорираш останалите аргументи (ако има такива).
Този
else
реално не прави нищо и не допринася за качеството на кода ти.Няма нужда да присвояваш резултата на променлива, за да го върнеш. Скобите също са излишни. Може просто:
return x, y