为什么这个python程序中有运行时错误?

时间:2015-06-08 04:20:53

标签: python

我有C ++背景,对Python来说很新。我可能犯了一个简单的错误。

def make_polish(s) :
    no_of_pluses = 0
    polish_str = []
    i = 0
    for index in range(len(s)):
        print s[index]
        if '+' == s[index]:
            no_of_pluses = no_of_pluses + 1
        if '*' == s[index]:
            polish_str[i] = s[index-1] """Index out of range error here."""
            i = i + 1 
            polish_str[i] = s[index+1]
            i = i + 1
            polish_str[i] = '*'
            i = i + 1

    return polish_str 

print make_polish("3*4")

1 个答案:

答案 0 :(得分:8)

您的列表polish_str始终为空。你需要这样做:

polish_str.append(s[index-1])

而不是:

polish_str[i] = s[index-1] # """Index out of range error here."""
i = i + 1 

创建列表polish_str = []时,它没有为它分配空间,就像在C / C ++中一样。它是一个动态数据结构。