如何在不带有尾随换行符的情况下进行打印?

10 浏览
0 Comments

如何在不带有尾随换行符的情况下进行打印?

这个问题在这里已经有答案了:

如何读取没有换行符的文件?

我正在尝试创建一个程序,它可以将来自澳大利亚原住民语言的输入转换成英语。虽然程序的其余部分是有效的,但输出以错误的格式打印出来。我收到的输出是:

ngaju
kuja-piya
malilyi

我想要接收的是:

ngaju kuja-piya malilyi

这是我的完整代码:

dictionary = open('dictionary.txt')
words = {}
for line in dictionary:
  english, aboriginal = line.split(',')
  words[english] = aboriginal
translator = input("English: ")
while translator:
  sentence = translator.split()
  for word in sentence:
    print(words[word], end='')
  translator = input("English: ")

这是dictionary.txt的内容:

afternoon,wuraji-wuraji
I,ngaju
bird,jirripirdi
like,kuja-piya
dance,juka-pinyi
python,malilyi
laugh,ngarlarrimi
we,ngalipa

admin 更改状态以发布 2023年5月22日
0
0 Comments

我添加了strip()函数以去除每个单词的尾随空格,像这样:

dictionary = open('dictionary.txt')
words = {}
for line in dictionary:
    english, aboriginal = line.split(',')
    words[english] = aboriginal.strip()
translator = input("English: ")
while translator:
    sentence = translator.split()
    print(' '.join(words[word] for word in sentence))
    translator = input("English: ")

输入

I like python

输出

ngaju kuja-piya malilyi

0
0 Comments

我想说这是文件中的换行符,你把它保存在名为aboriginal的变量中,它的值可能是ngaju\n,所以当你打印它时,\n会换行,添加rstrip()操作以删除前导空格/换行符

for line in dictionary:
    english, aboriginal = line.rstrip().split(',')
    words[english] = aboriginal


最安全的方法是对两个单词应用.strip()以确保只取所需的内容,但如果文件格式良好(没有空格),这有点过度了

for line in dictionary:
    english, aboriginal = line.split(',')
    words[english.strip()] = aboriginal.strip()

0