有人可以幫我理解爲什麼下面的函數不打印出字符串的反轉?我究竟做錯了什麼?使用反向索引的字符串反轉函數
def myReverse(data):
for index in range(len(data)-1, -1, -1):
return data[index]
print(data[index])
myReverse('blahblah')
有人可以幫我理解爲什麼下面的函數不打印出字符串的反轉?我究竟做錯了什麼?使用反向索引的字符串反轉函數
def myReverse(data):
for index in range(len(data)-1, -1, -1):
return data[index]
print(data[index])
myReverse('blahblah')
當你的函數內的return
呼叫時,控制又回到了父母(其執行的功能)return
後忽略的功能範圍內的代碼。在你的情況下,這就是你的代碼沒有執行print
的原因。
在return
之前移動包含print
的行並將return
移動到for
循環的外部。你的代碼應該可以工作。
建議: 有扭轉使用::-1
串簡單的方法。例如:
>>> my_string = 'HELLO'
>>> my_string[::-1]
'OLLEH'
非常感謝。我明白現在發生了什麼......解決了。 – Joshua
您在打印前正在返回。所以行print(data[index])
永遠不會被執行。
下面的代碼將工作得很好。
def myReverse(data):
for index in range(len(data)-1, -1, -1):
print(data[index] , end = '')
請注意,這是一個python3解決方案。 Python2中的print
不能像那樣工作。
所以,在python2中得到相同的效果,首先從__future__
導入print
。
from __future__ import print_function
然後,與上面相同。
非常豐富,謝謝。 – Joshua
簡介:一個for
循環的執行將停止一旦遇到return
陳述或break
陳述或者有一個例外。
你有一個return
聲明這使得for
循環停止(返回控制給調用者)只要聲明在第一次迭代中遇到。
移動return
語句for
循環
明白了。乾杯! – Joshua
'return' **退出函數**那裏,然後外面;你只是返回當時的最後一個元素。 'print()'永遠不會到達。 –
您正在返回第一個循環。它永遠不會達到打印功能。 –
可能重複[在Python中反轉字符串](http://stackoverflow.com/questions/931092/reverse-a-string-in-python) – ElmoVanKielmo