2015-08-10 2 views
-2

У меня возникает следующая проблема. Я хотел бы включить функцию в мой RC-автомобиль Rasberry Pi, который возвращает этот RC-автомобиль в исходную точку. Для этого он должен записывать каждую команду, предоставленную пользователю автомобилем, и в конце он должен выполнять их снова, кроме как наоборот, чтобы вернуться в исходную точку.Python2.7: Сохранение выполненных шагов программы и их чтение по одному

Я сделал много исследований о strings и arrays, но ни один из них, похоже, не является хорошим способом получить это желаемое поведение.

Так что мой вопрос; Есть какой-либо способ сделать это?

+0

* * - представьте себе, что было сказано ехать на площади, заканчивая «У меня просто неверное представление о решении этой проблемы?» где он начался. Теперь вы скажете, чтобы он вернулся к исходной точке. Что делать? – jonrsharpe

+0

Сейчас я просто хочу добавить эту функцию, не учитывая, как ее использовать. Это будет следующий шаг. – Leon

ответ

1

Что вы ищете, это структура данных stack. Это следует за правилом «первое, последнее». В Python очень легко использовать списки (как массивы) в виде стека, используя append и pop. Вот фрагмент кода, чтобы дать вам представление о том, как она могла бы работать:

directions = [] 
directions.append('forward') 
#execute command here 
directions.append('right') 
#execute command here then turn car 180 degrees 
#at this point directions = ['forward', 'right'] now you need to just pop the commands to execute 
issueCommand(directions.pop()) #sends 'right' 
issueCommand(directions.pop()) #sends 'forward' 
+0

Что он делает, когда он достигнет начала списка? Он посылает «ниль» или что-то в этом роде? – Leon

+0

Если вы попытаетесь использовать '.pop' в пустом списке, вы получите исключение« IndexError ». Лучше всего использовать 'len (направления)' перед тем, как поп, чтобы убедиться, что он не пуст. – amza

+0

Я пробовал и использовал его в if-clause, но он всегда просто использует последнюю строку и после этого говорит, что список пуст ...: / – Leon

Смежные вопросы