Skip to main content

Jupyter App 2

We are discovering the chance to make apps with Jupyter notebook's widgets. Until now we have just take a look at the Text widget. In the first app we simply wrote something in an external file, through the text inserted in the Text box displayed by the Jupyter notebook.
Now we want to make another very simple app, just a little more complicated. It is a test game that got 4 Text widgets in it. One is for the question, one for the answer, one for the feedback and another for the score. Very simple and basic. For the next apps we will get a little further in the discovery of the Jupyter notebook widgets, right?


from ipywidgets import widgets
from IPython.display import display
from random import shuffle

text = widgets.Text()
dom = widgets.Text()
fbk = widgets.Text()
score = widgets.Text()

def handle_submit(sender):
    pass

text.on_submit(handle_submit)


province = """Agrigento,AG
Alessandria,AL
Ancona,AN
Aosta,AO
Arezzo,AR
Ascoli Piceno,AP
Asti,AT
Avellino,AV
Bari,BA
Barletta-Andria-Trani,BT
Belluno,BL
Benevento,BN
Bergamo,BG
Biella,BI
Bologna,BO
Bolzano,BZ
Brescia,BS
Brindisi,BR
Cagliari,CA
Caltanissetta,CL
Campobasso,CB
Carbonia-Iglesias,CI
Caserta,CE
Catania,CT
Catanzaro,CZ
Chieti,CH
Como,CO
Cosenza,CS
Cremona,CR
Crotone,KR
Cuneo,CN
Enna,EN
Fermo,FM
Ferrara,FE
Firenze,FI
Foggia,FG
Forlì-Cesena,FC
Frosinone,FR
Genova,GE
Gorizia,GO
Grosseto,GR
Imperia,IM
Isernia,IS
La Spezia,SP
L'Aquila,AQ
Latina,LT
Lecce,LE
Lecco,LC
Livorno,LI
Lodi,LO
Lucca,LU
Macerata,MC
Mantova,MN
Massa-Carrara,MS
Matera,MT
Messina,ME
Milano,MI
Modena,MO
Monza e della Brianza,MB
Napoli,NA
Novara,NO
Nuoro,NU
Olbia-Tempio,OT
Oristano,OR
Padova,PD
Palermo,PA
Parma,PR
Pavia,PV
Perugia,PG
Pesaro e Urbino,PU
Pescara,PE
Piacenza,PC
Pisa,PI
Pistoia,PT
Pordenone,PN
Potenza,PZ
Prato,PO
Ragusa,RG
Ravenna,RA
Reggio Calabria,RC
Reggio Emilia,RE
Rieti,RI
Rimini,RN
Roma,RM
Rovigo,RO
Salerno,SA
Medio Campidano,VS
Sassari,SS
Savona,SV
Siena,SI
Siracusa,SR
Sondrio,SO
Taranto,TA
Teramo,TE
Terni,TR
Torino,TO
Ogliastra,OG
Trapani,TP
Trento,TN
Treviso,TV
Trieste,TS
Udine,UD
Varese,VA
Venezia,VE
Verbano-Cusio-Ossola,VB
Vercelli,VC
Verona,VR
Vibo Valentia,VV
Vicenza,VI
Viterbo,VT""".split("\n")

for n in province:
    province[province.index(n)] = n.split(",")

shuffle(province)
punti = 0
d = 0




def handle_submit(sender):
    'Writing on a txt file your input in the text box'
    check()
    
def printdom():
    global d
    dom.value = str(d+1)+") Qual è la sigla di "+province[d][0]+"?"

def check():
    global d
    global punti
    if text.value==province[d][1]:
        fbk.value = "Risposta esatta"
        punti +=1
    else:
        fbk.value = "Sbagliato era " + province[d][1]
        punti -=1
    score.value = str(punti)
    text.value=""
    if d<10:
        d += 1
        printdom()
    else:
        dom.value = 'THANK YOU'
        fbk.value = 'Il quiz è terminato'
        
    
text.on_submit(handle_submit)
printdom()


# ---   G U I ---
display(dom)
display(text)
display(fbk)
display(score)
# _______________




5) Qual è la sigla di Ogliastra?

The nb
https://nbviewer.jupyter.org/urls/dl.dropbox.com/s/wgqsxj16issv9rp/A%20simple%20Game%20App.ipynb

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 #...

Tkinter tutorial 1

Ok, this time we are going to talk about the tkinter module, a module to make GUIs (graphic user interface) for Python. Until now we have just used the console or the jupyter nootebook (and its widgets) to show the output. Now we are going to use the usual windows for linux, windows or MacOs. 1. IMPORT THE MODULE To use the tkinter modules (on python 3) you have to import them, for example, like this: from tkinter import * In this way you don't have to write tkinter. and then the classes you are going to use, but just the name of the classes. It is "faster", but it can sometime coflict with other names of other modules you can import. For now, we will use this way to import tkinter, anyway. 2. CREATE A WINDOW root = Tk () root . geometry ( "400x300+500+300" ) root . mainloop () About the geometry method of root (istance of Tk()): We passed a string argument to the method: 400x300 is the size of the window 500+300 are the position o...