简单的符号识别python

时间:2013-11-16 21:18:05

标签: python syntax-error

这与我从Coderbyte“Simple Symbols”中获得的错误有关。我正在尝试确定字符串中的字符是否在其前后具有特定字符。我写的东西在我的终端上工作,但我从Coderbyte那里得到同样的错误。

我是一个总菜鸟,我的代码根本不优雅。我知道,我更关心错误。

def SimpleSymbols(str_): 

    str_ = str(str_)
    letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    str_list = list(str_)
    str_len= len(str_list)
    #print str_list
    #print str_len
    yesno = False
    first = True
    once = True

    dex = -1
    for i in str_list:
        #print 'step 1'
        dex = dex + 1
        dex_up = dex + 1
        dex_dwn = dex -1
        #print 'dex ', dex, 'dex_up ', dex_up, 'dex_dwn ', dex_dwn
        if i in letters:
            #print 'step 2 its a letter'
            if dex_dwn > -1:
                #print 'step 3 and its not the first letter'
                if dex_up < str_len:     
                    #print 'step 4 and its not the last letter'           
                    if str_list[dex_up] == '+':
                        #print 'step 5 checked, we got a plus in front'
                        if str_list[dex_dwn] == '+':
                            #print 'step 6 checked we got a plus in back'
                            yesno = True
                        else:
                            #print 'step 6 checked, no plus in back'
                            once = False
                    else:
                        #print 'step 5 checked, no plus in front'
                        once = False
                elif dex_up == str_len:
                    first = False
                    #print 'step 4 its the last letter'
            elif dex_dwn == -1:
                #print 'step 3 its the first letter'
                first = False

    if first and once == True:
        return yesno
    else:
        return False
print SimpleSymbols(raw_input())

这是我从coderbyte那里得到的错误:

#Traceback (most recent call last):  File "<string>", line 1, in <module>  File "/usr/lib/python2.7/py_compile.py", line 117, in compile    raise py_excpy_compile.PyCompileError: SyntaxError: ('invalid syntax', ('prog.py', 48, 24, 'print SimpleSymbols(+g+)\n'))

感谢。

2 个答案:

答案 0 :(得分:1)

问题不在于您的代码。无论出于何种原因,coderbytes网站都会让您在字符串中添加引号,以取代raw_input()来电。

'+g+'

作品。

+g+

给予追溯。

不要问我为什么他们这样实施它。 raw_input() 应该总是返回一个字符串,而是他们正在进行某种s/raw_input\(\)/whatever I typed into the form field/操作,这是一种不直观的黑客攻击。

答案 1 :(得分:0)

  

我正在尝试识别字符串中的字符是否具有特定字符   在它的前面和后面。

FWIW, regular expression 会让这更容易: - )

  

我更关心错误。

错误发生在您的函数调用中。 它应该是:

print SimpleSymbols('+g+')

输入字符串周围需要有引号。