IF语句Python

时间:2013-11-13 06:22:32

标签: python python-2.7

我有这段代码:

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,它一直说无效语法(在“:”),是不是错了?

2 个答案:

答案 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中很重要。