首先,我不知道这是否可行,或者他没有正确的处理方法,因为我仍然是编程入门,但是我试图根据从.txt文件提取的数据在类中构建字典。但是教授要我们从文件中提取数据的方法是使用字节计数方法。这是他提出的问题的第一部分。我不会发布整个内容,因为我确定在一次驼峰之后我能弄清其余的一切。 输入数据 对于每个学生,将从文件中读取以下数据: 每行(记录)将具有 •学生证(5个字节) •学生姓名(30字节) •测试1(3个字节) •测试2(3个字节) •测试3(3个字节)
我尝试过在 init 中构建它,并且只是在正常功能下完成它。问题是,如果我确实将其构建在类中,则无法使其正常工作以拉到主函数
class Grades:
count = 0
avg = 0
studentDict = {}
def __init__(self, userId, name, test1, test2, test3):
self.userId = userId
self.name = name
self.test1 = test1
self.test2 = test2
self.test3 = test3
openFile = open('Students.txt', 'r')
for lines in openFile:
userId = lines[:5].strip(' ')
name = lines[5:35].strip(' ')
test1 = lines[35:38].strip(' ')
test2 = lines[38:41].strip(' ')
test3 = lines[41:].strip(' ')
openFile.close
def setUserId(self, userId):
self.userId = userId
def getUserId(self):
return self.userId
def setName(self, name):
self.name = name
def getName(self):
return self.name
def setTest1(self, test1):
self.test1 = test1
def getTest1(self):
return self.test1
def setTest2(self, test2):
self.test2 = test2
def getTest2(self):
return self.test2
def setTest3(self, test3):
self.test3 = test3
def getTest3(self):
return self.test3
myGrades = Grades()
print(myGrades.getUserId())
这就是我所拥有的全部,因为我试图在继续前进之前获取它以打印一些结果,但是这就是给我这个错误代码, TypeError: init ()缺少5个必需的位置参数:“ userId”,“ name”,“ test1”,“ test2”和“ test3”
我希望它能在字典中打印出来
答案 0 :(得分:0)
调用myGrades = Grades()
时,您在类构造函数中缺少5个参数,因为您声明了以下内容:def __init__(self, userId, name, test1, test2, test3):
。
我认为您应该不带任何参数声明它,并在读取文件后影响类变量。它应该像这样:
def __init__(self):
openFile = open('Students.txt', 'r')
for lines in openFile:
userId = lines[:5].strip(' ')
name = lines[5:35].strip(' ')
test1 = lines[35:38].strip(' ')
test2 = lines[38:41].strip(' ')
test3 = lines[41:].strip(' ')
openFile.close()
self.userId = userId
self.name = name
self.test1 = test1
self.test2 = test2
self.test3 = test3
还请注意,在调用close
之后,您会缺少两个括号。