你为啥不在 for 内,实时打印 txt 呢
你一个是 每次 都用 txt 来进行 循环去除
这样 每次 都是 旧的
这段文字,
最后一次循环 也是把旧的去除了
如:
1,2,3,4,5
12,3,4,5
1,23,4,5
1,2,34,5
1,2,3,45
第一段程序大致运行结果是这样
所以你拿到的是 1,2,3,45
第二段代码
每次 去除了,然后 把新的值继续去除
就好比
1,2,3
第一次 12,3
第二次 是 一12,3 来基础 replace ,而不是 以 1,2,3 来 replace
这样的结果就是
123
想要理解为何回出现两种不同的答案,首先需要知道这组代码是怎么运行的
IN[35] 段代码中,txt在replace后赋值给新变量txt_new,由于for循环遍历字符串就是逐个取单元素,自然循环结束时最后一个replace替换的字符串就是?txt_new在循环中不断被重复赋值直至循环结束,
故最终结果等同于
txt_new = txt.replace("?","")
由于将结果赋值给新的变量,并未改动到原有的txt,所以txt的结果保持不变
IN[36]段代码中
由于遍历后将结果赋值给原有变量的,所以txt的值在每次循环之后都会替换成新的赋值,这点你可以参考下自增和自减那样的操作。
可打印遍历过程如下:
删除这个“文本”中的。中文?标点符号
删除这个“文本”中的中文?标点符号
删除这个文本”中的中文?标点符号
删除这个文本中的中文?标点符号
删除这个文本中的中文标点符号
以上便是对该问题的解答
x = 5
y = x + 5
>>> print(x)
5
>>> print(y)
10
x = 5
x = x + 5
>>> print(x)
10