这段代码如何在Python中反向转换字符串

时间:2019-06-27 18:49:27

标签: python python-3.x string reverse

def reverse(x):
    output = ""
    for c in x:
        output = c + output

    return output

print(reverse("Hello"))

此代码可以很好地在Python中反转字符串,我似乎无法理解为什么它起作用以及如何起作用。

例如,如果我迭代一个字符串,通常它将迭代并从“ H”开始打印,然后一直向下到“ O”。这是怎么回事?

3 个答案:

答案 0 :(得分:2)

如果在循环中添加一些输出,则可以看到代码如何填充字符串。

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

答案 1 :(得分:1)

此循环遍历字符串的字符,并为每个字符加上它到当前结果。

当我们遍历字符(output值)时,让我们跟踪c的值:

c output
H H
e eH
l leH
l lleH
o olleH

答案 2 :(得分:0)

每当一个字符进入循环时,它将被附加到输出中。 最初输出=“”

因此对于迭代1:输出=“”

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”