Need help with quiz program

This is the place for queries that don't fit in any of the other categories.

Need help with quiz program

Postby Robiban » Fri Oct 04, 2013 12:57 pm

I can start with sayin' hi, im new to the forum.

i'm making this quizprogram as a beginners test at school. I've come pretty far but im stuck at counting answers and my loop is inifinte when I want it to start over after all questions are asked.

Code: Select all
#encoding: utf8

# labb 1.2 - python


from random import shuffle  # hämtar funktionen shuffle från prgrmt random

qaa = [             # variabel för frågor och svar
   ("fråga", "svar"),
   ("fråga", "svar"),
   ("fråga", "svar"),
]
shuffle(qaa)         # Kallar shuffle till qaa(blandar frågor)   



ra = int(0)                # Räknare för rätt svar
allanswer = int(0)      # Räknare för alla svar

print ("Hej och välkommen till ciscoquiz")
begin = input("Vill du starta quizen?(ja/nej): ")#Variabel för att starta quiz   
if begin.lower() == str("ja"):      
   print ("Okej! Då kör vi igång")
else:
   print ("Kanske en annan gång..")
   quit()
   


def questions():         # Funktion hämtar frågor
   for question, rightanswer in fs:
      answer = input(question + "  ")
      if answer == rightanswer:
         print ("Alldeles riktigt")
         ra += int(1)
         allanswers += int(1)
      else:
         print ("Fel..Rätt svar är, " + rightanswer)
          allanswers + int(1)
   
questions()

keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")
while keepgoing.lower()  == str("fortsätt"):
   questions()
   
else:
   print("Okej! Du har ", rsfs, "rätt svar och ", len(fs)-rsfs, "fel svar")
   



not that all textstrings and comments are in swedish, shouldnt be much of a problem though, my variables are all english or shortened english!

everything is and should be made for python3x

thanks in advance!
Last edited by Yoriz on Fri Oct 04, 2013 1:03 pm, edited 1 time in total.
Reason: First post lock
Robiban
 
Posts: 3
Joined: Fri Oct 04, 2013 12:48 pm

Re: Need help with quiz program

Postby Kebap » Fri Oct 04, 2013 1:07 pm

Hi, welcome to the forums and to python!

You do this in your code:

Code: Select all
keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")
while keepgoing.lower()  == str("fortsätt"):
   questions()


Change it into this order:

Code: Select all
keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")
while keepgoing.lower()  == str("fortsätt"):
   questions()
   keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")

That way, you actually ask the user again, before going to the next question. :mrgreen:
Learn: How To Ask Questions The Smart Way
Join the #python-forum IRC channel on irc.freenode.net and chat with uns directly!
Kebap
 
Posts: 377
Joined: Thu Apr 04, 2013 1:17 pm
Location: Germany, Europe

Re: Need help with quiz program

Postby Robiban » Fri Oct 04, 2013 3:17 pm

Kebap wrote:Hi, welcome to the forums and to python!

You do this in your code:

Code: Select all
keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")
while keepgoing.lower()  == str("fortsätt"):
   questions()


Change it into this order:

Code: Select all
keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")
while keepgoing.lower()  == str("fortsätt"):
   questions()
   keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")

That way, you actually ask the user again, before going to the next question. :mrgreen:



thanks! any ideas of how to get the counter working?
Robiban
 
Posts: 3
Joined: Fri Oct 04, 2013 12:48 pm

Re: Need help with quiz program

Postby Robiban » Fri Oct 04, 2013 4:44 pm

Actually I finally got it to work! feel free to try it out, all questions are about networking but in swedish so might be tricky =D

Code: Select all
#encoding: utf8

# labb 1.2 - python


from random import shuffle  # hämtar funktionen shuffle från prgrmt random

qaa = [             # variabel för frågor och svar
   ("Vad heter det nedersta lagret i OSI-modellen?", "physical layer"),
   ("Vad heter protokollet i network layer som vanligast används för adresser?", "ipv4"),
   ("Vad heter det översta lagret i OSI-modellen?", "application layer"),
   ("Hur många bitar består en IPv4 adress av?", "32"),
   ("Hur skriver man 192.83.1.10 med binära talsystemet?", "11000000.01010011.00000001.00001010"),
   ("Vad kallas också en mobiltelefon med nätverkstermer?", "end device"),
   ("Vilket port nummer använder HTTP protokollet?", "80"),
   ("Vad står förkortningen 'LAN' för?", "local area network"),
   ("Vilket av UDP och TCP protokollen står för en säker överföring?", "TCP"),
   ("Vad kallas den enhet som kommunicerar med likadana enheter utan det lokala nätverket?", "router"),
   ("Hur många bultar finns det i ölandsbron?", "7428954")
]   
shuffle(qaa)         # Kallar shuffle till qaa(blandar frågor)   


ranswer = 0      # Räknare för rätt svar
wanswer = 0      # Räknare för fel svar

print ("Hej och välkommen till ciscoquiz")
begin = input("Vill du starta quizen?(ja/nej): ")#Variabel för att starta quiz   
if begin.lower() == str("ja"):      
   print ("Okej! Då kör vi igång")
else:
   print ("Kanske en annan gång..")
   quit()
   


def questions():         # Funktion hämtar frågor
   for question, rightanswer in qaa:
      answer = input(question + "  ")
      if answer.lower() == rightanswer:
         print ("Alldeles riktigt")
         global ranswer
         ranswer += 1
         
      else:
         print ("Fel..Rätt svar är, " + rightanswer)
         global wanswer
         wanswer += 1
   
questions()

keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")
while keepgoing.lower()  == str("fortsätt"):
   questions()
   keepgoing = input ("Du har nu svarat på alla frågor! Vill du fortsätta eller avsluta och se ditt resultat?(fortsätt/avsluta): ")

else:
   print("Okej! Du har ", ranswer, "rätt och ", wanswer, "fel!")
print("Det ger ", (ranswer/len(qaa))*100,"% rätt. Du behöver 70% för att vara godkänd!")
Robiban
 
Posts: 3
Joined: Fri Oct 04, 2013 12:48 pm


Return to General Coding Help

Who is online

Users browsing this forum: Google [Bot] and 2 guests