是什么导致Python中的冒号期望错误?

时间:2018-10-15 09:36:49

标签: python

我正在尝试通过以下代码来处理Expected Colon Error。任何帮助表示赞赏。

代码是-

    if df.loc['pivot'] > df.loc['Open'] :
        df.loc['Signal'] = 1

    elif df.loc[['Open'] > df.loc['IB'] and df.loc['Open'] > df.loc['pivot'] and df.loc['Open'] < df.loc['OB']:
        df.loc['Signal'] = 0

    elif (((df.loc['Open']) <= (((df.loc['2_pips']) - 5)/ 1000)) * (df.loc['pivot'])) and ((df.loc['Open']) >= (((df.loc['1_pips']) + 10)/ 1000 * (df.loc['pivot']))) and ((df.loc['Open']) >= (df.loc['pivot'])) :
        df.loc['Signal'] = 1

    elif (df.loc['Open'] <= ((df.loc['1_pips'] * df.loc['pivot']) + df.loc['pivot'] )) and (df.loc['Open'] > (((df.loc['1_pips'] - 10) * df.loc['pivot']) + df.loc['pivot'])) :
        df.loc['Signal'] = 1

    elif ((df.loc['Open']  < OB) and (df.loc['Open']  < df.loc['pivot'])):
        df.loc['Signal'] = -1

    elif ((df.loc['Open']  <= OB) and (df.loc['Open']  >= IB) and (df.loc['Open']  < df.loc['pivot'])):
        df.loc['bs'] = 0

    elif (df.loc['Open'] < ((df.Loc['2_pips'] - 5) * df.loc['pivot']) + df.loc['pivot']) and (df.loc['Open'] > ((df.loc['1_pips'] + 10) * pivot) + df.loc['pivot']) and (df.loc['Open'] < df.loc['pivot']):
        df.loc['Signal'] = -1

    elif (df.loc['Open']  <= (df.loc['1_pips'] * df.loc['pivot']) + df.loc['pivot']) and (df.loc['Open']  > ((df.loc['1_pips'] - 10) * df.loc['pivot']) + df.loc['pivot']):
        df.loc['Signal'] = -1

    else:
        df.loc['Signal'] = 0

谢谢!

1 个答案:

答案 0 :(得分:1)

在第4行上,您有df.loc[['Open'],我猜这是一个方括号。

您也可以将该行简化为:

elif df.loc['Open'] > df.loc['IB'] and df.loc['pivot'] < df.loc['Open'] < df.loc['OB']:

通常,括号太多了。我猜想这实际上是因为您正在尝试查找问题。

通常,当您遇到编译器语法错误(如(非)预期的标记)时,您会遇到一个结构性的问题,即上面。它正在解析其抱怨的行,作为上一条语句的延续。不匹配的(),[]或{}。要找到它,可以减少带有错误的代码,并注意到它仍然因相同的错误而失败,这意味着实际的错误实际上来自上一行。