我的目标是制作一个程序,用于创建抽认卡和练习语言。现在我只想读入一个包含单词和翻译的.txt文件,从中创建一个列表,然后打印该列表。你知道吗
我是个编程初学者。你知道吗
我的问题是,当它打印列表时,它看起来是这样的:
att arbeta - travailler
att ga - marcher
att tala
- parler
最后一个词夫妻总是一行低。应该是这样的:
att arbeta - travailler
att ga - marcher
att tala - parler
我的代码:
wordList=[]
def main ():
buildList()
for i in range(len(wordList)):
print(wordList[i].returnPair())
class wordCouple():
def __init__(self, freWord, engWord):
self.freWord = freWord
self.engWord = engWord
def returnPair(self):
x = self.engWord + " - " + self.freWord
return x
def returnEng(self):
return self.engWord
def returnFre(self):
return self.freWord
def buildList():
f=open("test.txt", "r")
if f.mode == 'r':
contents =f.read()
data = contents.split("|")
for i in range(len(data)): #I think the problem is here. Here I
wordSplit = data[i].split (",")
wordList.append(wordCouple(wordSplit[0],wordSplit[1]))
else:
print("could not read text file")
main()
这就是测试.txt我在程序中使用的文件看起来像。你知道吗
travailler, att arbeta| marcher, att ga| parler, att tala
当您读入数据行时,它的末尾有一个换行符;当您
.split()
得到这个结果时,这些部分中的最后一个(这里,parler, att tala
)仍然在结尾有一个换行符;因此,当您再次拆分它时,您仍然在att tala
上有一个换行符(还有前导空格)。你知道吗使用字符串的
.strip()
方法删除前导和尾随空格-它会生成一个新字符串(不能就地修改字符串)。你知道吗但当你注意到我的时候:
不要这样做;如果有人教你这样做,不要再听那个人或消息来源的话;如果是你自己提出的,那就回顾一下你的理解和推理。在Python中,
for
循环已经直接为您提供了底层iterable(这里是wordList
)的内容;使用这样的代码,您将不遗余力地使事情变得更加困难。你想要的是:也就是说:你直接问每个
word
并使用它,而不是问有多少个单词,然后算出从0到该计数(不包括在内)的所有数字,然后分别问这些数字,最后用这些数字来抓取单词。简单:)相关问题 更多 >
编程相关推荐