这与我从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'))
感谢。
答案 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+')
输入字符串周围需要有引号。