如何在while循环中更新变量并查看结果?

时间:2019-02-24 19:34:26

标签: python

我想使用一个for循环来定义一个范围,我想使用一个while循环来检查for循环中每个值的条件,并为我提供不同c值的结果,但是不幸的是,我的算法不起作用,我也不知道我的错误是什么。

j=0
jl=[]
c=np.linspace(0,20,num=20)
for a in range(0,len(c)):
    while j<5:
        j=c[a]+2
    jl.append(j)

我正在寻找的结果是它将不同的c值放入while循环内,并计算j并检查其是否大于5。如果是,则将其附加到jl。总的来说,我想用索引的for循环定义一个范围,同时还要在while循环内检查该范围的每个值,并获得j的结果。 因此预期结果是j的值小于5(c [a] +2 <5)并将j的值存储在jl

3 个答案:

答案 0 :(得分:1)

您的代码中有一个问题:

j=0

“ While loop”从不运行,因为他的条件是j> 5。更正该问题并告诉我们是否可行。

答案 1 :(得分:1)

请仔细检查以下建议的解决方案是否满足您的所有要求。无论如何,我认为列表理解(例如 compare section 5.1.3.)可以为您提供帮助。

c=np.linspace(0,20,num=20)
ls = [x+2 for x in c if((x+2)<5)]
print(ls)

将产生以下输出:

[2.0, 3.052631578947368, 4.105263157894736]

如果您想进行更复杂的数据操作,也可以借助以下功能来完成此操作:喜欢:

def someManipulation(x):
    return x+2

ls = [someManipulation(x) for x in c if(someManipulation(x)<5)]

答案 2 :(得分:1)

您的算法无效,因为

while j<5:
    j=c[a]+2

是j = 0,a = 0的无限循环。

您可能想写的是:

for x in c:
    j = x + 2
    if j < 5:
        jl.append(j)

不过,另一个答案中的列表理解版本的功能完全相同,但是更好。