我学习了一点面向对象编程和文件I/O。我试图通过编写自己的代码将它们应用到现实生活中。然而,不幸的是,它不能运行。Python从来不会说有错误。它只是整天执行命令,并说请等待结果。
下面是我的代码:
class CoursesTaken():
def __init__(self):
self._courses = []
def read_file(self, file):
line = file.readline().strip()
while line != 0:
course = tuple(line.split())
self._courses.append(course)
def add_course(self, season, code, gpa):
self._course = (season, code, gpa)
self._courses.append(self._course)
def total_courses(self):
return self._courses
def name_of_total_courses(self):
result = []
for i in self._courses:
name = i[1]
result.append(name)
return result
if __name__ == '__main__':
file = open('courses.txt')
courses = CoursesTaken()
courses.read_file(file)
print(courses.name_of_total_courses)
file.close()
txt文件的格式如下:
2018S CSC111 A
2018S MAT101 B+
我不知道如何改进我的代码。
发布于 2018-06-14 03:58:06
您的问题出在以下代码片段中:
line = file.readline().strip()
while line != 0:
line
永远不会为== 0
,因为它是字符串,而0
是整数。它们在python中永远不能相提并论,因此您的循环将永远重复。此外,您不需要在循环内执行任何操作来更改line
变量的值。它将永远保持循环开始前分配的第一个值,条件永远不会改变。
https://stackoverflow.com/questions/50845162
复制相似问题