Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-01-2008, 15:27   #1
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
[PYTHON] Liste

Sono arrivato qui http://www.python.it/doc/Easytut/easytut-it/node10.html

Codice:
## Questo programma verifica la vostra conoscenza.

true = 1
false = 0

# Prima ottieni il questionario, successivamente sarà modificato 
# per l'uso del file IO. 
def get_questions():
    # Nota come il dato viene magazzinato in una lista di liste.
    return [["What color is the daytime sky on a clear day?","blue"],\
            ["What is the answer to life, the universe and everything?","42"],\
            ["What is a three letter word for mouse trap?","cat"]]

# Questo verificherà una singola domanda, restituirà vero, se l'utente
# ha scritto la risposta corretta, altrimenti restituirà falso.
def check_question(question_and_answer):
    # Estrai la domanda e la risposta dalla lista.
    question = question_and_answer[0]
    answer = question_and_answer[1]
    # Poni la domanda all'utente.
    given_answer = raw_input(question)
    # Confronta le risposte dell'utente con quelle del test.
    if answer == given_answer:
        print "Correct"
        return true
    else:
        print "Incorrect, correct was:",answer
        return false

# Questa funzione effettuerà tutte le domande.
def run_test(questions):
    if len(questions) == 0:
        print "No questions were given."
        # Esce dalla funzione.
        return
    index = 0
    right = 0
    while index < len(questions):
        # Controlla la domanda.
        if check_question(questions[index]):
            right = right + 1
        # Vai alla prossima domanda.
        index = index + 1
    # Attenzione all'ordine dei conteggi, prima moltiplica, poi dividi.
    print "You got ",right*100/len(questions),"% right out of",len(questions)

# Adesso esegui la funzione sulle domande.
run_test(get_questions())
La domanda dalla lista e la risposta come la estrae? Non fa nessun riferimento alla funzione get_questions..

check_questions come parametro dovrebbe avere (question_and_answer), come fa ad avere (questions [index])? Come lo fa il controllo della domanda?

run_test dovrebbe avere (questions) come parametro, come mai allora ha (get_questions()) come parametro?

Ora prendo un pò d'aria e ci ragiono di nuovo a mente serena, è dalle 2 che ci sono sopra tra studiare la guida, scrivere il codice e cercare id capirlo.. credo proprio di avere un apprendimento lento, molto lento...
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.

Ultima modifica di ~FullSyst3m~ : 25-01-2008 alle 15:32.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2008, 15:58   #2
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
raw_input(prompt) stampa a schermo la stringa prompt, e legge l'input dell'utente, immagazzinandolo in una stringa "grezza".
Nella funzione check_question, l'argomento è una lista i cui elementi sono due stringhe, quindi una coppia di stringhe.
La funzione get_questions crea una lista siffatta.
Per cui, nelle chiamate a check_question, questions-di-i (scrivo così se no scatta il corsivo) è l'i-esimo campo della lista creata da get_questions... la quale, a sua volta, è una lista di coppie di stringhe.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2008, 16:36   #3
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Sinceramente non c'ho capito molto e cosa significa che la funzione get_questions crea una lista siffatta?
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2008, 22:04   #4
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Ho provato a smanettare un pò con il codice e, se non sto sparando una cretinata, credo che la funzione check_question riesce ad estrarre le domande grazie a [0] e [1] che non sono altro che gli indici di ognuna delle tre liste. E' come se questi due indici ricercano nel codice le liste e le estraggono, non vorrei sbagliarmi però.

Poi guardando meglio ho visto i due return nella funzione check_question che dovrebbe servire a terminare la funzione nel caso in cui sia vera o falsa e quindi dovrebbero ritornare 0 oppure 1, ma non mi sembra che ritornano niente. Ho solo notato che togliendoli alla fine del programma la percentuale non viene visualizzata

Ultima cosa il parametro (questions) della funzione run_test: da dove viene preso questo parametro?

