用Python将句子转换为拉丁语

用Python将句子转换为拉丁语,python,python-3.x,Python,Python 3.x,我必须用Python编写一个程序,将句子转换成。Pig拉丁语的定义是:取每个单词的第一个字母,放在单词的末尾,在每个单词的末尾加上“ay”。我不知道如何从字符串中的每个单词中分离出第一个字母,更不用说将其添加到末尾了。我假设一旦我将其删除,有一种方法可以将其连接到新词,然后再连接“ay”。我在这里迷路了。经过无数次的尝试和错误,这就是我所拥有的一切,即使这样,似乎也不能正常工作。非常感谢您的帮助 def main(): sentence = input('Type wha

我必须用Python编写一个程序,将句子转换成。Pig拉丁语的定义是:取每个单词的第一个字母,放在单词的末尾,在每个单词的末尾加上“ay”。我不知道如何从字符串中的每个单词中分离出第一个字母,更不用说将其添加到末尾了。我假设一旦我将其删除,有一种方法可以将其连接到新词,然后再连接“ay”。我在这里迷路了。经过无数次的尝试和错误,这就是我所拥有的一切,即使这样,似乎也不能正常工作。非常感谢您的帮助

def main():        
    sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
    sentence_list = sentence.split()

    for part in sentence_list:
        first_letter = part[0]

main()
这里有一个快速的

def main():
    words = str(input("Input Sentence:")).split()
    for word in words:
        print(word[1:] + word[0] + "ay", end = " ")
    print ()

main()
更好的解决方案可能是使用列表理解,这样您就可以实际使用输出,但这会满足您的要求

编辑: 这适用于python3.x
如果你想让它为python2工作,你会有更多的乐趣。只需将每个单词的字符串相加,然后打印结果字符串。

代码如下:

def main():
        lst = ['sh', 'gl', 'ch', 'ph', 'tr', 'br', 'fr', 'bl', 'gr', 'st', 'sl', 'cl', 'pl', 'fl']
        sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
        sentence = sentence.split()
        for k in range(len(sentence)):
                i = sentence[k]
                if i[0] in ['a', 'e', 'i', 'o', 'u']:
                        sentence[k] = i+'ay'
                elif t(i) in lst:
                        sentence[k] = i[2:]+i[:2]+'ay'
                elif i.isalpha() == False:
                        sentence[k] = i
                else:
                        sentence[k] = i[1:]+i[0]+'ay'
        return ' '.join(sentence)

def t(str):
        return str[0]+str[1]

if __name__ == "__main__":
        x = main()
        print(x)
bash-3.2$ python3 pig.py
Type what you would like translated into pig-latin and press ENTER: my gloves are warm
ymay ovesglay areay armway
bash-3.2$ 
运行方式为:

def main():
        lst = ['sh', 'gl', 'ch', 'ph', 'tr', 'br', 'fr', 'bl', 'gr', 'st', 'sl', 'cl', 'pl', 'fl']
        sentence = input('Type what you would like translated into pig-latin and press ENTER: ')
        sentence = sentence.split()
        for k in range(len(sentence)):
                i = sentence[k]
                if i[0] in ['a', 'e', 'i', 'o', 'u']:
                        sentence[k] = i+'ay'
                elif t(i) in lst:
                        sentence[k] = i[2:]+i[:2]+'ay'
                elif i.isalpha() == False:
                        sentence[k] = i
                else:
                        sentence[k] = i[1:]+i[0]+'ay'
        return ' '.join(sentence)

def t(str):
        return str[0]+str[1]

if __name__ == "__main__":
        x = main()
        print(x)
bash-3.2$ python3 pig.py
Type what you would like translated into pig-latin and press ENTER: my gloves are warm
ymay ovesglay areay armway
bash-3.2$ 

此代码使用找到的逻辑。

您是否尝试查看一些已经存在的问题?相关:。特别是,看看我的理解,我可以引用一个单词减去第一个字母,比如用一个单词[1:]。我只是不知道如何把这些信息放在一起。我已经看过了。piglatin的单词翻译不同,所以我找不到与我想做的事情的关联。我猜这也太新了?我在Python 3中,忘了这么说。Sorrydrop
str()
。您可以使用
word[:1]
而不是
word[0]
word[1:][/code>对称。遵循pep-8,不要在参数的
=
符号周围使用空格。