PDA

View Full Version : [PYTHON]Aiutatemi a capire questo programma


felixbest
12-07-2012, 16:54
Salve a tutti, sto imparando le basi di python tramite una guida sul sito italiano, fino a ieri non avevo avuto particolari difficoltà, ma poi mi sono trovata questo programma, che mi fa sentire completamente ritardato perchè mi manda in totale confusione :muro:

## 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 lista iniziale non ha un nome, come fa a riferirsi a quella dopo?
Poi della funzione run_test non ci capisco molto, come sostituisce quel (questions)? E cosa indica questions[index]?
Insomma vorrei se possibile una spiegazione di questo programma, grazie in anticipo a chiunque risponderà

Z80Fan
13-07-2012, 15:22
Il listato è quasi impossibile da leggere, sopratutto in Python, dove l'indentazione è importantissima.
Indentalo correttamente e usa i tag CODE e non i QUOTE.