printSoln模块问题

2024-09-30 20:17:48 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我在书:数值方法在使用Python的工程中,该模块运行_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)

现在,当我运行程序时,它会说:

^{pr2}$

但我从书中得知:\所以现在当我调用run kut模块时,我得到了同样的错误,printSoln中没有定义Y。。。在

我想弄明白,但我很烂

救命啊,求你了。。。在


Tags: 模块and代码inforlenifdef
1条回答
网友
1楼 · 发布于 2024-09-30 20:17:48

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

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

相反,您应该将代码粘贴到名为打印解决方案,然后在交互式解释器中运行:

from printsoln import printSoln

如果您仍想将其全部粘贴到解释器中,那么您可能需要删除空白行——在{{*CD2}}之后以及每个内部函数之后的空行。交互式解释器使用空行来确定何时完成了多行定义,并尝试在函数printSoln的上下文之外计算m = len(Y)。在此上下文中,变量Y不存在。在

相关问题 更多 >