首页 > 解决方案 > 条件在python中工作异常:

问题描述

尝试通过一些基本算法:

在我编写的这段代码中绞尽脑汁,但并不总是有效:

for j in range(1,n): #over range of array 
       array = np.random.randint(1,1000,n);    
       test = 0;
       if (array[j] > array[1] and array[j] == array.max()):
           plot=plot+1
           test = 1;
           break
       elif (array[j] > array[1]):
           test = 2;
           break
print(array)
print("j = ",j)
print(test)

问题是我得到这样的输出:

[841 744 623 804 957]
j =  4
1

代码应该从位置开始1并向前计数。如果它遇到一个大于位置 1 的数组值,则应在绘图中加一并退出 for 循环(如果该数组值是最大值)。如果它刚好大于array[1],则退出for循环而不将 plot 增加1

无法弄清楚为什么J必须一直迭代到4上面那个特定的数组,它应该停止在3,增加 plot1并退出循环。

标签: pythonnumpy

解决方案


推荐阅读