0

当我尝试在我的 python 程序中打开一个文件时,即使它们位于同一目录中,我也会遇到一个奇怪的错误。这是我的代码:

def main():
#filename = input("Enter the name of the file of grades: ")

file = open("g.py", "r")
for line in file:
    points = 0

    array = line.split()

    if array[1] == 'A':
        points = array[2] * 4
    elif array[1] == 'B':
        points = array[2] * 3
    elif array[1] == 'C':
        points = array[2] * 2
    elif array[1] == 'D':
        points = array[2] * 1

    totalpoints += points
    totalpointspossible += array[2]*4

gpa = (totalpoints/totalpointspossible)*4
print("The GPA is ", gpa)

file.close()

main()

这是我得到的错误:

Traceback (most recent call last):
File "yotam2.py", line 51, in <module>
main()
File "yotam2.py", line 28, in main
file = open(g.py, "r")
NameError: global name 'g' is not defined

我不太确定为什么它说 g 未定义,即使它与我的 python 文件位于同一目录中。

4

3 回答 3

5

g.py应该是一个字符串:

file = open("g.py", "r")

另外,array是一个字符串列表。将字符串乘以整数只会复制它们:

>>> "1" * 4
"1111"

您必须将array(顺便说一下,这不是数组)转换为数字列表:

array = [int(n) for n in line.split()]
于 2013-05-02T06:57:34.497 回答
0

您可能希望将 g.py 括在引号中。

解释器认为 g 是您正在引用的变量,而不是您打算引用的文件名。

于 2013-05-02T06:58:34.103 回答
0

g.py必须被替换"g.py" 并且totalpoints必须被初始化

于 2013-05-02T07:07:20.530 回答