Grisegutt Skrevet 17. april 2005 Del Skrevet 17. april 2005 Altså, eg forstår meg bare ikke på return funksjonen i egendefinerte funksjoner. Se på denne koden her: true = 1 false = 0 def get_questions(): 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"]] def check_questions(question_and_answer): question = question_and_answer[0] answer = question_and_answer[1] given_answer = raw_input(question) if given_answer == answer: print "Korrekt" return true else: print "Feil, det riktige er",answer return false def run_test(questions): if len(questions) == 0: print "ingen sporsmaal gitt" return index = 0 right = 0 while len(questions) > index: if check_questions(questions[index]): right = right + 1 index = index + 1 print "Du fikk",right*100/len(questions),"% av",len(questions),"sporsmaal" run_test(get_questions()) Hva gjør return funksjonen når den returnerer false og true? Hva er det som skjer? Lenke til kommentar
zeitgeist Skrevet 17. april 2005 Del Skrevet 17. april 2005 (endret) For det første, du definerer dine egne globale variable, true og false istedet for å bruke True og False. Det trenger du ikke, i hvert fall ikke hvis du bruker v2.3 eller høyere. En funksjon returnerer som regel et resultat. Noen ganger er det ok å la den jobbe på globale variable, men som oftest får du noe tilbake f.eks def htmlToText(html): div prosesering return text eller def isMemberOfTheCoolLeague(candidate): if candidate in memberlist: return True return False t = htmlToText(masseHtml) if isMemberOfTheCoolLeague('birger') openDoor('birger') else: assKickHard('birger') EDIT: Hvis vi ser på programmet ditt, så brukes return i check_questions() for å returnere True eller False alt ettersom svaret er rett eller ikke. i run_test() står det bare return, dvs funksjonen avslutter operasjonen der og returnerer None (ingenting) til kaller av funksjonen, dvs run_test(get_questions()) Det er fiktig å merke seg med return, f.eks def syng_i_dusjen(navn): if navn == "Pekka": return if navn == "Gunn-Anita": return "Sooome daaaaay I'm gonna be somebodyyyy" skriver du print syng_i_dusjen('Pekka'), så vil output bli "None" og Gunn-Anitas sang vil aldri komme noen for øret, eller øyet. Funskjnen avbryter ved testen på om navn == "Pekka". Skriver du print syng_i_dusjen('Roy'), så blir også output "None" for helt nederst i funksjonen står det "return None", selv om det er usynlig ;-) Det er implisitt i alle funksjoner uten et eksplisitt return-statement til slutt. Endret 17. april 2005 av zeitgeist Lenke til kommentar
A_N_K Skrevet 17. april 2005 Del Skrevet 17. april 2005 'return' er ingen funksjon, det er et direktiv som angir hvilken verdi som skal overleveres kalleren av funksjonen. Hvis du definerer en en funksjon som returnerer 'false' vil dette være verdien kalleren sitter igjen med (hvis returverdien tas vare på). Jeg kommer dessverre ikke på noen bedre måte å forklare det på. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå