将模块导入python sh

2024-05-18 10:09:11 发布

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

我尝试直接从pythonshell测试我的文件,而不是在my.py文件中运行它。然而,每当我导入模块并调用一个函数时,它会说NameError:name'evaluate_-assessory'没有定义,即使它已经定义了。我怎么解决这个问题?在

以下是程序代码:

def evaluate_essay(essayFilename):
    fileList= []
    file= open(essayFilename, "r")
    fileList= [file.read().split()]
    file.close()
    longWords=0
    medWords=0
    shortWords=0
    #nested for loop that checks every word in list
    for i in range (len(fileList)):
        for k in range (len(fileList[0])):
            if (len(fileList[0][k])) >= 7:
                longWords += 1
            if 4<=(len(fileList[0][k]))<=6:
                medWords += 1
            if (len(fileList[0][k])) <= 3:
                shortWords += 1
    #if statements that determines level of each essay
    if (longWords) >= (len(fileList[0])/2):
        print ("This is a COLLEGE LEVEL essay")
    elif (longWords)>(medWords) and (longWords)>(shortWords):
        print ("This is a HIGH SCHOOL LEVEL essay")
    elif (medWords)>(longWords) and (medWords)>(shortWords):
        print ("This is a MIDDLE SCHOOL LEVEL essay")
    else:
        print ("This is an ELEMENTARY SCHOOL LEVEL essay")

evaluate_essay()

Tags: inforlenifisthislevelfile
1条回答
网友
1楼 · 发布于 2024-05-18 10:09:11

首先,从脚本中删除对evaluate_essay的调用,或者给它一个参数。您当前调用它时没有参数,但它需要一个参数。在

要从交互式会话调用此函数,首先需要导入模块。必须满足以下条件之一。在

  1. 您的解释器会话正在包含模块的目录中运行。在
  2. 该模块位于PYTHONPATH中的目录中。在

现在,在解释器中,有两种方法。一种方法是导入模块并用其名称作为对其属性的引用前缀,如下所示。在

import problem3
problem3.evaluate_essay(my_file_name)

另一种方法是显式导入函数并使用不限定的名称。在

^{pr2}$

相关问题 更多 >