Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7:简单';对于';循环实现_Python_Python 2.7_Loops_For Loop - Fatal编程技术网

Python 2.7:简单';对于';循环实现

Python 2.7:简单';对于';循环实现,python,python-2.7,loops,for-loop,Python,Python 2.7,Loops,For Loop,我是编程新手,在理解我遇到的Python“for”循环实现示例背后的逻辑时遇到了一些困难: s="abcdefg" t="" for a in s: t=a+t 我不明白为什么这段代码返回“gfedcba”。为什么它应该与以下代码不同: s="abcdefg" t="" for a in s: t=t+a 。。。返回“abcdefg”。两个代码段中的for循环是相同的。区别在于您对t所做的操作。在每次迭代中,第一个片段在字符串t前面加上字符a,有效地反转原始字符串s。在每次迭代中

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

s="abcdefg"
t=""
for a in s:
   t=a+t
我不明白为什么这段代码返回“gfedcba”。为什么它应该与以下代码不同:

s="abcdefg"
t=""
for a in s:
   t=t+a

。。。返回“abcdefg”。

两个代码段中的
for
循环是相同的。区别在于您对
t
所做的操作。在每次迭代中,第一个片段在字符串
t
前面加上字符
a
,有效地反转原始字符串
s
。在每次迭代中,第二个代码段在字符串
t
的末尾添加
a
字符,有效地重新创建原始字符串
s

实际上,您会问为什么
a+t
t+a
不相等

这里,
+
表示而不是,字符串串联不是:

思考代码的一种方式是

t = a + t
t
前面插入
a
,而

t = t + a

将其插入背面。

遵循如下逻辑:

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

t = a + t
所以t=“a”

所以t=“ba”

所以t=“cba”


串联与加法不同。秩序很重要

一个将字符放在末尾,另一个将字符放在前面,如果在循环中打印,它应该非常清晰好的问题,我不知道可以像这样反转字符串:p。顺便说一句,这在Python3上也适用。
t = a + t
t = a + t
t = a + t