有人可以帮我理解为什么下面的函数不打印出字符串的反转?我究竟做错了什么?使用反向索引的字符串反转函数
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