Йолина обнови решението на 25.10.2022 02:08 (преди около 2 години)
+dictionary_with_directions = {
+ 'C0FFC0': [-1,0],
+ 'FFFFC0': [0,-1],
+ 'FFC0C0': [1,0],
+ 'C0C0FF': [0,1],
+ '00C000': [1,0],
+ 'C0C000': [0,1],
+ 'C00000': [-1,0],
+ '0000C0': [0,-1],
+ 'FFFFFF': [0,0],
+ '000000': 'end'
+}
+
+def calculate_final_vector(start,directions = [], *args):
+ x,y = start
+ for direction in directions:
+ # Making the keys to upper case values
+ # in order to be able to search in the dictionary case insensitive
+ direction = direction.upper()
+ if dictionary_with_directions[direction] == 'end':
+ break
+ x = x + dictionary_with_directions[direction][0]
+ y = y + dictionary_with_directions[direction][1]
+ end = x , y
+ return end
+
+
+result = calculate_final_vector((1, 1), ['00C000', 'C0FFC0', 'C00000', 'FFFFFF', 'C0C000'])
+
+print(result)
Кортежите са по-подходящи от списъците за конкретния случай, защото описваме нещо с константа дължина. Моля оставяй интервал след запетаите.
След запетаята е прието да има интервал. А около
=
не, защото е стойност по подразбиране на аргумент. В останалите случаи се слагат интервали около равното, но не и в списък с аргументи.*args
е излишно, защото така или иначе няма да го използваш. По-добре е клиентът на кода да е наясно, че не подава правилния брой аргументи.Имаш двоен интервал след
if
. Не е проблем за Python, но ми бърка в очите :)Не слагай интервал преди запетаята. Освен това, не е нужно да присвояваш резултата в променлива. Можеш:
return x, y