<p>我制作了一个小“控制台”,用<code>split()</code>分割命令。我将“命令”(从<code>input()</code>中的第一个“单词”与第一个单词后面的“参数”分开。以下是生成错误的代码:</p>
<pre><code>cmdCompl = input(prompt).strip().split()
cmdRaw = cmdCompl[0]
args = addArgsToList(cmdCompl)
</code></pre>
<p><code>addArgsToList()</code>函数:</p>
<pre><code>def addArgsToList(lst=[]):
newList = []
for i in range(len(lst)):
newList.append(lst[i+1])
return newList
</code></pre>
<p>我尝试将<code>cmdRaw</code>之后的每个单词添加到名为<code>args</code>的列表中,该列表由<code>addArgsToList()</code>返回。但我得到的是:</p>
<pre><code>Welcome to the test console!
Type help or ? for a list of commands
testconsole >>> help
Traceback (most recent call last):
File "testconsole.py", line 25, in <module>
args = addArgsToList(cmdCompl)
File "testconsole.py", line 15, in addArgsToList
newList.append(lst[i+1])
IndexError: list index out of range
</code></pre>
<p>我不明白为什么我会得到一个<code>IndexError</code>,因为据我所知,<code>newList</code>可以动态分配</p>
<p>有什么帮助吗</p>