2016-12-31 15 views
3

私はPythonの初心者です。私は、次のシェルコードのPythonバージョンを探しています。ifループのイテレータをif条件に使用する

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もそれを行う簡単な方法を持っていると確信しています。

+0

としてそれを維持することができますか?スクリプトが実行されたときに使用される引数を持つリストであれば、これには 'sys.argv'があります。通常は、あなた自身のリスト 'arg'と' arg [i] 'を使う必要があります。 – furas

+0

http://stackoverflow.com/questions/9383740/what-does-pythons-eval-do – Prasanth

+0

avg_1、avg_2、avg_3は浮動小数点数の変数です。 –

答えて

1

Pythonでは、あなたは

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

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

だからシェルスクリプトの場合と同じ方法でそれを実行しようとしていないなどの代わりに変数arg_1arg_2のリストargを使用します。あなたが本当にiに必要がある場合、あなたはrange(len())なし

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

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

が、バージョンを行うだろう


i


他の方法より優れているが、range(len())

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

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

EDIT:あなたも `arg_`れているものの辞書

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") 
+0

それは悲しいです。複数の変数を使用する特定の理由がありました。リストに追加するのは明らかです。私はPythonがそれに対処するいくつかの方法を持っていると思った。とにかく、ありがとう.. –

+0

あなたは辞書 'data [" arg _ {} "。format(i)]> 0'を使うこともできますが、リストを使うことはできません。 – furas

+0

うん。私はリストを使うと思う。ありがとう!! –