我学了一点OOP和文件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 CSC11A型
2018S MAT101 B+
我不知道如何改进我的代码。你知道吗
这是一个编写无限循环的经典示例。你知道吗
创建while循环所必需的三个组件是
你有前两部分。但是,行:
在你的while循环之外。这条线永远都是你分配给它的第一条线。解决这个问题最简单的方法是添加另一个
正如@nosklo所说:执行while循环的正确方法不是将其与零进行比较。我通常更喜欢
虽然可以使用
while
循环和对readline
的显式调用来迭代文件的内容,但没有理由这样做。你知道吗可以进一步浓缩:
如果选择使用
while
循环,则负责在每次迭代中调用readline
一次,以获取换行符,直到它返回空字符串为止。你知道吗您的问题在以下代码段中:
line
永远不会是== 0
,因为它是字符串,0
是整数。它们在python中永远不会相等,因此循环将永远重复。此外,在循环中不做任何更改line
变量的值的操作。它将永远保持循环开始前分配的第一个值,条件永远不会改变。你知道吗相关问题 更多 >
编程相关推荐