Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-08-2010, 12:21   #1
Saverio92
Member
 
Iscritto dal: Nov 2007
Messaggi: 152
[Python 2.6] Funzione random per quiz

Salve, mi dedico da poco alla programmazione e sto scrivendo un quiz con python. mi sono bloccato però alla funzione random. ho strutturato il programma in funzioni che richiamerò in seguito. come posso usare la funzione random con le funzioni? per spiegarmi meglio metto il codice del programma.


Codice:
import random

def inizio():
    regolamento="Il regolamento del gioco è semplice. Verranno effettuate una serie di 10 domande con 4 possibilità di risposta. Per rispondere ad ogni domanda si avranno a disposizione 3 tentativi. Ogni volta che si da la risposta giusta verranno guadagnati 5 punti. Per ogni domanda sbagliata se ne perderanno 2."
    global punteggio
    punteggio=0
    print "      QUIZZETTONE"
    print "domande di cultura generale"
    print "--------------------------"
    print "Created by Simone Montalto"
    print "--------------------------"
    print
    print

    inizio=""
    while inizio!="1" or inizio!="2" or inizio!="giocare" or inizio!="regolamento":
        print "Cosa vuoi fare?"
        print "1 - giocare"
        print "2 - regolamento"
        inizio=raw_input("")
        if inizio=="1" or inizio=="giocare":
            break
        elif inizio=="2" or inizio=="regolamento":
            print regolamento
        
def uno():
    vita=3
    print
    for x in range(3):
        print "Chi ha affrescato il Giudizio Universale nella Cappella Sistina?"
        print "a - Raffaello"
        print "b - Michelangelo"
        print "c - Tiziano"
        print "d - Leonardo"
        risposta=raw_input("Risposta: ")
        if risposta=="b" or risposta=="B" or risposta=="Michelangelo" or risposta=="michelangelo" or risposta=="MICHELANGELO":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio


def due():
    vita=3
    print
    for x in range(3):
        print "Cos'è l'ONU?"
        print "a - LメOrganizzazione Nazionale Umanitaria"
        print "b - Unメorganizzazione che raccoglie molti Stati del mondo, che decidono liberamente di aderire e sono accettati solo se soddisfano determinati requisiti"
        print "c - LメOrganizzazione costituita dai 7 paesi maggiormente industrializzati più la Russia"
        print "d - Unメorganizzazione cui tutti gli Stati del mondo devono aderire"
        risposta=raw_input("Risposta: ")
        if risposta=="b" or risposta=="B" or risposta=="Unメorganizzazione che raccoglie molti Stati del mondo, che decidono liberamente di aderire e sono accettati solo se soddisfano determinati requisiti" or risposta=="unメorganizzazione che raccoglie molti Stati del mondo, che decidono liberamente di aderire e sono accettati solo se soddisfano determinati requisiti":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio


def tre():
    vita=3
    print
    for x in range(3):
        print "Quando è stato abbattutto il Muro di Berlino?"
        print "a - 1980"
        print "b - 1985"
        print "c - 1989"
        print "d - 1993"
        risposta=raw_input("Risposta: ")
        if risposta=="c" or risposta=="C" or risposta=="1989":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio


def quattro():
    vita=3
    print
    for x in range(3):
        print "Che cosa si intende per settore terziario?"
        print "a - Attività manifatturiere"
        print "b - Attività non profit"
        print "c - Attività di servizi"
        print "d - Attività artigianali"
        risposta=raw_input("Risposta: ")
        if risposta=="c" or risposta=="C" or risposta=="Attività di servizi" or risposta=="attività di servizi":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio


def cinque():
    vita=3
    print
    for x in range(3):
        print "Che cos'è l'IVA?"
        print "a - Imposta sul valore aumentati"
        print "b - Imposta sul valore acquistato"
        print "c - Imposta sul valore accumulato"
        print "d - Imposta sul valore aggiunto"
        risposta=raw_input("Risposta: ")
        if risposta=="d" or risposta=="D" or risposta=="Imposta sul valore aggiunto" or risposta=="imposta sul valore aggiunto":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio


