2017-01-16 141 views
0

我想打印1-10(反向)的平方根。在Python中減去for循環的值

我還想打印每個相鄰平方根的差異。

import math as m 

for i in range(10, -1, -1): 
    print str(i) + ": " + str(m.sqrt(i)) 
    print str(m.sqrt(i) - m.sqrt(i-1)) 

我目前得到一個數學域錯誤。

+4

'SQRT(-1)'是域誤差,嘗試'範圍(10,0,-1)' –

+1

和SQRT(-2)具有相同的效果 –

回答

2

你確實計數,直到0,但行

print str(m.sqrt(i) - m.sqrt(i-1)) 

具有i-1這對我== 0計算結果爲開方(-1)

1

爲負整數使用CMATH模塊,該模塊內置蟒蛇的模塊https://docs.python.org/2/library/cmath.html

我希望這個答案可以幫助你:

import math as m,cmath 

for i in range(10, -2, -1): 
    if i<=0: 
     print str(i) + ": " + str(cmath.sqrt(i)) 
     print str(cmath.sqrt(i)-cmath.sqrt(i-1)) 
    else: 
     print str(i) + ": " + str(m.sqrt(i)) 
     print str(m.sqrt(i) - m.sqrt(i-1)) 

和輸出將是:

10: 3.16227766017 
0.162277660168 
9: 3.0 
0.171572875254 
8: 2.82842712475 
0.182675813682 
7: 2.64575131106 
0.196261568281 
6: 2.44948974278 
0.213421765283 
5: 2.2360679775 
0.2360679775 
4: 2.0 
0.267949192431 
3: 1.73205080757 
0.317837245196 
2: 1.41421356237 
0.414213562373 
1: 1.0 
1.0 
0: 0j 
-1j 
-1: 1j 
-0.414213562373j 
+0

兩個很好的答案。感謝數學領導。 – peer