This is my final result, what do u think? And yes I am aware of using global varibles.
And btw, its newtows method
restart = True
import re
from decimal import Decimal
while restart:
print("Hej ska du vara! Detta är Newtons metod. Jag kan räkna ut nollställen ALLA nollställen, coolt va?!? Testa gärna mig :)")
a=(input("Skriv din funktion"))
b=(input("Ange dervatan till din funktion"))
def f(x):
return eval(re.sub("x", str(x), a))
def fprime(x):
return eval(re.sub("x", str(x), b))
gissa = None
inputText = "Ange din gissning av ett nollställe: "
def getInput():
global gissa
global inputText
gissa = float(input(inputText))
if fprime(gissa) == 0:
inputText = "Gissningen ej definierad, ange en ny: "
return True
else:
return False
while getInput():
pass
for n in range(1, 50):
nextgissa = gissa - f(gissa)/fprime(gissa)
gissa = nextgissa
gissa=Decimal(gissa)
output=round(gissa,2)
print("Nollstället är", output)
restart=input("Tryck på valfri tagent för att starta om eller enter för att avsluta!")
if restart=="":
restart = False
print("Hejdå ska du vara!")