Python 2.7:简单的'for'循环实现

wal*_*son 4 python loops for-loop python-2.7

我是编程新手,我在理解Python'for'循环实现示例背后的逻辑时遇到了一些困难:

s="abcdefg"
t=""
for a in s:
   t=a+t
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么这段代码返回"gfedcba".为什么它应该与以下任何不同:

s="abcdefg"
t=""
for a in s:
   t=t+a
Run Code Online (Sandbox Code Playgroud)

......返回"abcdefg".

NPE*_*NPE 5

实际上,你在问为什么a + tt + a不等同.

这里,+表示字符串连接而不是加法,字符串连接不是可交换的:

>>> "a" + "b"
'ab'
>>> "b" + "a"
'ba'
Run Code Online (Sandbox Code Playgroud)

思考代码的一种方法是

t = a + t
Run Code Online (Sandbox Code Playgroud)

插入a在前面t,而

t = t + a
Run Code Online (Sandbox Code Playgroud)

将它插在后面.


Wil*_*ard 5

按照这样的逻辑:

s="abcdefg"
t=""
Run Code Online (Sandbox Code Playgroud)

这些是起始变量,现在让我们"展开"for循环.请记住,"a"代表"s"的每个字符,从头到尾:

t = a + t
Run Code Online (Sandbox Code Playgroud)

所以t ="a"

t = a + t
Run Code Online (Sandbox Code Playgroud)

所以t ="ba"

t = a + t
Run Code Online (Sandbox Code Playgroud)

所以t ="cba"

连接不像添加.订单很重要!