2017-12-13 12 views
2

私はこの問題を理解していない変数の初期化 - パイソン

カウンタ(下記のコードのように)1 i=1に等しくあり得るか、またはi = 0に置き換えることができ、結果は同じであり、なぜですか?

n = 4 
sum = 0 # initialize sum 
i = 1 # initialize counter 
while i <= n: 
    sum = sum + i 
    i = i+1 # update counter 
print("The sum is", sum) 
+7

「i = 0」の余分な繰り返しは合計に何も追加しません。 –

+1

コードを[Python Tutor](http://www.pythontutor.com/visualize.html) –

+0

からi = 0で、結果が同じ場合はi = 1ではなく、ステップバイステップで実行すると、より明確なアイデアを得ることができます私はコードを実行した後に? – Bill

答えて

1
# with added line numbers 

1. while i < n: # modified this for simplicity. 
2.  sum = sum + i 
3.  i = i+1 # update counter 
4. print("The sum is", sum) 

ここではその周りにあなたの頭をラップする実行があります。

# L1: i=0 n=4 sum=0 
# L2: i=0 n=4 sum=0 # see sum is 0+0 
# L3: i=1 n=4 sum=0 

# L1: check i<n - True, 1 is less than 4 
# L2: i=1 n=4 sum=1 
# L3: i=2 n=4 sum=1 
# L1: check i<n - True, 2 is less than 4 
# L2: i=2 n=4 sum=3 
# L3: i=3 n=4 sum=3 
# L1: check i<n - True, 3 is less than 4 
# L2: i=3 n=4 sum=6 
# L3: i=4 n=4 sum=6 
# L1: check i<n - False, 4 not less than 4 ; its equal. condition fail. 
# L4: print 6 

両方のコントラスト0から始まる場合には

# L1: i=1 n=4 sum=0 
# L2: i=1 n=4 sum=1 
# L3: i=2 n=4 sum=1 
# L1: check i<n - True, 2 is less than 4 
# L2: i=2 n=4 sum=3 
# L3: i=3 n=4 sum=3 
# L1: check i<n - True, 3 is less than 4 
# L2: i=3 n=4 sum=6 
# L3: i=4 n=4 sum=6 
# L1: check i<n - False, 4 not less than 4 ; its equal. condition fail. 
# L4: print 6 

。 2番目のケースでは、余分な作業を繰り返しました。しかし、それはsumには何も寄与しません。

希望します。

+0

ありがとうございましたVasif – Bill