所以,我想从bookfile.txt文件并显示其中的信息。到目前为止,我已经打开了文件。我很难把每一行作为arrayBooks的一个对象。你知道吗
我想要arrayBooks[0]=“动物农场,1945152,乔治·奥威尔”
然后,我将使用book1=arrayBooks[0].split(',')将其拆分为其他信息,例如:
book1[0]="Animal Farm"
book1[1]=1945
book1[2]=152
book1[3]="George Orwell"
所以,当我想找到最短的书时,我可以比较book1[2]到book2[2]和book3[2]这样做。你知道吗
我的主要问题是获取数组中的信息并使其可用。我尝试的任何方法似乎都不起作用,并且在displayAll()函数中出现错误。你知道吗
我使用displayAll()作为控件,因为我觉得如果我可以得到要显示的信息,我就可以使用它。你知道吗
你知道吗bookfile.txt文件地址:
动物农场,1945152,乔治·奥威尔
杀死一只知更鸟,1960324,哈珀李
《傲慢与偏见》,1813279,简·奥斯汀和安娜·昆德伦
def main():
print("Welcome!")
displayBookMenu()
populateBooks()
displayAll(populateBooks())
def displayBookMenu:
print("\n1: Display All Books")
print("2: Display Shortest Book")
print("3: Display Longest Book")
print("3: Display Oldest Book")
print("4: Display Newest Book")
print("0: End")
choice = int(input("Choice: "))
if choice == 1:
displayAll()
elif choice == 2:
displayShortest()
elif choice == 3:
displayLongest()
elif choice == 4:
displayOldest()
elif choice == 5:
displayNewest()
elif choice == 0:
exit()
else:
print("Invalid Input")
def populateBooks():
fp = open("bookfile.txt", "r")
return fp.readlines()
def displayAll(arrayBooks):
print ("\nAll Books: \n")
#THIS IS WHERE I GET ERROR vvv
print arrayBooks[0]
def displayShortest():
def displayLongest():
def displayOldest():
def displayNewest():
main()
试试这个:
lines = [line.strip().split(',') for line in open("books.txt")]
使用列表压缩,您可以将文件读入名为
lines
的列表,并将文件中的每一行转换为列表列表。你知道吗以下是我运行时得到的结果:
现在有许多编辑。在这里。一定要仔细看:
删除
displayBooks(populateBooks())
,而将其放在if choice ==1
语句中。你知道吗首先,你有一个错误
你不能读ArrayBooks,因为它不是一个全局(或非局部)变量。我想你在变量范围上有问题。检查此项:Python variable scope error
相关问题 更多 >
编程相关推荐