Python - 使用while循环返回顶部循环

时间:2016-03-24 18:47:48

标签: python loops while-loop

我正在编程4参数RAINFLOW方法。因此,我们的想法是在负载历史中获得标准加载周期,这些加载周期由4个需求定义,负载历史通常由几个1000,10000甚至更多点(强制时间)组成。您需要在此加载历史记录中查找2个标准循环,即上升和下降example here。两者都显示在图片中。你总是从头开始并尝试找到其中一个周期,如果你没有从第一个点成功,你向上移动一个点(j = j + 1)并重新开始。找到一个循环后,删除第二个和第三个点(y1和y2)并从头开始。

我以这样的方式做了alghoritm,它首先确定加载历史的第二个点是否高于第一个或更低,以便它知道首先查看哪个周期(从哪里开始)。从那里开始,它只是搜索需求,也列在图片中。

我的问题:  我想以这样的方式编程:如果找到2个循环中的非循环,程序将向j添加+1并再次从顶部开始并且将这样做直到找到循环。我确实使用了while循环并尝试使用true / false,但它确实有效。什么都没发生......如果某人有想法的话。

y只是随机点向量的一个简短例子。

y = [0.00, 2.00, 4.00, 5.00, 5.50, 6.00, 5.00, 4.00, 3.20, 3.50, 4.00, 4.50,   4.70, 4.80, 5.00, 4.50, 4.30, 4.00, 3.00, 2.00, 1.00, 
 1.50, 2.50, 4.00, 4.50, 2.50, 1.50, 0.50, 0.30, 2.50, 3.00, 1.50, 2.00, 2.50, 5.00, 5.50, 6.00, 6.20, 5.50, 3.00]


a = []
for j in range(len(y)):
while j<(len(y)-4):
    if y[j+1] > y[j]:
        while False:
            if y[j+2] >= y[j] and y[j+3] >= y[j+1]:
                True 
                a.append(y[j+1])                
                del y[j+1]
                a.append(y[j+1])                
                del y[j+1]
            else:
                j = j+1
                if y[j] >= y[j+2] and y[j+1]>= y[j+3]:
                    stavek = True
                    a.append(y[j+1])                    
                    del y[j+1]
                    a.append(y[j+1])                    
                    del y[j+1]
                else:
                    j=j+1
                    False

    elif y[j+1] < y[j]:
        while False:
            if y[j+2] <= y[j] and y[j+3] <= y[j+1]:                    
                a.append(y[j+1])
                del y[j+1]
                a.append(y[j+1])
                del y[j+1]
            else:
                j = j+1
                if y[j] <= y[j+2] and y[j+1]<= y[j+3]:
                    stavek = True
                    a.append(y[j+1])
                    del y[j+1]
                    a.append(y[j+1])
                    del y[j+1]
                else:
                    j=j+1
                    False

1 个答案:

答案 0 :(得分:0)

var className = oModelConf[sModelName].type || "sap.ui.model.odata.ODataModel"; var urn = className.replace(".", "/"); //Convert to unified resource name sap.ui.require([urn],function(ModelClass){ //This function is called when the module is available var model = new ModelClass(); ... }); 将永远不会执行,因为不符合条件。也许你应该研究while False - &gt; do因此它至少运行一次,并引入一个新变量,您将其设置为true或false以继续循环。