def reverse(x):
output = ""
for c in x:
output = c + output
return output
print(reverse("Hello"))
此代码可以很好地逆转Python的字符串,我似乎不明白它为什么工作以及如何工作。
例如,如果我迭代一根字符串,通常它将从" H"开始迭代并打印,然后延伸到" O"。在这里怎么样,它倒退了?
如果将一些输出输出到循环中,则可以看到代码如何填充字符串。
def reverse(x):
output = ""
for c in x:
output = c + output
print(output)
return output
print(reverse("Hello"))
因此,您可以看到它的工作原理:
H
eH
leH
lleH
olleH
olleH
因此,您将最后一个算到末尾,这就是您扭转它的方式。如果您在循环中切换以下行:
output = output + c
然后订单不相反:
H
He
Hel
Hell
Hello
Hello
此循环跨越字符串的字符,对于每个字符 prepends 它到当前结果。
让我们跟踪output
的值,因为我们越过字符(c
值(:
c output
H H
e eH
l leH
l lleH
o olleH
每次字符进入循环时,都会将其附加到输出中。最初输出="
so tor迭代1:output ="
c = "H"
output = "H" + "" = "H"
迭代2:输出=" H"
c = "e"
output = "e" + "H" = "eH"
迭代3:输出=" EH"
c = "l"
output = "l" + "eH" = "leH"
迭代4:输出=" leh"
c = "l"
output = "l" + "leH" = "lleH"
迭代5:输出=" lleh"
c = "o"
output = "o" + "lleH" = "olleH"
因此,最终结果是" Olleh"