2017-12-05 5 views
0

私のコードでは、下限と上限が可変で、下限と上限が同じであるループが実装されています。この場合、Pythonはループをスキップします。Python 3.6.2は単一の値でループを実行していません

for i in range(low_, high_): 
    print(i) 

ループの定義でこれを修正する方法はありますか?

+0

何が欲しいですか?私はあなたが低と高さが同じループが一度実行する場合は、それをしたいという意味ですか? – rafaelleru

+5

ここで正確に何を修正したいですか?例えば、「範囲内の(2、2)の場合:」の場合はどうしたらよいでしょうか? –

+0

'range()'の仕組みは、最初の数字から始まりますが、最後の数字は決して与えません。ですから、一度だけ実行したい場合は、range(x、x + 1)と言います。開始番号と終了番号が同じ場合、ループは実行されません。 ループを少なくとも1回実行する場合は、上記の範囲(x、x + 1)のように、2番目の数字に+1を追加します。しかし、ループ内で何が起こるかを調整する必要があるかもしれません。たぶん 'range(low_、high_ + 1) 'を呼び出すだけで、必要な処理を行うことができます... – Gary02127

答えて

5

はい、low == highの場合、ループは入りません。

ループは、startから(end - 1)を含むまで実行されます。したがって、完全に正常な動作です

low == highの場合は、低値をテストする必要があります。 (コメントでミスをキャッチするため@Michael_heathにクレジット)

for i in range(low_, high_): 
    print(i) 
if low_ == high_: 
    print(low_) 
+0

「low_、high_ = 2,4」は「2 3 2」を出力する。あなたのループには、elseをスキップするための休憩がありません。 –

+0

ああ、それは本当です...次に、 'else'は使用できません。印刷するには' low == high'をテストする必要があります。これをキャッチしていただきありがとうございます。 –

2

てみランニング:

for i in range(low_, high_ + 1): 
    print(i) 

あなたのループがlow_で開始し、high_する取得したいようですが、彼らは「場合でも、聞こえます同じです。したがって、余分な「+ 1」を追加すると、必要なものが得られます。

一般に、ループは2番目の値より1だけ小さい値になります。あなたはその値をヒットしたい場合は、余分なものを追加すると、そのトリックを行う必要があります。

関連する問題