Skip to main content

Create a test in html, through python



We start importing the random function and creating a file

import random
x=0
file = open("1guerraMondiale.html","w")
file.write("<h2>Test di Storia</h2>")



Then we create a variable for the right answers and a tuple for the items of each question (you can change them, if you want)

correttore = "Soluzione: "
itemsletters = ('a) ','b) ','c) ','d) ')


Now we have the main function

def test(dom,pack):
    global x
    global correttore
    global itemletters
    x+=1
    esatta = pack[0]        
    random.shuffle(pack)        
    print(x, dom)                  
    # ===================== HTML =========================
    file.write("<h3>" + str(x) + ") " + dom +"</h3>")      
    file.write("<ol>")
    for i in pack:                 
        print(str(pack.index(i)+1) + ") " + i)
        file.write("<li>" + i + "</li>")
    file.write("</ol>")
    correttore += "[" + str(x) + ":" + esatta + "]__ " 


This function accepts as args the question and the answers as a list (pack). After the right answer (the first) is labeled under the name esatta, we shuffle the answer and we write into the html file the code to show them. The correttore variable stores the correct answers we will show at the end of the file.

Now we have some questions and answews as examples

test ("Quando viene assassinato Francesco Ferdinando d'Austria?",
        ['28 giugno 1914','28 luglio 1914','12 aprile 1914','5 maggio 1915'])
test ("Anno della Triplice alleanza tra Germania, Austria e Italia:",
        ['1882','1884','1889','1890'])
test ("Anno in cui l?italia occupa la Libia e dichiara guerra alla Turchia",
        ['1910','1918','1912','1913'])


At the end of the call to the test function... we will put this code:

print(correttore)    # MOSTRA IL CORRETTORE ALLA FINE
file.write("<br><br><br>{  " + correttore + "  }")  # HTML
file.close()

And we're done...

What will we have when we execute the script?

This...


You will see a plain text printed

1 Quando viene assassinato Francesco Ferdinando d'Austria?
1) 28 luglio 1914
2) 5 maggio 1915
3) 28 giugno 1914
4) 12 aprile 1914
2 Anno della Triplice alleanza tra Germania, Austria e Italia:
1) 1882
2) 1884
3) 1890
4) 1889
3 Anno in cui l?italia occupa la Libia e dichiara guerra alla Turchia
1) 1910
2) 1912
3) 1913
4) 1918




But... in the dir where you run the code ...

... a html file will be generated (whose code is this). Here we have more questions than the ones we showed in the examples


<h2>Test di Storia</h2><h3>1) Quando viene assassinato Francesco Ferdinando d'Austria?</h3><ol><li>5 maggio 1915</li><li>28 luglio 1914</li><li>28 giugno 1914</li><li>12 aprile 1914</li></ol><h3>2) Anno della Triplice alleanza tra Germania, Austria e Italia:</h3><ol><li>1884</li><li>1889</li><li>1890</li><li>1882</li></ol><h3>3) Anno in cui l?italia occupa la Libia e dichiara guerra alla Turchia</h3><ol><li>1912</li><li>1910</li><li>1913</li><li>1918</li></ol><h3>4) Quando si giunse all'accordo per la Triplice intesa?</h3><ol><li>1904</li><li>1910</li><li>1882</li><li>1907</li></ol><h3>5) L'aspirazione a riunire in un solo Stato i popoli germanici si chiama:</h3><ol><li>nazionalismo</li><li>pangermanesimo</li><li>sciovinismo</li><li>araniesimo</li></ol><h3>6) L'Intesa cordiale fra Francia e Inghilterra venne firmata nel:</h3><ol><li>1904</li><li>1912</li><li>1900</li><li>1906</li></ol><h3>7) La prima guerra balcanica si svolse nel:</h3><ol><li>1911</li><li>1914</li><li>1912</li><li>1913</li></ol><h3>8) Quando salì al trono Guglielmo II</h3><ol><li>Nel 1900</li><li>Nel 1889</li><li>nel 1880</li><li>Nel 1888</li></ol><h3>9) Quando fu costretto alle dimissioni Bismarck da Guglielmo II?</h3><ol><li>Nel 1880</li><li>Nel 1890</li><li>Nel 1809</li><li>nel 1900</li></ol><h3>10) La politica estera di Guglielmo II fu?</h3><ol><li>Meno aggressiva di quella di Bismarck</li><li>Più aggressiva di quella di Bismarck</li></ol><h3>11) Nella prima guerra balcanica gli stati slavi sottrassero all'impero ottomano</h3><ol><li>La Mesopotamia</li><li>La Turchia</li><li>La macedonia</li><li>La Galizia</li></ol><h3>12) A quali territori non rinunciò l'impero ottomano con il trattato di Londra?</h3><ol><li>Costantinopoli e gli Stretti</li><li>Albania</li><li>Macedonia</li></ol><h3>13) Quanto durò la pace dopo il Trattato di Londra del 1913?</h3><ol><li>Quasi un anno</li><li>Oltre sei mesi</li><li>Meno di due mesi</li><li>Due anni</li></ol><h3>14) Come si chiamava l'assassino di Francesco Ferdinando?</h3><ol><li>Gravilo Princip</li><li>Andrei Ivanovic</li><li>Gerald Ford</li><li>Wilson Smith</li></ol><h3>15) Quando dicharò guerra alla Serbia l'Austria?</h3><ol><li>il 28 settembre 1914</li><li>il 28 luglio 1914</li><li>il 2 luglio 1914</li><li>il 2 settembre 1914</li></ol><h3>16) La prima guerra mondiale fu una guerra</h3><ol><li>di posizione</li><li>di movimento</li></ol><h3>17) La Germania il 3 agosto 1914 si schierò al fianco...</h3><ol><li>della Serbia</li><li>dell'Austria</li><li>dell'Inghilterra</li><li>della Russia</li></ol><h3>18) La Serbia ottenne l'appoggio di ?</h3><ol><li>Marocco</li><li>Francia e Russia</li><li>Grecia</li><li>Turchia e Italia</li></ol><h3>19) Il 4 agosto 1914 la Germania invade:</h3><ol><li>L'Inghileterra</li><li>L'Italia</li><li>La Serbia</li><li>Il Belgio</li></ol><h3>20) Il Belgio, invaso dalla Germania il 4 agosto del 1914:</h3><ol><li>non oppone resistenza e lascia invadere subito la Francia.</li><li>oppone resistenza per due settimane</li></ol><h3>21) Il fronte occidentale si stabilizzò...</h3><ol><li>Sul fiume Senna</li><li>Sul fiume Aisne</li></ol><h3>22) La guerra navale tra Inghileterra e Germania si combattè con:</h3><ol><li>Navi corsare</li><li>Corazzate</li></ol><h3>23) L'8 dicembre 1914 presso le isole Falkland ...</h3><ol><li>L'Inghilterra sconfisse la Germania</li><li>La Germania sconfisse l'Inghilterra</li></ol><h3>24) Il Giappone entra nel conflitto il 23 agosto 1914 a fianco:</h3><ol><li>Della triplice alleanza</li><li>Della triplice intesa</li></ol><h3>25) L'impero ottomano si schierò con</h3><ol><li>L'alleanza</li><li>L'intesa</li></ol><br><br><br>{  Soluzione: [1:28 giugno 1914]__ [2:1882]__ [3:1910]__ [4:1907]__ [5:pangermanesimo]__ [6:1900]__ [7:1912]__ [8:nel 1880]__ [9:Nel 1809]__ [10:Meno aggressiva di quella di Bismarck]__ [11:La macedonia]__ [12:Costantinopoli e gli Stretti]__ [13:Meno di due mesi]__ [14:Gravilo Princip]__ [15:il 28 luglio 1914]__ [16:di posizione]__ [17:dell'Austria]__ [18:Francia e Russia]__ [19:Il Belgio]__ [20:oppone resistenza per due settimane]__ [21:Sul fiume Aisne]__ [22:Navi corsare]__ [23:L'Inghilterra sconfisse la Germania]__ [24:Della triplice intesa]__ [25:L'alleanza]__   }