def sei():
    vita=3
    print
    for x in range(3):
        print "Che cos'è l'impressionismo?"
        print "a - Una corrente artistica"
        print "b - Una tecnica cinematografica"
        print "c - Una tecnica giornalistica"
        print "d - Un movimento politico"
        risposta=raw_input("Risposta: ")
        if risposta=="a" or risposta=="A" or risposta=="Una corrente artistica" or risposta=="una corrente artistica":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio



def sette():
    vita=3
    print
    for x in range(3):
        print "Nel SI (sistema internazionale), l'intensità luminosa, si misura in:"
        print "a - Lumen"
        print "b - Henry"
        print "c - Lux"
        print "d - Candele"
        risposta=raw_input("Risposta: ")
        if risposta=="d" or risposta=="D" or risposta=="candele" or risposta=="Candele" or risposta=="CANDELE":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio



def otto():
    vita=3
    print
    for x in range(3):
        print "Qual è l'album musicale più venduto nella storia?"
        print "a - Thriller di Michael Jackson"
        print "b - The Wall dei Pink Floyd"
        print "c - Nel blu dipinto di blu di Domenico Modugno"
        print "d - Pop degli U2"
        risposta=raw_input("Risposta: ")
        if risposta=="a" or risposta=="A" or risposta=="Thriller di Michael Jackson" or risposta=="thriller di michael jackson":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio



def nove():
    vita=3
    print
    for x in range(3):
        print "Cos'è la forza centripeta?"
        print "a - Una delle componenti dell'accelerazione nel moto circolare e precisamente è la componente normale rispetto alla traiettoria"
        print "b - Forza tangenziale che si crea in seguito ad una rapida rotazione attorno ad un asse"
        print "c - Variazione della velocità lineare nell'arco di tempo di 2 secondi"
        print "d - Nessuna delle precedenti"
        risposta=raw_input("Risposta: ")
        if risposta=="a" or risposta=="A" or risposta=="Una delle componenti dell'accelerazione nel moto circolare e precisamente è la componente normale rispetto alla traiettoria" or risposta=="una delle componenti dell'accelerazione nel moto circolare e precisamente è la componente normale rispetto alla traiettoria":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio



def dieci():
    vita=3
    print
    for x in range(3):
        print "Che cosa accadde il 22 Agosto 1864?"
        print "a - Fu firmata la Convenzione di Ginevra"
        print "b - Fu inventata la penicillina"
        print "c - Nobel istituì il Premio Nobel"
        print "d - Il Cavour proclamò la nascita del regno d'Italia"
        risposta=raw_input("Risposta: ")
        if risposta=="a" or risposta=="A" or risposta=="Fu firmata la Convenzione di Ginevra" or risposta=="fu firmata la convenzione di ginevra":
            print "Risposta esatta!"
            global punteggio
            punteggio=punteggio+5
            break
        else:
            vita=vita-1
            global punteggio
            punteggio=punteggio-2
            print "Risposta errata."
            print "Hai a disposizione ancora",vita,"tentativi"
    print "Punti totali",punteggio

def fine():
    print "Bene, il quiz è terminato."
    nome=raw_input("Potresti dirmi il tuo nome?")
    print "Bravo %s, hai totalizzato %d punti" %(nome,punteggio)
il programma non è formattato bene sul forum, ma sul mio programma è indentato dove serve.

Ultima modifica di Saverio92 : 23-08-2010 alle 22:48.
Saverio92 è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 18:51   #2
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Nei forum ci sono i tag CODE apposta per evitare questi casini. Indenta il codice e ne riparliamo. E chiedi in modo più preciso cosa non capisci o cosa ti serve, cosi risparmiamo tutti del tempo prezioso.
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 22:49   #3
Saverio92
Member
 
Iscritto dal: Nov 2007
Messaggi: 152
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
Nei forum ci sono i tag CODE apposta per evitare questi casini. Indenta il codice e ne riparliamo. E chiedi in modo più preciso cosa non capisci o cosa ti serve, cosi risparmiamo tutti del tempo prezioso.
ho aggiustato con i tag code. praticamente vorrei che le domande inserite nelle funzioni comparissero a scermo casualmente. e poi se ad esempio inserisco 20 domande vorrei che ne uscissero solo 10 a caso. con la funzione random e le funzioni posso farlo?
Saverio92 è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 00:05   #4
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Suggerimento: random.choice()
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 09:49   #5
Saverio92
Member
 
