XZUXuVanyu 发表于 2020-12-23 21:24:44

这个怎么解释,这两个的输出不应该是一样的吗

r = ["qte","f","10235","true"]
print(r)
b=a=""
fori in r:
        a=a+i
        b=i+b
print(a,b)
这一段代码a的输出是qtef10235true,但是b的输出却是true10235fqte
两个都是从空字符串开始让每个r中的元素相加,为什么会反过来呢?

jackz007 发表于 2020-12-23 21:43:54

   a = a + i
            新的元素 i 靠后,每次都被添加到 a 的后面,所以,越靠后,元素越新(正序)
   b = i + b
            新的元素 i 靠前,每次都被添加到 b 的前面,所以,越靠前,元素越新(逆序)
            这就是 2 种加法的区别。

小伤口 发表于 2020-12-23 21:44:43

本帖最后由 小伤口 于 2020-12-24 10:20 编辑

r = ["qte","f","10235","true"]

b=a=""
fori in r:
      a=a+i
      print('a:',a)
      b=i+b
      print('b:',b)
print(a,b)

a: qte
b: qte
a: qtef
b: fqte
a: qtef10235
b: 10235fqte
a: qtef10235true
b: true10235fqte
qtef10235true true10235fqte
先分析a
第一次 qte
第二次因为a在前之前a为qte
所以第二次为qtef如此往复

分析b:
第一次 qte
第二次因为i在前所以f在前 qte在后
为fqte如此往复具体见上面代码

XZUXuVanyu 发表于 2020-12-25 19:07:51

小伤口 发表于 2020-12-23 21:44
先分析a
第一次 qte
第二次因为a在前之前a为qte


懂了谢谢

XZUXuVanyu 发表于 2020-12-25 19:10:08

jackz007 发表于 2020-12-23 21:43
新的元素 i 靠后,每次都被添加到 a 的后面,所以,越靠后,元素越新(正序)

         ...

谢谢
页: [1]
查看完整版本: 这个怎么解释,这两个的输出不应该是一样的吗