Zephyrnet-logo

Wat zijn functies in Python? Hoe maak je functies aan in Python?

Datum:


Overzicht:

Dit artikel is bedoeld om de kennis over het Functions-concept in Python in detail op te frissen.

Inhoudsopgave:

  1. Wat zijn functies?
  2. Soorten functies
    • Ingebouwd
    • Gebruiker gedefinieerde
  3. Een functie definiëren
  4. Print vs Return-verklaringen
  5. Een functie aanroepen
  6. Soorten argumenten
    • Vereiste argumenten
    • Optionele argumenten
    • Positionele argumenten
    • Trefwoord argumenten
    • Argumenten met variabele lengte ( *args, **kwargs)
  7. Geneste functies
  8. Functies van hogere orde

1. Wat zijn functies?

Een functie in programmeren is een codeblok georganiseerd door een set regels om een ​​specifieke taak uit te voeren. Ze kunnen op elk moment tijdens de softwareontwikkeling een willekeurig aantal keren worden hergebruikt.

2. Soorten functies

Ingebouwde functies: Elke programmeertaal heeft vooraf gedefinieerde/bibliotheekfuncties om basisfunctionaliteiten te implementeren.

Lees meer over hen via Python ingebouwde functies documentatie.

De meest gebruikte functie in elke programmeertaal is de afdrukken() functie die het opgegeven bericht afdrukt.

Het is geweldig om ingebouwde functies te hebben, maar wat als we een vereiste hebben die niet kan worden bereikt met de bestaande functies? Misschien moeten we zelf een functie creëren.

De functies die door de gebruikers zijn gemaakt, worden aangeroepen Door de gebruiker gedefinieerde functies.

3. Een functie definiëren

Hieronder staan ​​de stappen om een ​​functie te definiëren:

De functiecodeblokken moeten beginnen met het trefwoord def gevolgd door de functie naamhaakjes( () ) en dubbele punt(:).

Alles wat tussen haakjes staat, is de invoer of parameter van de functie. (De waarden die aan de functie worden doorgegeven, worden argumenten genoemd. )

Na de functiedeclaratie kunnen we de beschrijving schrijven met behulp van docstring (""" """) die de gebruikers helpt het doel van de functie te begrijpen.

Na de docstring komt de code met betrekking tot de functionaliteit.

Eindigt met een print- of retourverklaring.

Syntaxis om een ​​functie te definiëren:

  1. def Functienaam(parameter):
  2. “”” Dit is een testfunctie “””
  3. # code om de parameter te berekenen
  4. afdrukken (uitvoer)
  5. terugkeer output

4. Afdrukken versus retourneren verklaringen

De afdrukken() functie zal alleen het gespecificeerde bericht of de opgegeven variabele afdrukken, terwijl de terugkeer instructie retourneert het bericht of de variabele die moet worden opgeslagen in een andere variabele wanneer de functie wordt aangeroepen. Met de instructie Return kunnen we de uitvoer van een functie gebruiken.

De uitvoering wordt gestopt na het bereiken van de return-instructie.

U kunt meerdere waarden retourneren door ze te scheiden met komma's.

5. Een functie aanroepen

Een functie kan worden aangeroepen met behulp van de naam. We moeten geldige waarden doorgeven aan de opgegeven parameters tijdens het definiëren van de functie.

Syntaxis om een ​​functie aan te roepen:

functieNaam(argument)

Voorbeeld Functie: 

Om de toevoeging van twee getallen te implementeren. We zullen twee functies zien – een met een print en de andere met een retourverklaring.

Functie met een afdrukopdracht

def print_sum(a, b): """Deze functie drukt de som van twee getallen af""" output = a+b print("Sum is: ", output) # stuurprogrammacode x = print_sum(10, 2) print( "X is: ", x)

De uitvoer van bovenstaande code is:

Som is: 12 X is: Geen

Functie met een return statement

def return_sum(a, b): """Deze functie retourneert de som van twee getallen""" output = a+b return output # stuurprogrammacode y = return_sum(-23, 8) print("Y is: ", y )

