嗨,我正在通过做开放类(class)的练习题来学习Python MIT 6.00 Intro to Computer Science 。
我正在尝试做练习问题 1 第 2 部分,创建一个递归函数来计算目标中键的实例。到目前为止我的代码...
from string import *
def countSubStringMatchRecursive (target, key,x,s):
if (find(target,key)==find(target,key,s)) and (find(target,key)==find(target,key,(find(target,key)))):#if first and last
return (1)
elif (find(target,key)==find(target,key,s))and (find(target,key)!=find(target,key,(find(target,key)))):#if first but not last
x=1
s= find(target,key)
return (countSubStringMatchRecursive(target,key,s,x)
elif (find(target,key,s))==-1 and (find(target,key)!=find(target,key,s)):#if last but not first
return (x+1)
elif:(find(target,key,s))!=-1 and (find(target,key)!=find(target,key,s)):#if not last and not first
x=x+1
s= find(target,key,s)
return (countSubStringMatchRecursive(target,key,s,x)
我在第 8 行遇到语法错误。我只想知道我在那里做错了什么。别担心其他错误,我应该能够解决这些问题。我只是坚持这一点。谢谢。
最佳答案
第 8 行和最后一行缺少右括号。实际上,相应的左括号是不必要的,您不妨将这些行重写为:
return countSubStringMatchRecursive(target,key,s,x)
此外,正如 @rodion 在评论中指出的那样,最后一个 elif
有一个放错位置的 :
,请删除左括号之前的那个。
谈论括号:在 Python 中,您不必将 if ... elif ... else
语句的条件放在括号内,您应该删除它们。
关于python - 学习Python else语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923973/