Uit de cursus: Training over basisprincipes van Python
Functies als variabelen - tutorial Python
Uit de cursus: Training over basisprincipes van Python
Functies als variabelen
- [Instructeur] Variabelen hebben een naam en enkele gegevens die eraan zijn gekoppeld. Functies hebben een functienaam en enkele gegevens die eraan zijn gekoppeld. Oké, in het geval van een functie zijn deze gegevens informatie over de vereiste parameters, indien aanwezig, en ook enkele instructieregels die moeten worden uitgevoerd. En een functie wordt in Python eigenlijk weergegeven als een object. En we kunnen dit zien met behulp van het underscore underscore code attribuut van Python-functieobjecten. Oké, dus als ik co, varnames uitprint, laten we dan hier afdrukken en dan co_code afdrukken. Oké, dus hier zijn de namen van de variabelen. In dit geval hebben we er geen. En ook een Python-byte-object van alle instructieregels in deze functie. Nu zul je dit waarschijnlijk nooit echt nodig hebben. Ik heb het eigenlijk speciaal voor deze les opgezocht, dus maak alsjeblieft geen aantekeningen over de onderstrepingstekencode. Je hebt het niet nodig. Maar wat je wel moet weten, is dat functies niets bijzonders zijn in Python. Het zijn slechts variabelen die verband houden met bepaalde gegevens. En om dit te demonstreren is hier wat tekst die je waarschijnlijk zult herkennen van eerder, en ook enkele functienamen. En deze twee verschillende tekstverwerkingsprocessen. We hebben dus een functie die de tekst allemaal kleine letters maakt, interpunctie verwijdert, alle nieuwe regeltekens verwijdert die worden weergegeven met die backslash n, woorden verwijdert als de woordlengte drie of minder is, en vervolgens ook de lange woorden verwijdert. Nu kan ik gemakkelijk mixen en matchen in de volgorde waarin ik deze functies uitvoer en welke functies ik toepas door ze in een lijst te roepen. Dus laten we een lijst maken met de naam verwerkingsfuncties, oké? En voeg kleine letters toe, verwijder interpunctie, verwijder nieuwe regels. Oké, voor func in verwerkingsfuncties is tekst gelijk aan func-tekst, oeps. Tekst afdrukken. En je kunt zien dat ik hier gemakkelijk functies aan kan toevoegen, zoals het verwijderen van lange woorden. Nu hebben we alle korte woorden. Je kunt je dus voorstellen hoe krachtig dit patroon kan zijn voor veel bedrijfsprocessen die, laten we zeggen, last hebben van, laten we zeggen, vaak veranderende eisen. En tot slot, een laatste manier om een functie weer te geven die je zou kunnen gebruiken en tegenkomen. Dus niet elk stukje data heeft een variabele naam nodig, toch? Alsof ik gewoon vijf kan typen en dat bestaat zo'n beetje. Ik kan twee plus drie doen, geen variabelenaam vereist. Nou, je kunt hetzelfde doen met functies en ze worden lambda-functies genoemd zoals de Griekse letter lambda. En je kunt een kleine functie definiëren zonder een variabelenaam zoals deze, lambda x, en dan een dubbele punt, x plus drie. En we kunnen het dan met vijf noemen en dat levert acht op. Je typt dus lambda, gevolgd door je parameternamen. In dit geval alleen die ene parameter X, dan een dubbele punt en dan een functie van één regel. Sorry, geen multiline-functies met lambda-functies. U hoeft geen retour te typen. Er wordt automatisch uitgegaan van het retourzending. Er is een impliciete terugkeer, zoals we dat noemen. En dus neemt dit de waarde vijf, telt er drie bij op en retourneert acht. En soms komt dit goed van pas in sommige Python-functies die een functie als argument nemen. Voor het sorteren van een lijst met waarden kunt u bijvoorbeeld de functie gesorteerd gebruiken. Dus hier is mijn lijst en het is vijf, vier, drie, twee. Geweldig, gesorteerd, mijn lijst. En je kunt zien dat het die waarden sorteert. Maar als de dingen die je aan het sorteren bent geen duidelijke numerieke waarde hebben, kun je een functie doorgeven die een item in de lijst neemt en de waarde retourneert die Python zou moeten gebruiken om het te sorteren. Oké, bijvoorbeeld, mijn lijst, het wordt nu een lijst met woordenboeken, nummer drie, nummer twee en nummer één. Oké, nu willen we deze gesorteerde functie weer aanroepen. Mijn lijst, en je kunt zien dat we het niet kunnen sorteren. Maar als we deze sleutelparameter doorgeven, wat een functie is, lambda x, x wordt ons item hierin, en dan x nummer teruggeven, en nu kan het het sorteren. Een lambdafunctie is echt een handige en beknopte manier om kleine minifuncties te schrijven die je gewoon nodig hebt terwijl je je code schrijft. En dat is het, je bent nu een functioneel competente programmeur.
Oefen terwijl u leert met oefenbestanden
Download de bestanden die de cursusleider gebruikt tijdens de cursus. Volg de stappen en leer door te kijken, te luisteren en te oefenen.