Mijn vraag:
Ik heb nu de onderstaande code. Wanneer ik de code gebruik, maakt het niet uit welk antwoord ik invul (zelfs als dit het juiste antwoord is), ik krijg 'False, antwoord niet gedetecteerd. Hoe is dit mogelijk? Waarom werkt dit niet met deze notatie?
Relevante software en hardware die ik gebruik:
def Toets():
import math
b = 1
c = 5
a = math.sqrt(c-b)
class Vragen:
def __init__(self, vraag, antwoord, antwoord2):
self.vraag = vraag
self.antwoord = antwoord
self.antwoord2 = antwoord2
vragen_list = [
["Los de vergelijking x**2 + 1 = 5 op. \n \nRestrictie: U mag geen spaties in uw antwoord gebruiken. \nNoteer uw antwoord zo nodig in de volgende vorm: x=.. v √x v teller/noemer v x**2.",
("x=" + str(a) + "vx=-" + str(a)), ("x=-" + str(a) + "vx=" + str(a))],
]
vragen = []
for item in vragen_list:
vragen.append(Vragen(item[0],item[1],item[2]))
def run_test(vragen):
for vraag in vragen :
print(vraag.vraag)
antwoord = input("\nAntwoord: ")
if antwoord == vraag.antwoord or antwoord == vraag.antwoord2:
print("\nCorrect!\n")
break
if antwoord == ("x="+str(a)):
print ("\nFout, niet vergeten dat er ook nog een negatieve x-waarde uit kan komen.\n\n")
Toets ()
break
if antwoord == ("x=-"+str(a)):
print ("\nFout, niet vergeten dat er ook nog een positieve x-waarde uit kan komen.\n\n")
Toets ()
break
if antwoord == ("x=√2") :
print ("\nFout, je hebt twee keer de wortel genomen van 5 - 1 = 4.\n\n")
Toets ()
break
if antwoord == ("x=√2vx=-√2") :
print ("\nFout, je hebt twee keer de wortel genomen van 5 - 1 = 4.\n\n")
Toets ()
break
if antwoord == ("x=-√2vx=√2") :
print ("\nFout, je hebt twee keer de wortel genomen van 5 - 1 = 4.\n\n")
Toets ()
break
if antwoord == ("x=√4vx=-√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
if antwoord == ("x=-√4vx=√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
if antwoord == ("x=√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
if antwoord == ("x=-√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
else :
print ("Fout, antwoord niet gedetecteerd. \nProbeer het nog een keer! \n\n")
Toets()
run_test(vragen)
Ik heb nu de onderstaande code. Wanneer ik de code gebruik, maakt het niet uit welk antwoord ik invul (zelfs als dit het juiste antwoord is), ik krijg 'False, antwoord niet gedetecteerd. Hoe is dit mogelijk? Waarom werkt dit niet met deze notatie?
Relevante software en hardware die ik gebruik:
def Toets():
import math
b = 1
c = 5
a = math.sqrt(c-b)
class Vragen:
def __init__(self, vraag, antwoord, antwoord2):
self.vraag = vraag
self.antwoord = antwoord
self.antwoord2 = antwoord2
vragen_list = [
["Los de vergelijking x**2 + 1 = 5 op. \n \nRestrictie: U mag geen spaties in uw antwoord gebruiken. \nNoteer uw antwoord zo nodig in de volgende vorm: x=.. v √x v teller/noemer v x**2.",
("x=" + str(a) + "vx=-" + str(a)), ("x=-" + str(a) + "vx=" + str(a))],
]
vragen = []
for item in vragen_list:
vragen.append(Vragen(item[0],item[1],item[2]))
def run_test(vragen):
for vraag in vragen :
print(vraag.vraag)
antwoord = input("\nAntwoord: ")
if antwoord == vraag.antwoord or antwoord == vraag.antwoord2:
print("\nCorrect!\n")
break
if antwoord == ("x="+str(a)):
print ("\nFout, niet vergeten dat er ook nog een negatieve x-waarde uit kan komen.\n\n")
Toets ()
break
if antwoord == ("x=-"+str(a)):
print ("\nFout, niet vergeten dat er ook nog een positieve x-waarde uit kan komen.\n\n")
Toets ()
break
if antwoord == ("x=√2") :
print ("\nFout, je hebt twee keer de wortel genomen van 5 - 1 = 4.\n\n")
Toets ()
break
if antwoord == ("x=√2vx=-√2") :
print ("\nFout, je hebt twee keer de wortel genomen van 5 - 1 = 4.\n\n")
Toets ()
break
if antwoord == ("x=-√2vx=√2") :
print ("\nFout, je hebt twee keer de wortel genomen van 5 - 1 = 4.\n\n")
Toets ()
break
if antwoord == ("x=√4vx=-√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
if antwoord == ("x=-√4vx=√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
if antwoord == ("x=√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
if antwoord == ("x=-√4") :
print ("\nFout, je kan je antwoord namelijk nog verder uitwerken.\n\n")
Toets ()
break
else :
print ("Fout, antwoord niet gedetecteerd. \nProbeer het nog een keer! \n\n")
Toets()
run_test(vragen)