同樣的代碼,只是位置稍微有點變化,結果就會錯誤,什么情況呢?
x1 = 1 d = 3 n = 100 x100 = x1+3*(n-1) s = (x1+x100)/2*n print s 為什么這個結果就會產生50的偏差得出14900, s = (x1+x100)*n/2 這個結果就是對的呢?
x1 = 1 d = 3 n = 100 x100 = x1+3*(n-1) s = (x1+x100)/2*n print s 為什么這個結果就會產生50的偏差得出14900, s = (x1+x100)*n/2 這個結果就是對的呢?
2020-02-07
舉報
2020-02-12
注意哈,結果是14950.0,后面有個0,你在除于2的時候可以改為除于2.0,這樣會保留小數。
2020-02-07
x100是298,x100+x1是299,299/2取商是149嘛,略去了那0.5。后面一種先乘于n,可以被2整除輸出正確。
總之就是python2,整數型/整數型結果還是整數型,也就是返回商。python3里面會返回正確除法值,就沒有這個問題了。
附上python3結果