De uitvoer van bovenstaande code is:

Y is: -15

Als we beide uitvoer observeren, retourneert de instructie print de uitvoer niet, dus kunnen we deze niet opslaan in een andere variabele (x). De return-instructie retourneert de uitvoer, zodat we deze kunnen opslaan in een andere variabele (y).

Hier worden a, b de parameters genoemd en -23, 8 de argumenten van de functie return_sum.

6. Soorten argumenten

Functies kunnen worden aangeroepen met behulp van de onderstaande soorten argumenten:

  1. Vereiste argumenten
  2. Optionele argumenten
  3. Positionele argumenten
  4. Trefwoord argumenten
  5. Argumenten met variabele lengte (*args, **kwargs)

1. Vereiste argumenten

Dit zijn de argumenten die aan een functie moeten worden doorgegeven. Zonder hen genereert het een fout wanneer de functie wordt aangeroepen.

Stel dat we een functie hebben die de opgegeven naam in de hoofdletters van de titel afdrukt.

def Hoofdletters(naam): formatted_name = name.title() print("Geformatteerde naam is: ",formatted_name) # leerlingfunctie Hoofdletters() aanroepen

Er staat dat de functie de waarde (argument) van de vereiste parameter (naam) mist. Om dergelijke fouten te voorkomen, moeten we een geldig argument doorgeven aan de parameter.

Hoofdletters('analytics vidhya')

2. Optionele argumenten

Sommige functieparameters nemen standaardwaarden bij het definiëren van de functie. En het is niet nodig om waarden voor hen op te geven, waardoor ze optionele argumenten worden.

Stel dat we een vermenigvuldigingsfunctie '10' nodig hebben.

def vermenigvuldiger(a, b=4): retourneer a * b print("met standaardargument: ",vermenigvuldiger(3)) print("Het standaardargument wijzigen: ",vermenigvuldiger(3, 6))

In regel 4 van de bovenstaande code roepen we de vermenigvuldigingsfunctie aan door slechts één waarde door te geven, maar er wordt geen fout gegenereerd omdat het equivalent is aan het functioneren van de argumenten a=3, b=4 (standaardwaarde).

In regel 5 roepen we de functie aan met de argumenten a=3, b=6(de standaardwaarde in rekening gebracht).

Denk voordat je verder leest een minuut na en raad de uitvoer.

3. Positionele argumenten

Positionele argumenten zijn de waarden die aan de functie worden doorgegeven in dezelfde volgorde als de opgegeven parameters.

Stel dat we een functie hebben die de volledige naam afdrukt door de voornaam, middelste naam en achternaam te nemen.

def fullname(fname, mname, lname): print("Volledige naam is: ", fname + " " +mname + " " + lname) # Hoofdpersoon van de Harry Potter-serie is "Harry James Potter" fullname('Harry', 'James', 'Potter')

Output:

De positie van argumenten wijzigen en de functie aanroepen.

volledige naam ('Potter', 'Harry', 'James')

Zie nu de reactie van Harry 👇:

Het is dus belangrijk om de volgorde van de argumenten te behouden. Het zou echter vermoeiend zijn als een functie meer parameters accepteert.

Is er een manier om niet naar de volgorde van de parameters te zoeken en toch de argumenten correct door te geven? Ja, het antwoord is trefwoordargumenten.

4. Trefwoordargumenten

Trefwoordargument is waar de naam van de parameter wordt opgegeven bij het doorgeven van de functieargumenten.

Overweeg dezelfde functie voor-en achternaam. De functie aanroepen met trefwoordargumenten.

volledige naam(lname='Potter', fname='Harry', mname='James')

Zonder naar de volgorde van parameters te zoeken, kunnen we de juiste volledige naam krijgen. Dit ziet er geweldig uit, toch?

5. Argumenten met variabele lengte (*args, **kwargs)

*args zijn de niet-trefwoordargumenten/positionele argumenten. We kunnen een willekeurig aantal argumenten doorgeven door ze van elkaar te scheiden met komma's of door een lijst door te geven die wordt voorafgegaan door een *-symbool (*lijst).

