Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python2.7:保存执行的程序步骤并逐个读取_Python_Python 2.7_Raspberry Pi - Fatal编程技术网

Python2.7:保存执行的程序步骤并逐个读取

Python2.7:保存执行的程序步骤并逐个读取,python,python-2.7,raspberry-pi,Python,Python 2.7,Raspberry Pi,我遇到以下问题。我想将一个功能集成到我的Rasberry Pi控制的RC车中,这将使这款RC车回到它的起点。要做到这一点,它必须记录用户向汽车发出的每一个命令,并在最后再次执行这些命令,除非是反向执行,以便返回到起点 我对字符串和数组做了很多研究,但它们似乎都不是获得所需行为的好方法 所以我的问题,;有什么方法可以做到这一点吗?您正在寻找的是一个堆栈数据结构。它遵循“先进先出”的规则。在Python中,通过使用append和pop可以很容易地将列表(就像数组)用作堆栈。下面是一段代码片段,让您了

我遇到以下问题。我想将一个功能集成到我的Rasberry Pi控制的RC车中,这将使这款RC车回到它的起点。要做到这一点,它必须记录用户向汽车发出的每一个命令,并在最后再次执行这些命令,除非是反向执行,以便返回到起点

我对
字符串
数组
做了很多研究,但它们似乎都不是获得所需行为的好方法


所以我的问题,;有什么方法可以做到这一点吗?

您正在寻找的是一个
堆栈
数据结构。它遵循“先进先出”的规则。在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'

“我只是对解决这个问题有错误的想法吗?”-想象一下,它被告知在一个广场上开车,结果又回到了起点。现在你告诉它回到起点。它应该做什么?现在我只想添加这个功能,而不考虑如何使用它。这将是下一步。当它到达列表的开头时,它会做什么?它是否发送“nil”或类似的信息?如果您尝试在空列表上使用
.pop
,您将得到
索引器
异常。最好在弹出前使用
len(directions)
,以确保它不是空的。我尝试过在if子句中使用它,但它总是只使用最后一个字符串,然后它会说列表是空的…:/