56154


x(0)を実行すると、0,1,3と表示されます。numberを0,1,2にするにはどうすればいいのでしょうか？

[code]

    def x(number):
      list = [0,1,2]
      for i in list:
        number+=i
        print(number)
    
[/code]


CC BY-SA 4.0
2019-06-15T15:44:54.807
55821
2019-06-27T15:41:31.843
2019-06-15T16:28:00.467
3060
32301
question
python python3
なぜnumberが0,1,3となるのでしょうか？


お疲れ様です。

ちょっと、面白すぎですね。  
一瞬、まじめに考えてしまいました。

x(0)とした場合の動作ですよね。  
number += i  
としているから、当然だと思います。  
この行がいらない？？？？？  
？？？？と書きましたが、これが回答です。

少し、心理的に誘導される質問で、面白かったです。


CC BY-SA 4.0
2019-06-15T16:47:33.623
55822
2019-06-15T16:47:33.623
31548
55821
answer


こんばんは。元のコードの中に変数の値を確認するprint文を入れて実行してみました。

[code]

    >>> def x(number):
        list=[0, 1, 2]
        for i in list:
            print("number={}, i={}".format(number, i))
            number += i
            print("number   +  i   = {}\n".format(number))
    
    
    >>> x(0)
    
        number=0, i=0
        number   +  i   = 0
    
        number=0, i=1
        number   +  i   = 1
    
        number=1, i=2
        number   +  i   = 3
    
    >>> 
    
[/code]

どうでしょうか？ 変数の挙動がわかりましたでしょうか？


CC BY-SA 4.0
2019-06-27T15:41:31.843
56154
2019-06-27T15:41:31.843
34891
55821
answer