**kwargs zijn de trefwoordargumenten. We kunnen een onbeperkt aantal trefwoordargumenten rechtstreeks doorgeven of door a te gebruiken woordenboek( sleutel, waardeparen).

def variabele(num1, *args, **kwargs): print("num1: ", num1) for arg in args: print("arg: ",arg) for key, value in kwargs.items(): print(" kwarg: ", waarde) variabele(2, 3, 4, 5, sleutel1=6, sleutel2=7)

De functie 'variabele' heeft één positieargument num1 (eerste positionele argument wordt altijd toegewezen aan num1), twee niet-sleutelwoordargumenten (*args) en twee sleutelwoordargumenten (**kwargs).

Laten we nu een lijst maken met een woordenboek om *args en **kwargs door te geven

def variabele(num1, *args, **kwargs): print("num1: ", num1) for arg in args: print("arg: ",arg) for key, value in kwargs_dict.items(): print(" kwarg: ", sleutel, waarde) list_of_args = [4, 5] kwargs_dict = { 'key1':6, 'key2':7 } variabele(*list_of_args, **kwargs_dict)

Het eerste element van de lijst wordt toegewezen aan num1, de overige elementen worden toegewezen aan *args. De elementen van het woordenboek zijn toegewezen aan **kwargs.

7. Geneste functies

De functie die binnen een andere functie is gedefinieerd, wordt een geneste of interne functie genoemd.

def mainfunction(): print("Uitgevoerde buitenste functie") def nestedfunction(): print('Uitgevoerde geneste functie')

De uiterlijke functie kan, zoals gewoonlijk, worden genoemd

hoofdfunctie()

Probeer de geneste functie.

Er is een fout opgetreden met de melding dat 'geneste functie' niet is gedefinieerd. We moeten dus begrijpen dat geneste functies binnen de hoofdfunctie moeten worden aangeroepen om te worden uitgevoerd.

def hoofdfunctie(): print("Uitgevoerde buitenste functie") def genestefunctie(): print('Uitgevoerde geneste functie') genestefunctie() hoofdfunctie()

De bovenstaande code heeft beide functies met succes uitgevoerd.

8. Functies van hogere orde

Een functie wordt een functie van hogere orde genoemd als een functie als argument wordt doorgegeven.

Stel dat we een kleine rekenmachine bouwen. Definieer afzonderlijke functies voor optellen en aftrekken.

  1. def optellen(a, b):
  2. geef a + b terug
  3. def sub(a, b):
  4. retourneer a - b

definieer een hogere functie calc waaraan optellen of subfuncties moeten worden toegevoegd naast a, b.

  1. def calc(func, a, b):
  2. resultaat = func(a, b)
  3. print(“Resultaat is :”, resultaat)

Roep de calc-functie aan door add, sub-functies als invoer door te geven

calc(optellen, 4, 6) calc(sub, 2, 3)

Einde opmerkingen:

Bedankt voor het lezen tot de conclusie. Aan het einde van dit artikel zijn we bekend met het concept van functies in Python.

Ik hoop dat dit artikel informatief is. Voel je vrij om eventuele feedback te delen.

Download het volledige notitieboek van de GitHub repo

Andere blogberichten van mij

Bekijk ook mijn andere blogposts van mijn Analytics Vidhya-profiel.

Je kunt me vinden op LinkedIn, Twitter voor het geval u verbinding wilt maken. Ik kom graag met je in contact.

Voor een onmiddellijke gedachtewisseling kunt u mij schrijven op [e-mail beveiligd].

Veel plezier met leren!

De media die in dit artikel worden getoond, zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt.

PlatoAi. Web3 opnieuw uitgevonden. Gegevensintelligentie versterkt.
Klik hier om toegang te krijgen.

Bron: https://www.analyticsvidhya.com/blog/2021/08/what-are-functions-in-python-how-to-create-functions-in-python/

spot_img

Laatste intelligentie

spot_img