Hét vraag- en antwoordplatform van Nederland

Kan iemand mij uitleggen wat 'return' (zonder de aanhalingstekens) doet in python?

Ik ben bezig met het leren van python d.m.v. het boek dat onderaan staat. Nu ik bij exercise 21 ben gekomen snap ik niet helemaal wat 'return' doet. Ik weet wel dat het achter een function moet komen en de function snap ik ook wel maar wat het precies doet weet ik niet. Kan iemand mij meer uitleg geven?

http://www.learnpythonthehardway.org/book/

Verwijderde gebruiker
11 jaar geleden
5.1K

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (3)

Een function doet een berekening waar een resultaat uitkomt. Dat resultaat moet worden gemeld aan de aanroeper van de function.

In het voorbeeld wordt bijvoorbeeld een function gedefinieerd die "add" heet en die twee getallen meekrijgt om mee te rekenen: "a" en "b". De function "add" heeft als taak "a" en "b" op te tellen, en het resultaat daarvan terug te melden.

(En in dit voorbeeld bevat "add" ook nog een "print"-opdracht, maar die staat er alleen om de oefening duidelijker te maken.)

De "return" zegt WAT er aan de aanroeper moet worden gemeld. In dit geval dus: a+b.

Dus add(25, 7) geeft als resultaat ("return-waarde") 32.

Probeer maar: zet in de function als laatste regel maar eens "return 42" (zonder aanhalingstekens). Je zult zien dat "age" in het hoofdprogramma dan altijd 42 wordt, en niet 35 zoals nu.

Je kunt in de function als laatste regel ook "return 2*a" zetten. Dan zal "age" 60 worden in plaats van 35, omdat het hoofdprogramma nu de waarde 60 terugkrijgt van de function "add".
 
(Lees meer...)
Cryofiel
11 jaar geleden
Een function is een soort gespecialiseerd mini-programmaatje dat een bepaalde waarde voor je berekent.

In dat "programmaatje" kan sprake zijn van van meerdere getallen en variabelen. Hoe geef je nou aan welk van die waarden nou die ene is waar het om draait ? (welke de uitkomst is, dus)

Wel, dat doe je met het return-commando.

Je zegt als het ware: "geef als uitkomst terug: uitkomst"

Lui als programmeurs zijn nemen ze vaak niet eens de moeite om de betreffende uitkomst een naam te geven (in een variabele te stoppen) Ze geven alleen de som op.

De computer gaat dan eerst de som uitrekenen en geeft vervolgens het antwoordt terug aan het hoofd-programma dat de function in eerste instantie aanriep.

B.v.:

def add(a, b):
print "ADDING %d + %d" % (a, b)
return a + b

Stel dat: a=5 en b=7, dan zal de computer dus berekenen: 5+7=13
De funktie 'add' zal na aanroep dus "13" aan het hoofdprogramma terug geven.

Of in het geval van: age = add(30, 5)
dan zal de function aangeroepen worden met de waarden a=30 en b=5. De function zal a+b = 30+5 = 35 worden en via de 'return' wordt dit teruggegeven en in de variabele 'age' gestopt.

Na afloop zal 'age=35' zijn
(Lees meer...)
Verwijderde gebruiker
11 jaar geleden
Cryofiel
11 jaar geleden
Jouw computer heeft geen last van de FDIV-bug die een paar jaar geleden voor ophef zorgde, maar van de nog onbekende ADD-bug...
Verwijderde gebruiker
11 jaar geleden
Haha... 5+7 is natuurlijk 12 en geen 13 !
:-) Goed opgemerkt !
Return is het einde van een functie, en geeft het resultaat van de functie terug.

Dus:
def functienaam(var1, var2 ....):
Doe iets zinvols met var1 en var2
en stop dat in de variabele
resultaat

return resultaat

Als je een functie schrijft die twee getallen bij elkaar op telt, de letters van een string verhusselt of iets dergelijks, dan krijg je op deze manier dat resultaat terug.

Als mijn functie niet een resultaat als een getal, of een verbouwde string heeft, geef ik vaak terug of de actie van een functie wel of niet geslaagd is.

dus:
def stuur_tweet(tekst):
try:
Verstuur_twittertekst_met_een_paar_regels_code
result = True
except twitterfouten:
print("tweet %s niet verstuurd" %(tekst))
result = False
return result

Toegevoegd na 1 minuut:
Als je alleen return gebruikt, geef je daarmee aan dat de functie is afgelopen. Je geeft dan 'niets' terug.

Correct me if I am wrong, maar dat is volgens mij net zo iets als in C
return void, of te wel 'leegte'
(Lees meer...)
Verwijderde gebruiker
11 jaar geleden

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 2500
Gekozen afbeelding