奇怪的python bug。变量值无需任何修改即可更改

时间:2018-04-23 23:43:31

标签: python python-3.x

在函数" enText"即使我不修改它也会改变它的价值。

e = 5且n = 6.enText是一个整数数组。 我将数组中的值传递给changeTxt后修改它。然后我返回changeTxt,但由于某种原因,enText最终也被修改了。

不知道为什么。

#Function for encryption
    def encrypt(e, n, enText):

        #e=5 & n=6
        changeTxt = enText

        print(enText)
        #prints [18, 15, 2, 9, 14]

        for x in range(0, len(changeTxt)):

            #problem here!!!!!!!!
            tmp = changeTxt[x]**e
            tmp = tmp % n
            changeTxt[x] = tmp

        print(enText)
        #prints [0, 3, 2, 3, 2]

        return changeTxt

1 个答案:

答案 0 :(得分:0)

你的行

changeTxt = enText

仅复制对列表的引用,但两者都指向同一列表。因此,changeTxt的更改也会影响enText

而是尝试像这样克隆列表:

changeTxt = enText[:]

changeTxt = list(enText)