Python printSoln模问题

Python printSoln模问题,python,Python,您好,我在书中发现:Python工程中的数值方法模块run_kut5,但对于该模块,我需要模块printSoln,所有这些都在书中提供。现在我对代码进行了cp,进行了必要的行调整,等等。代码如下所示: # -*- coding: cp1250 -*- ## module printSoln ''' printSoln(X,Y,freq). Prints X and Y returned from the differential equation solvers using

您好,我在书中发现:Python工程中的数值方法模块run_kut5,但对于该模块,我需要模块printSoln,所有这些都在书中提供。现在我对代码进行了cp,进行了必要的行调整,等等。代码如下所示:

  # -*- coding: cp1250 -*-
## module printSoln
''' printSoln(X,Y,freq).
    Prints X and Y returned from the differential
    equation solvers using printput frequency ’freq’.
        freq = n prints every nth step.
        freq = 0 prints initial and final values only.
'''

def printSoln(X,Y,freq):

    def printHead(n):
        print "\n  x ",
        for i in range (n):
            print " y[",i,"] ",
        print

    def printLine(x,y,n):
        print "%13.4e"% x,f
        for i in range (n):
            print "%13.4e"% y[i],
        print

    m = len(Y)
    try: n = len(Y[0])
    except TypeError: n = 1
    if freq == 0: freq = m
    printHead(n)
    for i in range(0,m,freq):
        printLine(X[i],Y[i],n)
    if i != m - 1: printLine(X[m - 1],Y[m - 1],n)
现在,当我运行程序时,它会说:

line 24, in <module>
    m = len(Y)
NameError: name 'Y' is not defined
第24行,在
m=len(Y)
名称错误:未定义名称“Y”
但是我从书中得到了:\所以现在当我调用run_kut模块时,我得到了相同的错误,printSoln中没有定义Y

我想弄明白,但我很糟糕:(


请帮忙…

我想这是制表符/空格的问题-检查缩进中是否没有混合制表符和空格

编辑:如果不是缩进,并且由于错误消息包含“
”而不是文件名,我猜您正在将其粘贴到交互式解释器中

相反,您应该将代码粘贴到名为printsoln.py的文件中,然后在交互式解释器中运行:

from printsoln import printSoln

如果您仍想将其全部粘贴到解释器中,那么您可能需要删除空白行——在代码> > DEF PrimSOLN < /代码>之后以及每个内部函数之后。交互式解释器在完成多行定义时使用空白行来计算,并尝试评估<代码> m=LeN(y)。在函数

printSoln
的上下文之外。在此上下文中,变量
Y
不存在。

我确实存在,起初存在这个问题,但我正确地进行了所有缩进,现在我得到了以下结果:\