Non so se sia normale o se sia la stanchezza o se sia che non ho predisposizione alla programmazione o altro, ma mi sembra che sono molto lento nell'apprendere anche se è da poco che ho iniziato a studiare Python. Ho perso un giorno solo su questo esempio e ancora devo capire tutto il codice nel suo insieme e fare l'esercizio successivo... adesso vado a letto che sono stanchissimo e domani sveglia alle 6. Notte a tutti
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2008, 22:54   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Allora, tento di spiegarti come funziona questo programma, però non posso andare troppo nel tecnico perché non conosco python.

Prima di tutto hai definito 3 funzioni, vediamole nel dettaglio:

get_questions() Questa funzione ritorna un array un po' particolare, infatti ogni elemento dell'array è a sua volta composto da un altro array che contiene due stringhe. Questo significa che se fai una cosa del tipo:
Codice:
domande_risposte=get_questions()
in domande_risposte avrai un array di array, se poi fai:
Codice:
domanda_risposta=domande_risposte[0]
in domanda_risposta avrai il primo array contenuto in domande_risposte. Questo è un array semplice composto da due elementi stringa, quindi se fai:
Codice:
print domanda_risposta[0], " ",domanda_risposta[1]
stamperai prima la domanda (il primo elemento dell'array) e poi la risposta (il secondo)

check_question(question_and_answer) Questa funzione ritorna true se la risposta che viene data alla domanda è corretta, false altrimenti. La domanda da fare e la relativa risposta sono passate come argomento: question_and_answer. Esso è un array come domanda_risposta, quindi ora dovresti aver capito cosa fa il codice di questa funzione.

run_test(questions) Questo è il metodo che dato un array di domande e risposte (questions, che è un array del tipo particolare che restituisce la prima funzione) genera il questionario. Fa un ciclo da 0 alla lunghezza di questions e per ogni questions[index] (che è un semplice array di due stringhe) lancia il check_question, se questa restituisce true, e cioè la risposta è stata azzeccata, viene incrementato il contatore di risposte corrette right.

Infine tutto quello che fa il programma è richiamare run_test passandogli come argomento ciò che viene restituito dalla funzione get_questions().
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 00:17   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Non so se sia normale o se sia la stanchezza o se sia che non ho predisposizione alla programmazione o altro, ma mi sembra che sono molto lento nell'apprendere anche se è da poco che ho iniziato a studiare Python.
Se posso darti un consiglio spassionato: appena ti vengono in mente simili pensieri demoralizzanti lasciateli immediatamente alle spalle, buttali alle ortiche.
Tieniti solo i pensieri positivi

Quote:
Ho perso un giorno solo su questo esempio e ancora devo capire tutto il codice nel suo insieme e fare l'esercizio successivo... adesso vado a letto che sono stanchissimo e domani sveglia alle 6. Notte a tutti
Tranquillo che di giorni spesi su "un singolo esercizio" o sulla risoluzione di un singolo problema te ne capiteranno altri: fa parte del processo, ci siamo passati tutti, programmatori non si nasce, si diventa.
Dai tempo al tempo, sei appena agli inzi.

Ciao
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 06:14   #7
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Allora, tento di spiegarti come funziona questo programma, però non posso andare troppo nel tecnico perché non conosco python.

Prima di tutto hai definito 3 funzioni, vediamole nel dettaglio:

get_questions() Questa funzione ritorna un array un po' particolare, infatti ogni elemento dell'array è a sua volta composto da un altro array che contiene due stringhe. Questo significa che se fai una cosa del tipo:
Codice:
domande_risposte=get_questions()
in domande_risposte avrai un array di array, se poi fai:
Codice:
domanda_risposta=domande_risposte[0]
in domanda_risposta avrai il primo array contenuto in domande_risposte. Questo è un array semplice composto da due elementi stringa, quindi se fai:
Codice:
print domanda_risposta[0], " ",domanda_risposta[1]
stamperai prima la domanda (il primo elemento dell'array) e poi la risposta (il secondo)

check_question(question_and_answer) Questa funzione ritorna true se la risposta che viene data alla domanda è corretta, false altrimenti. La domanda da fare e la relativa risposta sono passate come argomento: question_and_answer. Esso è un array come domanda_risposta, quindi ora dovresti aver capito cosa fa il codice di questa funzione.

run_test(questions) Questo è il metodo che dato un array di domande e risposte (questions, che è un array del tipo particolare che restituisce la prima funzione) genera il questionario. Fa un ciclo da 0 alla lunghezza di questions e per ogni questions[index] (che è un semplice array di due stringhe) lancia il check_question, se questa restituisce true, e cioè la risposta è stata azzeccata, viene incrementato il contatore di risposte corrette right.

Infine tutto quello che fa il programma è richiamare run_test passandogli come argomento ciò che viene restituito dalla funzione get_questions().
La funziona get_questions avevo capito come funzionava. Le cose che non mi tornano sono che il parametro di check_questions non si riferisce non è get_questions, ma uno messo a caso eppure richiama la coppia di stringhe? Perchè? Forse perchè mettendo gli indici il programma ricerca in automatico la lista nel codice? E la funzione run_test l'avevo capita pure, non capisco solo come effettua il controllo se è vera o falsa. C'è solo un if check_questions(questions[index]) che attiva la funziona check_questions, ma non c'è un if che, ad esempio, controlla se la funzione restituisce true o false
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 06:36   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
La funziona get_questions avevo capito come funzionava. Le cose che non mi tornano sono che il parametro di check_questions non si riferisce non è get_questions, ma uno messo a caso eppure richiama la coppia di stringhe? Perchè? Forse perchè mettendo gli indici il programma ricerca in automatico la lista nel codice?
Considera che tutte le domande e risposte sono memorizzate in una lista. Questa lista, a sua volta, è costituita da una lista che contiene esattamente due elementi: la domanda e la risposta.

A check_question viene passata, come parametro, esattamente una lista di questo tipo, dunque costituita da due soli elementi: il primo è la domanda e il secondo è la risposta; il primo ha indice 0 (all'interno di questa lista) e il secondo ha indice 1.
Quote:
E la funzione run_test l'avevo capita pure, non capisco solo come effettua il controllo se è vera o falsa. C'è solo un if check_questions(questions[index]) che attiva la funziona check_questions, ma non c'è un if che, ad esempio, controlla se la funzione restituisce true o false
Non c'è bisogno perché check_questions ritorna vero o falso a seconda del controllo che fa al suo interno. In sostanza l'if non fa altro che prendere questo valore ritornato, e nel caso in cui è vero incrementare di 1 la variabile right.

Comunque questo tutorial non mi piace: è troppo vecchio e poco "pythonic".

Ti posto lo stesso programma, ma "aggiustato" un po':
Codice:
## Questo programma verifica la vostra conoscenza.

# Prima ottieni il questionario, successivamente sarà modificato 
# per l'uso del file IO. 
def get_questions():
    # Nota come il dato viene magazzinato in una lista di liste.
    return [["What color is the daytime sky on a clear day?", "blue"],
            ["What is the answer to life, the universe and everything?", "42"],
            ["What is a three letter word for mouse trap?", "cat"]]

# Questo verificherà una singola domanda, restituirà vero, se l'utente
# ha scritto la risposta corretta, altrimenti restituirà falso.
def check_question(question_and_answer):
    # Estrai la domanda e la risposta dalla lista, che è costuita esattamente dai questi due elementi.
    # Con l'istruzione seguente i due elementi vengono presi da question_and_answer e memorizzati rispettivamente in question e answer.
    question, answer = question_and_answer
    
    # Poni la domanda all'utente.
    given_answer = raw_input(question)
    # Confronta le risposte dell'utente con quelle del test.
    if answer == given_answer:
        print "Correct"
        return True
    else:
        print "Incorrect, correct was:", answer
        return False

# Questa funzione effettuerà tutte le domande.
def run_test(questions):
    if not questions:
        print "No questions were given."
        # Esce dalla funzione.
        return
    index = right = 0
    while index < len(questions):
        # Controlla la domanda.
        if check_question(questions[index]):
            right = right + 1
        # Vai alla prossima domanda.
        index = index + 1
    # Attenzione all'ordine dei conteggi, prima moltiplica, poi dividi.
    print "You got ", right * 100 / len(questions), "% right out of", len(questions)

# Adesso esegui la funzione sulle domande.
run_test(get_questions())
Le cose che ho cambiato:
- ho rimosso le definizioni di true e false, visto che esistono già True e False in Python per indicare un valore booleano vero o falso, rispettivamente;
- rimosso il carattere \ alla fine di ogni lista, perché è inutile quando si definisce un elenco;
- ho usato l'assegnazione question, answer = question_and_answer per "spacchettare" i due elementi della lista e assegnarli immediatamente alle rispettive variabili; in questo modo non ti devi nemmeno curare degli indici della lista, perché pensa a tutto Python;
- ho usato if not questions: al posto di if len(questions) == 0: per controllare se NON ci sono elementi nella lista.

Per adesso è tutto. Non so se mi collegherò ancora più tardi, perché ho tante cose da fare ma, se dovessi avere problemi, appena possibile vedrò di darti una mano.

P.S. NON ti demoralizzare! Persevera e vedrai che anche tu imparerai a programmare. NON si nasce programmatori! Lo si diventa!!!
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 13:13   #9
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
C'è qualcosa che mi sfugge e non capisco cosa... cioè. il parametro di chek_questions non fa nessun riferimento alla funzione get_questions e le due variabili question, answer come estraggono la domanda senza fare alcun riferimento alla lista? E' questo che non capisco (non sapevo nemmeno che si potevano scrivere due variabili nella stessa linea separati da virgola)
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 14:09   #10
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Prova a simulare l'esecuzione del programma, vedrai che check_question non ha alcun bisogno di richiamare get_questions.
Per simulare devi partire dall'ultima riga di codice
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 15:37   #11
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Ed è proprio questo il punto, che non ha bisogno, e la domanda che mi pongo è perchè? La lista deve estrarla obbligatoriamente da là. L'esecuzione di un programma si guarda dal basso verso l'alto? Io sapevo che si guarda dall'alto al basso, riga per riga
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 16:30   #12
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Mi sa che non hai chiaro il concetto di "funzione", prova a riguardare il capitolo a riguardo nel tutorial/guida che stai seguendo.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 17:33   #13
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
C'è qualcosa che mi sfugge e non capisco cosa... cioè. il parametro di chek_questions non fa nessun riferimento alla funzione get_questions e le due variabili question, answer come estraggono la domanda senza fare alcun riferimento alla lista? E' questo che non capisco
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Ed è proprio questo il punto, che non ha bisogno, e la domanda che mi pongo è perchè? La lista deve estrarla obbligatoriamente da là. L'esecuzione di un programma si guarda dal basso verso l'alto? Io sapevo che si guarda dall'alto al basso, riga per riga
Sì, ma dall'alto in basso trovi soltanto le DEFINIZIONI delle funzioni, che "non fanno nulla" (semplicemente da questo momento in poi Python "sa" che esistono quelle funzioni con quei parametri, e possono essere richiamate).

L'unica riga di codice vero e proprio, che quindi verrà eseguita, è proprio l'ultima, come ti è stato già indicato:

run_test(get_questions())

Da questa, se cominci a seguire passo passo l'esecuzione, capisci come funziona tutto: prima viene richiamata get_questions, che ritorna la lista di liste (formate dalla coppia domanda / risposta), e questa viene "data in pasto" a run_test, e così via.
Quote:
(non sapevo nemmeno che si potevano scrivere due variabili nella stessa linea separati da virgola)
Questa sintassi serve per "spacchettare" le liste (e anche le tuple, ma ne parleremo più avanti, quando conoscerai anche questo tipo di dati) "in un colpo solo".

Esempio pratico.
Codice:
Lista = ['Qui', 'Quo', 'Qua']
X, Y, Z = Lista
Print X, Y, Z
stamperà a video 'Qui', 'Quo' e 'Qua' perché alle variabili X, Y e Z sono stati assegnati rispettivamente quei valori.

Python rulez.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 18:26   #14
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Mi sa che non hai chiaro il concetto di "funzione", prova a riguardare il capitolo a riguardo nel tutorial/guida che stai seguendo.
Mi vergognerei di me stesso se fosse cosi, ma mi sta venendo davvero il dubbio... sta guida mi sa che mi ha rovinato...

Quote:
Sì, ma dall'alto in basso trovi soltanto le DEFINIZIONI delle funzioni, che "non fanno nulla" (semplicemente da questo momento in poi Python "sa" che esistono quelle funzioni con quei parametri, e possono essere richiamate).

L'unica riga di codice vero e proprio, che quindi verrà eseguita, è proprio l'ultima, come ti è stato già indicato:

run_test(get_questions())

Da questa, se cominci a seguire passo passo l'esecuzione, capisci come funziona tutto: prima viene richiamata get_questions, che ritorna la lista di liste (formate dalla coppia domanda / risposta), e questa viene "data in pasto" a run_test, e così via.
Questa non la sapevo, ho imparato una cosa nuova. Ma quando si scrive un programma, visto che l'esecuzione si guarda dal basso verso l'alto, come si dovrebbe procedere? Al contrario (spero di non aver sparato una caz...)?

Quote:
Questa sintassi serve per "spacchettare" le liste (e anche le tuple, ma ne parleremo più avanti, quando conoscerai anche questo tipo di dati) "in un colpo solo".

Esempio pratico.
Codice:

Lista = ['Qui', 'Quo', 'Qua']
X, Y, Z = Lista
Print X, Y, Z

stamperà a video 'Qui', 'Quo' e 'Qua' perché alle variabili X, Y e Z sono stati assegnati rispettivamente quei valori.

Python rulez.
Ora è tutto chiaro (anche se lo avevo capito da prima questa cosa, ma volevo avere la certezza) ed è proprio per questo che mi chiedo: se question = question_and_answer[0] e answer = question_and_answer[1] (oppure question, answer = question_and_answer come hai scritto tu) a question_and_answer chi gli assegna la lista come valori? Cioè question_and_answer è il parametro e poteva anche esserci mezzo (tizio_e_caio) come parametro, ma chi gli assegna le liste se non c'è nessun riferimento alle liste? Dovrebbe esserci messo tipo
Codice:
question, answer = get_questions
E' questo che mi chiedo, ma sono sempre più convinto che sono stupido arrivato a questo punto e che sto perdendo un sacco di tempo sopra sto argomento e sopra sto codice... Che rabbia cavolo.... mi sono uno stupido davvero, un impotente (c'è viagra per aspiranti programmatori falliti in partenza?!?!)
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 19:08   #15
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7249
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Ora è tutto chiaro (anche se lo avevo capito da prima questa cosa, ma volevo avere la certezza) ed è proprio per questo che mi chiedo: se question = question_and_answer[0] e answer = question_and_answer[1] (oppure question, answer = question_and_answer come hai scritto tu) a question_and_answer chi gli assegna la lista come valori? Cioè question_and_answer è il parametro e poteva anche esserci mezzo (tizio_e_caio) come parametro, ma chi gli assegna le liste se non c'è nessun riferimento alle liste? Dovrebbe esserci messo tipo
Codice:
question, answer = get_questions
E' questo che mi chiedo, ma sono sempre più convinto che sono stupido arrivato a questo punto e che sto perdendo un sacco di tempo sopra sto argomento e sopra sto codice... Che rabbia cavolo.... mi sono uno stupido davvero, un impotente (c'è viagra per aspiranti programmatori falliti in partenza?!?!)
quello che intendeva dire cdimauro non è che il codice si legge dal basso verso l'alto, ma che tutte le volte che incontri la parola chiave "def" significa che stai definendo una funzione, ma non la stai eseguendo in quel momento. semplicemente sai che quella funzione è stata definita e potrai utilizzarla in seguito.

detto questo la prima istruzione che verrà eseguita sarà:
Codice:
run_test(get_questions())
perchè non si tratta di una definizione, ma di codice che va eseguito.

questo risponde alla tua domanda, perchè se passi come parametro get_questions() significa che dentro run_test la variabile "questions" ha lo stesso valore di quello che viene restituito da get_questions(), cioè la lista di domande e risposte.
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2008, 19:19   #16
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Mi vergognerei di me stesso se fosse cosi, ma mi sta venendo davvero il dubbio... sta guida mi sa che mi ha rovinato...
Diciamo che non è un MUST per chi inizia a programmare...
Quote:
Questa non la sapevo, ho imparato una cosa nuova. Ma quando si scrive un programma, visto che l'esecuzione si guarda dal basso verso l'alto, come si dovrebbe procedere? Al contrario (spero di non aver sparato una caz...)?
Come ti ha risposto correttamente kont3, l'esecuzione parte sempre dall'alto verso il basso. Semplicemente ci sono istruzioni che definisco delle cose (la definizione di funzioni, ad esempio) e altre che eseguono effettivamente delle azioni (la chiamata a funzione che è presente come ultima riga).
Quote:
Ora è tutto chiaro (anche se lo avevo capito da prima questa cosa, ma volevo avere la certezza) ed è proprio per questo che mi chiedo: se question = question_and_answer[0] e answer = question_and_answer[1] (oppure question, answer = question_and_answer come hai scritto tu) a question_and_answer chi gli assegna la lista come valori? Cioè question_and_answer è il parametro e poteva anche esserci mezzo (tizio_e_caio) come parametro, ma chi gli assegna le liste se non c'è nessun riferimento alle liste? Dovrebbe esserci messo tipo
Codice:
question, answer = get_questions
Se, come ti dissi in precedenza, ripercorri l'esecuzione passo passo, arriverai velocemente a dove vengono presi questi valori, come ti ha esposto anche kont3.
Quote:
E' questo che mi chiedo, ma sono sempre più convinto che sono stupido arrivato a questo punto e che sto perdendo un sacco di tempo sopra sto argomento e sopra sto codice... Che rabbia cavolo.... mi sono uno stupido davvero, un impotente (c'è viagra per aspiranti programmatori falliti in partenza?!?!)
Sì, è il libro che t'ho consigliato prima.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 11:35   #17
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Come ti ha risposto correttamente kont3, l'esecuzione parte sempre dall'alto verso il basso. Semplicemente ci sono istruzioni che definisco delle cose (la definizione di funzioni, ad esempio) e altre che eseguono effettivamente delle azioni (la chiamata a funzione che è presente come ultima riga).
Si è vero, pensavo proprio questo io ma ho scritto una cretinata, chissà dove avevo la testa

