尽量只:
reverse(hello)
其实与
print reverse(hello)
要打印反向的返回值。那个返回值是None。
让我给你几个建议一般:
反向()在你的代码是有副作用(打印)功能。你应该避免 功能的副作用,当你不需要考虑具有反()返回这个词,而不是打印出来的:
def reverse(letters):
backwards = ""
i = len(letters) - 1
while i >= 0:
backwards = backwards + letters[i]
i = i - 1
return backwards
print (reverse("hello"))
而且
i = len(letters) - 1
while i >= 0:
backwards = backwards + letters[i]
i = i - 1
不易十个分量,如果你给循环添加功能,递减i = i-1将远离它应该在'概念'上的地方。你应该更喜欢用支票一起有递减:
for i in xrange(len(letters)-1,-1,-1):
backwards = backwards + letters[i]
当我懒我写
myString = myString + fewChars
,所以我能理解你的懒惰。但添加几个字符不会修改myString,但会创建一个新的字符串。如果你迭代添加许多字符,很少最有效的方法是逐个添加。考虑使用join()。 例如
letters = 'word'
lettersList = [letters[i] for i in xrange(len(letters)-1,-1,-1)]
myReversed ''.join(lettersList)
好,我同意无法读取,可能没能更快,但对于更大的字符串它缩放比newString = oldString + oneChar方法更好。
这就是说,更Python接近
letters[::-1]
有人已经建议比我快一般的效果要好得多,很容易由Python程序员阅读。
[可能的函数列表中的项返回。 Python](http://stackoverflow.com/questions/18990977/return-items-from-list-in-function-python) – Freddie