2017-03-17 28 views
0

私はpython3のために全く新しいです。私は次のような簡単なプロセスを書く必要があります。しかし、とにかく私は次のコードを単純化することができますか?whileループと条件付きでPythonコードを単純化

def dosomething (i): 
    print(i); 

n = 12 
i = 1 
while n > 0: 
    if i == 6: 
     i = 5 
    dosomething(i) 
    i += 1 
    n -= 1 
+1

Exchangeネットワーク:http://codereview.stackexchange.com/ – MarsAtomic

答えて

1

それはあなたがこの例で何をしようとしては明らかではありませんか、あなたの定数は重要であるが、ここではもう少し単純に同じ出力を作成する一つの手法だ場合:一般的に

def dosomething (i): 
    print(i); 

n = 12 
i = 1 

for j in range(1, 6): 
    dosomething(j) 

for k in range(n - 5): 
    dosomething(5) 

反復回数があらかじめわかっているなら、whileループではなくforループで表現するべきです。

+0

1,2,3,4,5,6,5,6,7,8,9,10、...などから数えたいと思います – jacobcan118

+0

はい。あなたのコード中の他の値の意義はまだ不明ですが、 'i'がループ内のそれらの値を受け入れるようにしたい場合、' for'ループはあなたが望むものです。この場合、「範囲内(n):dosomething(i)」は、あなたが今説明しているものに最も近いものです。それは役に立ちますか? –

+0

はい、ありがとうございます。それは私が範囲(12)で 'nのために使うことがわかります:'とdosomething関数に渡すためにelse条件があれば入れます。 – jacobcan118

0

これはforループにwhileループを簡素化し、動作します:

i = 1 
for n in range(1, 13): 
    if i == 6: 
     i = 5 
    dosomething(i) 
    i += 1 

あなたがdoSomethingのを避けるためにしようとしている場合(6):

この質問はスタック内の別のサイトに属する
for n in range(1, 13): 
    if n != 6: 
     dosomething(n)