【发布时间】:2019-08-21 05:39:48
【问题描述】:
以下程序正在反转字符串,但我不知道如何。
s='Marrey has a little lamb'
def reverse(s):
str=''
for i in s:
str=i+str
return str
print(reverse(s))
但是,当我写 str=str+i 时,它并没有反转。它背后的逻辑可能是什么?我是python初学者,请帮忙。
【问题讨论】:
-
要了解发生了什么,请将迭代写在纸上。
-
为什么不直接调试并逐步遍历循环的每个迭代,并观察 str 的值?
-
我观察到了这些值,但没有得到逻辑。 for 循环应在 i 中一次分配一个字符,然后将其附加到“str”。但是它是如何以相反的顺序附加的呢?
-
@Pratik 它不是附加的,而是将它添加到字符串的 begining 中。
-
好的,但是当我以正确的顺序获取值时,为什么或如何以相反的顺序?
标签: python-3.x for-loop