Skip to main content
 首页 » 编程设计

Python,为什么 i=+1 不会导致无限循环

2025年05月04日24xing901022

<分区>

所以前几天我因为打字错误而陷入困境。我没有使用 i += 1 遍历我的嵌套循环,而是使用 i=+1。直到我开始打印步数并看到它连续打印第 1 步时,我才注意到这一点。因此,我得到的情节没有任何意义。

但是我不明白的是为什么我得到了任何情节,而且代码没有陷入无限循环?另外,我应该只是在步数进行到一半之后才计算数据,所以我根本不明白我是怎么有数据的。还是 i =+ 1 有别的意思?我似乎在网上找不到太多关于 i=+1 的信息

这是原始代码的精简版:

for temp in np.linspace(1.0,4.0,num=100):    
    energyarray = [] 
    for step in np.arange(0, sw*2):     
        for i in range(n-1): 
           for j in range(n-1): 
 
            H_old = -J*matrix[i,j]*(matrix[i,j-1] + matrix[i,j+1] + matrix[i-1,j] + matrix[i+1,j]) 
            H_new = J*matrix[i,j]*(matrix[i,j-1] + matrix[i,j+1] + matrix[i-1,j] + matrix[i+1,j])    
            del_H = H_old-H_new 
            if del_H >= 0: 
                matrix[i,j] = -matrix[i,j] 
            elif del_H < 0: 
                    prob = np.exp((del_H)/(temp))    
                    rand = random.random() 
                    if rand < prob: 
                        matrix[i,j] = -matrix[i,j] 
                    else: 
                        matrix[i,j] = matrix[i,j]   
 
        if step >= (sw): 
 
            Ene = EnergyCal(matrix) 
            energyarray.append(Ene) 
 
 
        step =+ 1  
 
 
    energy_sum = [] 
    energy_sum = sum(energyarray) 
 
 
    plt.figure(10) 
    plt.plot(temp, energy_sum, 'ro') 
 
 
plt.show()