Quote:
questo risponde alla tua domanda, perchè se passi come parametro get_questions() significa che dentro run_test la variabile "questions" ha lo stesso valore di quello che viene restituito da get_questions(), cioè la lista di domande e risposte.
Ora è tutto chiaro...è vero! Come ho fatto a non vederlo prima! Che stupido! Cioè a run_test viene passsato get_questions come parametro ed è da lì che prende la lista. Successivamente if check_question (questions[index]) è come se avesse (get_questions[index]) visto che questions è uguale a get_questions e controlla se la risposta dell'utente è uguale a question, che ha come valore answer_and_questions che a sua volta è uguale a question[index] che sua volta è uguale a get_questions[index] e se ritorna true aggiunge right + 1, altrimenti passa all'altra domanda... giusto oppure ho sparato una cretinata gigantesca?
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 19:57   #18
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Finalmente ci siamo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2008, 21:21   #19
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Ma vieniiiiii........
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2008, 00:00   #20
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
EDIT: piccola curiosità: ma il valore true o false a quanto ho capito python lo "riconosce" in automatico visto che non c'è nessun controllo nella funzione run_test ma aumenta di +1 right se la risposta è giusta... o sbaglio?
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Interlune creerà un centro di ric...
Stop Killing Games: 97% delle firme conv...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
Windows 10 muore, gli attivisti insorgon...
NVIDIA sarà il primo cliente di T...
Stellantis cancella il pick-up elettrico...
Microsoft termina il supporto per Office...
VaultGemma di Google è il primo L...
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: 22:01.


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