返回外部函数错误-需要帮助

def getPressAve(odbname):

    odb=openOdb(odbname)

    lastFrame=odb.steps['Step-1'].frames[-1]

    pressure=lastFrame.fieldOutputs['CPRESS']

    press=[[0,0]] # sets the first element to [0,0]


    for n in pressure.values:

      gridPt=part1.nodes.getFromLabel(n.nodeLabel)


      coord=assemb.getCoordinates(gridPt)

      press.append([n.nodeLabel,n.data,coord])

      press=avePress=press[1:] # removes the first element

      press.sort(Comp_X)

      print ('pressure extracted')


      index=0

      while index<len(press):

        sum=0

        tally=0


        if index!=0:

          sum=sum+press[index-1][1]

        tally=tally+1


        if index!=1:

          sum=sum+press[index-2][1]

        tally=tally+1


        if index!=2:

          sum=sum+press[index][1]

        tally=tally+1


        if index<len(press)-1:

          sum=sum+press[index+1][1]

        tally=tally+1


        if index<len(press)-2:

          sum=sum+press[index+2][1]

        tally=tally+1


        average=sum/tally

        avePress[index][1]=average

        index=index+1


    odb.close()

    print ('pressure averaged')

    return avePress


陪伴而非守候
浏览 196回答 2
2回答

慕容708150

在Python中,缩进很重要。照原样,您正在定义一个getPressAve仅执行以下操作的函数:odb=openOdb(odbname)定义函数后,您可以继续执行lastFrame=odb.steps['Step-1'].frames[-1]以及功能之外的东西。那不是你想要的。解决方案是使该odb=openOdb(odbname)行之后的所有内容缩进该级别,以便将这些行解释为该函数主体的一部分。

慕容森

您忘记正确缩进代码了:def getPressAve(odbname):&nbsp; &nbsp; odb=openOdb(odbname)&nbsp; &nbsp; ...&nbsp; &nbsp; print ('pressure averaged')&nbsp; &nbsp; return avePress由于您尚未使用该return关键字,因此该关键字已在函数外部出现,因此出现错误:SyntaxError: 'return' outside function。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python