2017-01-16 2 views
0

Ich möchte die Quadratwurzeln von 1-10 (rückwärts) drucken.Subtrahieren eines Wertes in For-Schleife in Python

Ich möchte auch die Unterschiede von jedem dieser benachbarten Quadratwurzeln drucken.

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)) 

Ich erhalte derzeit einen mathematischen Domänenfehler.

+4

'sqrt (-1)' ist ein Domain-Fehler, versuchen 'Bereich (10, 0, -1)' –

+1

und sqrt (-2) hat das die gleiche Wirkung –

Antwort

2

Sie in der Tat bis 0 zählen, aber die Linie

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

i-1 hat, die auf i == 0

1

für negative ganze Zahlen verwenden cmath Modul sqrt (-1) auswertet, die in einem eingebauten wird Modul von python https://docs.python.org/2/library/cmath.html

ich hoffe, diese Antwort hilft Ihnen:

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)) 

und der Ausgang wird sein:

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

Beide gute Antworten. Danke für Mathe führen. – peer

Verwandte Themen