如何在不带有尾随换行符的情况下进行打印?
如何在不带有尾随换行符的情况下进行打印?
这个问题在这里已经有答案了:
我正在尝试创建一个程序,它可以将来自澳大利亚原住民语言的输入转换成英语。虽然程序的其余部分是有效的,但输出以错误的格式打印出来。我收到的输出是:
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日
我添加了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
我想说这是文件中的换行符,你把它保存在名为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()