我有这段代码:
def Gradiente(grado):
suma = 0
for i in range(porcent):
x1 = entrenamiento[i][0]
x2 = entrenamiento[i][1]
y = entrenamiento[i][2]
h = 1 / (1 + math.exp(-(t0 + t1 * x1 + x2))
if (grado == 1):
suma = suma + (h - y)
elif(grado == 2):
suma = suma + (h - y) * x1
return suma / porcent
在if,它一直说无效语法(在“:”),是不是错了?
答案 0 :(得分:3)
人们使用Python遇到的所有问题中有97.2%涉及不正确的缩进:-)在您的原始问题中,您的缩进是不正确的,您需要正确缩进:
def Gradiente(grado):
suma = 0
for i in range(porcent):
x1 = entrenamiento[i][0]
x2 = entrenamiento[i][1]
y = entrenamiento[i][2]
h = 1 / (1 + math.exp(-(t0 + t1 * x1 + x2))) # <-- fix
if grado == 1: # <-- style
suma = suma + (h - y)
elif grado == 2: # <-- style
suma = suma + (h - y) * x1
return suma / porcent
然而,你已经明确表示在输入问题时你输入了一个拼写错误,在这种情况下它只是在那个大数学公式上缺少的近括号(这也在我上面的代码中修复) )。
另外一项更改是从if
语句中删除多余的标点符号。使用它们的人往往来自C(或类似语言)背景,他们是必要的。在Python中使用它们通常会不必要地使代码混乱。
答案 1 :(得分:1)
在第1行之后缩进一个标签。缩进在Python中很重要。