Welcome to DaniWeb and the interesting world of Python coding!
The Quiz.dat file is just a text file containing 6 lines per question. The first line is the correct answer code for the four possible answers (A, B, C, D), followed by the question and the four possible answers. For example ...
Which sport uses the term LOVE ?
What is the German word for WATER ?
What has eight bits ?
To work with it in Python, it is easiest to form a tuple/array of each question in a set order and put them in a list. I picked the order (question, answer1, answer2, answer3, answer4, answer_code). The reason I used a list of tuples is that you can shuffle them easily. You read the data file into your program as a list of text lines and then convert these to a list of the question tuples ...
[('Which sport uses the term LOVE ?', 'Tennis', 'Golf', 'Football', 'Swimming', 'A'),
('What is the German word for WATER ?', 'Wodar', 'Wasser', 'Werkip', 'Waski', 'B'),
('What has eight bits ?', 'Word', 'ASCII', 'Byte', 'RAM', 'C'),
Here is a short Python program to handle the formation of the list of tuples ...
# read the mutliple choice quiz data file
# reorganize into a list of tuples, each tuple has this order
# (question, answer1, answer2, answer3, answer4, answer_code)
# read the appended text file as a list of lines
fin = open("Quiz.dat", "r")
lineList = fin.readlines()
quiz_list = 
for k, line in enumerate(lineList):
tuple_complete = False
line1 = line.strip()
# build a tuple for each question
if k % 6 == 0:
answer_code = line1
if answer_code == 'end':
if k % 6 == 1:
question = line1
if k % 6 == 2:
answer1 = line1
if k % 6 == 3:
answer2 = line1
if k % 6 == 4:
answer3 = line1
if k % 6 == 5:
answer4 = line1
tuple_complete = True
tuple1 = (question, answer1, answer2, answer3, answer4, answer_code)
print tuple1 # test
#print quiz_list # for testing
# shuffle the list and display the first 10 question tuples
for k, quest in enumerate(quiz_list):
if k < 10:
Now its up to you to display the question, followed by the four possible answers titled A, B, C, D and ask the player to give the title letter of the correct answer. After the user gives the input, then you compare the letter with the letter of the correct answer.
I am a bit of a noob. I have only just started learning python. Please help I don't understand this.
If you are that unfamiliar with Python, I would recommend to work yourself through a simple tutorial first, and then a few simple projects. The Quiz program is more of medium difficulty. You have to know about lists, tuples, random functions, file handling and so on.
I also wanted to use other languages for a game etc that I wanted to do, so before I took on any language for what was needed I looked at how easy it would be for me to code my game in...C, C++, C#, Ruby, Perl, Java and while looking at these I accidently found Python...and thank goodness that I did! Some of these other codes can take 6 or 7 times longer to code with than Python and are 6 or 7 times more complicated to deal with! I've read where some math professors were involved in some complicated mathematical equations and dreaded using an equally complicated language like C to code it in:confused:...I've also read where people can take 7 or 8 months to code a project in say C where if they did the same thing in Python it would take only 2 weeks...so to say I'll just learn C etc like one is going to have an enjoyable steak lunch does not equate at all!
Believe me when I say that not every language is as easy to use as our beloved Python.:)
I know this thread is pretty old but I am getting this error when I try and run the python script to form the list of tuples.
File "multiplechoice.py", line 6
fin = open("Quiz.txt", "r")
IndentationError: unexpected indent
I am not sure what is causing this, I am programming using Aptana Studios, on a macbook pro. I tried changing the extension to .txt since mac doesn't like .dat and I can open the original file using aptana and see all the questions.