![](/img/trans.png)
[英]requests.get(url) in python behaving differently when used in loop
[英]Python: If else loop behaving differently
我正在尝试对数据框的特定组合执行操作,但是我的代码未按照我的想法运行,并且我不认为自己做了一些明显的错误。
years_list = []
check1 = 1
check10 = 1
r =30
for p in combinations(test4.index,r):
den = np.mean(p)
num = np.std(p)
cv = num/den
if (den >= 561 and den <= 570 ) :
if(cv>=0.13 or cv <= 0.17 and check1):
check1=0
print("Combination 1 done")
elif(den>=391 and den <= 400):
if(cv>=0.13 or cv < 0.17 and check10):
check10 = 0
print("Combination 10 done")
if(check1+check10==0)
break
在这里,我将check1
和check10
的值更改为0
以使该循环仅在if else条件内进入一次,如果同时满足两个条件,则它将中断循环。 Test4.index
是一个数据Test4.index
,我想应该不相关的信息。 它的输出是多次打印Combination 10 done
,这是不应该发生的。 我是在做一些非常根本的错误,还是在更深层次的错误中,我无法弄清楚?
编辑:我粘贴缩进错误,现在我正确粘贴了。
您的括号是错误的。
检查以下代码:
check1 = 0
if(True or True and check1):
print("valid")
else:
print("invalid")
输出:
有效
如果要正确验证条件,请使用:
check1 = 0
if(True or True) and check1:
print("valid")
else:
print("invalid")
输出:
无效
或者您的情况:
if(cv>=0.13 or cv < 0.17) and check10:
check10 = 0
print("Combination 10 done")
因为你已经有了答案
我说您可以使用逻辑AND运算符检查而不是0 + 0来重构代码的最后一个条件块。
if(check1 == 0 and check10 == 0)
break
为了获得更大的保证,您可以打印check1并在循环结束时检查10个值以评估每次迭代
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.