擅长:python、mysql、java
<p>这里有几个问题。第一个是<code>int(i)</code>。这不会将<code>i</code>的副本创建为整数,但根本不会修改<code>i</code>。附加到列表的<code>i</code>仍然是一个字符串。第二个问题是,这不适用于两位数的数字-您会立即附加到列表中,而不是跟踪可能的两位数。你知道吗</p>
<p>解决这些问题:</p>
<pre><code>def valid(i):
return i.isdigit()
def post_fix(string):
lst = [0]
for i in string:
if i == '(':
continue
elif i == ' ':
lst.append(0)
elif valid(i):
lst[-1] *= 10
lst[-1] += int(i)
elif i == '+':
print(sum(lst))
post_fix('1 2 3 +')
</code></pre>
<p>输出:</p>
<pre><code>6
</code></pre>