2017-02-12 98 views
2

因为我只是一个初学者,所以我在Python 3.5中创建了一个小型单字猪拉丁语翻译器。我有我的粗略代码,但我真的很喜欢你的意见,如何使它更紧凑,pythonic,和“优雅”(即专业)。任何帮助表示赞赏,谢谢!在Python中“清理”基本猪拉丁语翻译器

#Converts a word into pig latin, needs to be cleaned up 
def pig_latin(word): 
    word = list(word) 
    first_letter = word[0] 
    del word[0] 
    word.insert(len(word),first_letter) 
    word.insert(len(word),'ay') 
    print(''.join(word)) 
+3

那么对于初学者'x.insert(LEN(X)中,y)'相当于'x.append(Y)'。 –

+1

添加文档字符串,以描述输入和预期输出。 –

+2

由于你有工作代码,这可能更适合于[代码评论](http://codereview.stackexchange.com/) –

回答

2

你不需要将字符串转换到一个列表,做一些魔术,并把它转换回:如果你在一个字符串适用[1:],你没有得到的第一个字符的字符串。所以,你可以很容易地把它翻译成:

def pig_latin(word): 
    print('%s%say'%(word[1:],word[0])) 

或等价:

def pig_latin(word): 
    print('{}{}ay'.format(word[1:],word[0])) 

这里我们使用字符串格式化:所以我们在第一%s被替换为word[1:]这样的方式代替'%s%say',而第二与word[0]后跟'ay'

这产生:

>>> pig_latin('foobar') 
oobarfay 
+1

我会用'.format'来更清楚你在做什么。 –

+2

非常聪明!好主意,谢谢。 – 9voltWolfXX