Cute, isn't it?
But it is all generated by python, so you don't have to bother. It is compact and it's good to go. Just click on the file and see this as final result:

Test di Storia

1) Quando viene assassinato Francesco Ferdinando d'Austria?

  1. 5 maggio 1915
  2. 28 luglio 1914
  3. 28 giugno 1914
  4. 12 aprile 1914

2) Anno della Triplice alleanza tra Germania, Austria e Italia:

  1. 1884
  2. 1889
  3. 1890
  4. 1882

3) Anno in cui l?italia occupa la Libia e dichiara guerra alla Turchia

  1. 1912
  2. 1910
  3. 1913
  4. 1918
[Etc.....]

Comments

Popular posts from this blog

Widgets for Jupyter Notebook: a text input widget

Widgets for Jupyter notebook ¶ Let's import the module ipywidgets into the Jupyter Notebook from ipywidgets import widgets from ipywidgets import * from traitlets import * Now we import the display function from IPython ¶ let's attach a function to the event on_submit After we run this cell, we can go up and write something in the text widget and after you submit the text you wrote will be printed after the cell from IPython.display import display text = widgets . Text () display ( text ) def handle_submit ( sender ): print ( "Thank you for entering this text:" , text . value ) text . on_submit ( handle_submit ) Thank you for entering this text: Ciao

Image in Jupyter and PIL step by step

Hi, """ Hi, we will see a step by step tutorial about PIL and IPython.core.display modules to create images from other images and diplaying them in Jupyter notebook """ # What we will do # Create a card # 1. Take a pic of a heart # 2. Create an image blanck the size of a card 90*130 # 3. Paste the heart in the middle # 4. show the card """ As first step wi will simply display an image on the notebook. I will show two way to display the image with 'display' from IPhyton a. Using the open method of PIL.Image (named Img) b. Using the Image method from the IPython.core.display module """ # 1. Take the pic of a heart from IPython.core.display import Image , display from PIL import Image as Img heart = 'img/heart.png' display ( Image ( heart )) display ( Img . open ( heart )) # 2. Create an image blanck the size of a card 90*130 # 3. Paste the heart in the middle #...

Let's draw a circle with PIL in Python

Let's continue making our coding around PIL. Let's start with some basic drawing: a circle from PIL import Image , ImageDraw img = Image . new ( "RGB" ,( 60 , 60 ), 'white' ) dr = ImageDraw . Draw ( img ) dr . ellipse (( 0 , 0 , 60 , 60 ), 'yellow' ) img . show () this is the image produced *If you use jupyter notebook, just write img at the end to see the output.