擅长:python、mysql、java
<p>我认为您实际上是在更早地遇到错误(如果您在问题中包含错误堆栈,这将有助于我们):</p>
<pre><code>for i in y:
acc.append(i)
</code></pre>
<p>如果希望用户以<code>[letter, number]</code>格式以字符串形式输入列表,则需要使用<code>ast</code>modules<a href="https://docs.python.org/2/library/ast.html#ast.literal_eval" rel="nofollow">^{<cd3>}</a>方法</p>
<p>像这样:</p>
^{pr2}$
<p>因此,当用户在提示下输入:</p>
<pre><code>Enter your move [letter, number]: ['a', 3]
</code></pre>
<p><code>ast.literal_eval(y)</code>将把输入转换成python列表<code>['a', 3]</code>。在</p>
<p>以下代码正确打印x和y的值:</p>
^{4}$
<p>演示:</p>
<pre><code>$ python3 so.py
Enter your move [letter, number]: ['a', 1]
a 1
</code></pre>
<hr/>
<p>但是,如果希望用户以<code>letter number</code>格式输入一个不带方括号的字符串,那么您的代码仍然无法实现预期的效果。因为<code>y</code>将有字符串<code>a 3</code>(如果输入是'a3')。做一个</p>
<pre><code>for i in y:
acc.append(i)
</code></pre>
<p>将使<code>acc</code>成为三个元素的列表<code>['a', ' ', '3']</code>。<code>y[1]</code>现在是一个空格字符。所以代码<code>y=int(acc[1])</code>中的这一行将失败。在</p>