首页 > 解决方案 > 如何在没有尾随换行符的情况下打印?

问题描述

我正在尝试创建一个程序,该程序接受输入,然后将其从澳大利亚土著语言转换为英语。虽然程序的其余部分正常运行,但输出以错误的格式打印。我收到的输出是:

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

标签: python

解决方案


我会说它是文件中的换行符,你保留在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()

推荐阅读