Tja, jag har lite problem med python. När jag försöker köra scriptet så säger den "invalid syntax"
du har en invalid text
Macktorsken:
du har en invalid text
Något som du vet om? Vad kan jag ändra på?
Såhär bör det vara:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import random
import easygui
tal1 = random.randint(1,10)
tal2 = random.randint(1,10)
fraga = str(tal1) + " * " + str(tal2) + " = ?"
antal_fragor = 1
antal_fel = 0
while antal_fragor < 11:
svar_txt = easygui.enterbox(fraga)
svar_heltal = int(svar_txt)
facit = tal1 * tal2
if svar_heltal == facit:
easygui.msgbox("Bra")
antal_fragor=antal_fragor +1
else:
easygui.msgbox("Fel! Prova igen!")
antal_fel = antal_fel +1
easygui.msgbox("Slut. Du gjorde "+str(antal_fel)+"fel.")
Jag har inte easygui installerat, så jag kan inte testa det, men jag tror att det är syntaktiskt korrekt nu.
På rad 5 försökte du importera metoden easygui från modulen random, vilket givetvis inte fungerade. Gör det istället till två import-statements, eller använd ett komma istället för en punkt.
På rad tio hade du skrivit "antal fragor" istället för "antal_fragor". Variabelnamn kan inte ha mellanslag.
På rad tolv hade du ett semikolon efter din while-sats. Det ska vara ett kolon.
På rad tjugo hade du inget kolon efter "else".
Wezc:
Något som du vet om? Vad kan jag ändra på?
några kromosomer.
Grymt, känner mig lite puckad nu.
Men tack för att du kunde hjälpa till
Macktorsken:
några kromosomer.
Mm, var du rolig nu?
Wezc:
Mm, var du rolig nu?
Ja, ypperligt.
Åtta:
while-sats
Ska du inte ge tal[1,2] nya värden i loopen?
import System.Random
problems g = zip (randomRs (1 :: Int, 10) g1) (randomRs (1, 10) g2)
where (g1, g2) = split g
ask (a, b) = do
putStrLn $ "Vad blir " ++ show a ++ "*" ++ show b ++ "?"
putStrLn . show . (== a*b) =<< readLn
main = mapM_ ask . problems =<< newStdGen
Problem, programmers?
Comrade Premier:
Ska du inte ge tal[1,2] nya värden i loopen?
Förmodligen. Jag reflekterade aldrig över vad koden gjorde. Jag fixade bara de syntaktiska felen jag såg.