我正在尝试创建一个猪拉丁语翻译程序。它是GitHub上我正在完成的100个项目的一部分。在我付出真正的努力之前,我不想检查解决方案。
这是我目前的代码,它确实完成了翻译,但问题是它在替换字母周围输出了一些难看的引号。
words = raw_input("Enter some text to translate to pig latin: ")
print "You entered: ", words
#Now I need to break apart the words into a list
words = words.split(' ')
#Now words is a list, so I can manipulate each one using a loop
for i in words:
if len(i) >= 3: #I only want to translate words greater than 3 characters
i = i + "%ray" % (i[0]) #The magical translator!
i = i[1:] #I want to print the translation, but without the first letter
print i.strip("'")
当我运行这个程序时,我得到了这个结果:
You entered: hello world
ello'h'ay
orld'w'ay
我不知道如何从我翻译的单词中删除引文。我想我会使用.join命令重新创建翻译的句子,但我现在正处于障碍中。
我试过了:
i = i.strip("'")
但这也不起作用。 谢谢!
答案 0 :(得分:2)
您无需更换任何东西。这是导致问题的格式字符串中的'%r'。
改变这个:
i = i + "%ray" % (i[0])
进入这个:
i = i + "%say" % (i[0])
......一切都会好的。
答案 1 :(得分:1)
如果您要删除的字符不在字符串的末尾,则str.strip
将无效。
相反,你应该在这里使用str.replace
:
print i.replace("'", "")
观看演示:
>>> 'aba'.strip('b')
'aba'
>>> 'aba'.replace('b', '')
'aa'
>>>
答案 2 :(得分:1)
.strip()
剥去字符串的边距。请改用.replace("'")
for i in words:
if len(i) >= 3:
i = i + "%ray" % (i[0])
i = i[1:]
print i.replace("'")
输出:
You entered: hello world
ellohay
orldway