“编写一个函数,playerHasLastInitial(filename,char)接受一个文件名和一个字母作为输入 如果花名册上的球员的姓氏以该字符开头,则返回True,否则返回False。 我们希望避免将整个文件加载到内存中,因此请使用while循环和file readline()方法,而不是readlines()或read()方法
我需要使用while循环,但不能使用dict
所以第一列中的名称是first和last,所以当我尝试将它们拆分为两个单独的项时,会得到“IndexError:string index out of range”
def playerHasLastInitial(filename, char):
f = open(filename, "r")
while True:
lines = f.readline()
for v in lines:
name = v.split(" ")[0]
lastName = name[1]
if char in lastName:
return True
else:
return False
所以我应该:
playerHasLastInitial('C:\Users\wpqx1\Documents\hw5\cubsRoster.csv', 'A') True
我得到"IndexError: string index out of range"
当您这样做时:
你只有一行。所以当你下一步做的时候:
lines
是一个长字符串,所以v
一次只有1个字符,所以name
也是1个字符。所以当你下一步做的时候:出现错误,因为
name
没有索引“1”,只有索引“0”你需要放下循环,然后做:
并建议更改一些变量的名称(例如
line
而不是lines
,因为一次只有一行)相关问题 更多 >
编程相关推荐