儘量只:
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