Python 执行while循环和for循环矩阵,并附带终止循环的条件

Python 执行while循环和for循环矩阵,并附带终止循环的条件,python,Python,Halo,我是编程和python新手。上次我发布了一个关于循环的问题,我已经理解了这个概念,并开发了几个算法。现在,我试图将这个概念应用到矩阵和列表上。下面是我试图迭代的代码: import numpy as np R=np.matrix([[1,2,1,3,4,2],[2,1,2,1,2,3],[1,1,2,3,1,2],[1,2,3,1,1,1],[2,1,2,4,1,2], [1,3,1,1,2,3]])# this 6 by 6 matrix loads=np.transpose(np

Halo,我是编程和python新手。上次我发布了一个关于循环的问题,我已经理解了这个概念,并开发了几个算法。现在,我试图将这个概念应用到矩阵和列表上。下面是我试图迭代的代码:

import numpy as np
R=np.matrix([[1,2,1,3,4,2],[2,1,2,1,2,3],[1,1,2,3,1,2],[1,2,3,1,1,1],[2,1,2,4,1,2],
[1,3,1,1,2,3]])# this 6 by 6 matrix

loads=np.transpose(np.matrix([0,0,0,0,0,0])) # this is starting load
tk=[2,2,2,2]
stress=[]
kk=True
while (kk):
for i in range(len(tk)):
    loads+=np.transpose(np.matrix([1,0,0,0,0,0]))
    mid=R*loads
    stress_k=mid[0:3]+tk[i]*mid[3:6]
    stress.append(stress_k)
    stressk=(np.bmat(stress))
    s=stressk[0:1,i:i+1]
    if s>20:
        kk=False
        break

print(stressk)
print(loads)
print(i)
print(s)
问题是,当我尝试打印终止负载时,打印循环直到范围长度为4,并一遍又一遍地重复循环。重复向量是[[12]]无穷大。超过打印负载的更多内容在不影响输出的情况下无限增加
应力k值。我的目的是在荷载达到一定值时停止循环,使应力k矩阵[i,j]的元素大于20,在这种情况下,我选择了第一行,并循环通过列[0:1,i:i+1]。我试过许多其他的方法,但找不到错误。我请求是否有人可以修复代码或告诉我是否存在任何其他方法。提前感谢jack,有必要吗?不要使用break。使用具有多个条件的循环。我想是的,因为循环将在rangelentk的末尾终止并停止循环。但是,如果我使用while,它将继续,直到条件s>20并打破循环。user189如果您希望一直运行到s>20,请检查缩进。按原样,if子句在for循环中运行。您希望它在while循环中的for循环之外运行。如何避免中断?通过使用elif和其他?阿尔马内格拉