Iscritto dal: Nov 2007
Messaggi: 152
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
Suggerimento: random.choice()
ho fatto una prova rd ho inserito questi comandi

Codice:
inizio()
a=(uno(),due(),tre())
random.choice(a)
fine()
ma non mi da le domande in ordine casuale ma in ordine. consigli?
Saverio92 è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 10:13   #6
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
In questo modo tu scegli casualmente la *funzione* non le domande *dentro la funzione*. Se vuoi le domande in modo casuale, inseriscile in una lista(*dentro le funzioni*) e le estrai con random.choice(). Ti servono dieci domande? Allora:
Codice:
for domanda in range(10):
    print random.choice(domande)
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 11:10   #7
Saverio92
Member
 
Iscritto dal: Nov 2007
Messaggi: 152
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
In questo modo tu scegli casualmente la *funzione* non le domande *dentro la funzione*. Se vuoi le domande in modo casuale, inseriscile in una lista(*dentro le funzioni*) e le estrai con random.choice(). Ti servono dieci domande? Allora:
Codice:
for domanda in range(10):
    print random.choice(domande)
quindi dovrei modificare anche il codice dentro le funzioni? scusa ma sono un niubbo in materia :-)
Saverio92 è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:19   #8
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Se le domande sono dentro le funzioni, come nel tuo caso, e tu le vuoi estratte in modo casuale, allora devi ovviamente modificare le funzioni. Ti ho fatto l'esempio poco sopra, prova
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:23   #9
Saverio92
Member
 
Iscritto dal: Nov 2007
Messaggi: 152
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
Se le domande sono dentro le funzioni, come nel tuo caso, e tu le vuoi estratte in modo casuale, allora devi ovviamente modificare le funzioni. Ti ho fatto l'esempio poco sopra, prova
io ho creato una funzione per ogni domanda perchè ci sono anche le istruzioni se la risposta è sbagliata o esatta
Saverio92 è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2010, 12:54   #10
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Quel codice è scritto malissimo, ma imparerai con il tempo. Se tu devi fare un quiz ci sono molti modi per poterlo implementare. Come prima cosa tutte queste funzioni non ti servono, puoi anche scriverlo in modo procedurale. Metti le domande con le risposte in un file ad esempio:

Codice:
Domanda Risposta
apri il file, lo leggi, dividi domande e risposte usando join e poi le visualizzi in modo casuale. Per vedere se è giusta o sbagliata basta un if e puoi piazzare tutto dentro un while, in modo che il gioco continua fin quando l'utente non digita ad esempio "esci".
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2012, 13:20   #11
tonino73
Junior Member
 
Iscritto dal: Jun 2000
Messaggi: 1
switch

si può usare una sorte di switch fatto con gli if.. elif.. else.. usando la funzione randint(a,b) che restituisce in modo casuale un intero nell'intervallo (a,b) compresi, facendo dei controlli se il numero casuale è già uscito (man mano che li estrae li metti in una lista e controlli se uguale), quindi nell'if richiami la def corrispondente al numero ed in fine un contatore nel while che si ferma a 10 domande sicuramente diverse. Spero di essere stato chiaro.
tonino73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Ericsson, il 5G è l’infrastruttur...
Marvell punta tutto su TSMC A14: sar&agr...
Hyundai a un passo dal controllo totale ...
Questo SSD vecchio 16 anni ha resistito ...
Monopattino elettrico Xiaomi in offerta:...
Microsoft usa le capre di Age of Empires...
Microsoft conferma bug nel Cestino in tu...
Accenture crolla del 20% in borsa, il pe...
ASUS Pro WS W890E-SAGE SE: sette PCIe 5....
Attenzione al prezzo di questa TV Hisens...
Chrome sbeffeggiato da Ballmer nel 2009:...
Un gioco Mac compatibile con Apple Silic...
La batteria allo stato solido di Honda s...
Google a ricercatore di sicurezza: 'Bel ...
MapTap vi farà impazzire: è...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v