为if条件使用for循环迭代器

时间:2016-12-31 15:25:19

标签: python loops

我是python的新手。我正在寻找以下shell代码的python版本。

 for (( i=1; i <= 5; i++ ))
 do
       if avg_$i > 0 ; then
       print "Yes!!"
       fi
 done

我试过了:

    for i in range(1,5):
         if(avg_%d != 0) %(i) :
            print("Yes !! ")

在其他语言中显而易见。我相信python也有一个简单的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

在Python中,您可以使用列表arg而不是变量arg_1arg_2等。

arg = [1, 4, -5, 15, -1]

for val in arg:
    if val > 0:
       print("yes")

所以不要尝试以与shell脚本相同的方式执行此操作。

如果您确实需要i,那么您可以

arg = [1, 4, -5, 15, -1]

for i in range(len(arg)):
    if arg[i] > 0:
       print("yes")

但没有range(len())的版本更好

使用i但没有range(len())

的其他方法
arg = [1, 4, -5, 15, -1]

for i, val in enumerate(arg, 1):
    if val > 0:
       print("yes - element number", i)

编辑:您也可以将其保留为字典

data = {
   'arg_1': 1, 
   'arg_2': 4, 
   'arg_3': -5, 
   'arg_4': 15,
   'arg_5': -1
}

for i in range(1, 6):
    if data['arg_{}'.format(i)] > 0:
       print("yes")