【发布时间】:2015-09-12 16:28:42
【问题描述】:
我正在用 Python 做一些挑战。
我有以下代码:
def SimpleSymbols(str):
letters = []
results = []
for i in range(len(str)):
if str[i] != '=' and str[i] != '+':
letters.append(str[i])
if str[i-1] == '+' and str[i+1] == '+':
results.append(str[i])
return len(letters) == len(results)
如果我检查 print(SimpleSymbols('++d+===+c++==')) 一切顺利,但如果我检查 print(SimpleSymbols('++d+===+c++==+a'))
我收到此错误:
Traceback(最近一次调用最后一次):文件“python”,第 15 行,在 文件“python”,第 9 行,SimpleSymbols IndexError: string 索引超出范围
谁能解释一下为什么?
【问题讨论】:
-
Python 中的函数通常是
lower_case,即simple_symbols,并且你不会重新定义像str这样构造字符串对象的内置函数。也许def simple_symbols(symbols):。见PEP8 naming conventions -
您的代码为
SimpleSymbols("c++")返回True。是有意的吗?
标签: python