Funktiounen
Bis elo hu mir all eise Code an der app.py geschriwwen, awer wéi eis Programmer wuessen, brauche mir e bessere Wee fir eise Code ze organiséieren. Mir mussen eise Code a méi kleng, méi handhabbar a méi erhale Stécker opbriechen, déi mir Funktiounen nennen. D'Funktioun ass e Container fir e puer Zeilen Code déi eng spezifesch Aufgab ausféieren.
Zum Beispill hutt Dir schonn iwwer e puer agebaute Funktiounen am Python geléiert print()
an input()
. All Funktioun huet en Zweck a weess wéi een eng spezifesch Aufgab ausféiert. Also, wa mir grouss komplex Programmer bauen, sollte mir eise Code a méi kleng reusable Stécker opbriechen, also Funktiounen.
Loosst eis dëst Konzept verstoen andeems Dir e Programm baut fir eng Begréissungsmessage ze drécken.
print('Hi there!')
print('Welcome aboard!')
Hei hu mir en einfache Programm mat nëmmen zwou Zeilen Code. Elo, loosst eis soen, mir wäerte se an anere Programmer brauchen fir se an eng Funktioun ze setzen déi mir kënne weiderbenotzen.
Loosst mech e reservéiert Schlësselwuert aféieren def
am Python, wat kuerz ass fir definéieren a benotzt gëtt fir eng Funktioun ze definéieren.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Elo wäert dëse Block vum Code eng Funktioun definéieren "greet_user
" mat den Zeilen vu Coden duerno. All Kéier wann dës Funktioun genannt gëtt, ginn dës zwou Zeilen ausgefouert. Loosst eis dëst benotzen:
print('start')
greet_user()
print('finish')
De Programm gëtt sequenziell ausgefouert, dat heescht datt Dir eng Funktioun definéiere musst ier Dir se am Programm nennt.
Parameteren
Déi definéiert Funktiounen funktionnéieren e bëssen anescht wéi déi agebaute Funktiounen vum Python. Zum Beispill, am Fall vun print()
eng Funktioun, et brauch e puer Informatioun déi mir wëllen drécken, awer eis Begréissungsfunktioun hëlt keng Informatioun. Wär et net méi schéin wann Dir den Numm vum Benotzer hei an dann, amplaz "Moien" ze soen, den Numm vum Benotzer kéint ausdrécken?
Dir kënnt dat maachen andeems Dir d'Parameteren an der Klammer vun der definéierter Funktioun bäidréit. Loosst mech Iech weisen:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Elo de "name
” an der parenthesis handelt wéi eng lokal Variabel a mir kënnen den Numm vum Benotzer weiderginn wann se ruffen.
greet_user('Shahbaz')
Elo ass den Nummparameter op "Shahbaz
". Loosst eis de Programm änneren fir et ze benotzen.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Eng wichteg Saach ze notéieren ass datt den "Numm" an der éischter Zeil e Parameter genannt gëtt, wärend den Numm geliwwert dh Shahbaz en Argument genannt gëtt.
Loosst eis viru goen an dëse Programm lafen.
Also mat dëse Parameteren kënne mir Informatioun an eise Funktiounen kréien.
Elo, loosst eis eppes interessant maachen. Loosst eis soen datt Dir en aneren Numm un d'Begréissungsmessage wëllt addéieren. Et ass einfach.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Notéiert elo datt wann eng Funktioun e Parameter huet, mir verpflicht sinn e Wäert fir dee Parameter ze passéieren. Wann Dir den Numm vun der Funktioun läscht an de Programm leeft, kréie mir e Feeler. Dir kënnt och verschidde Parameteren an enger eenzeger Funktioun benotzen, getrennt vun engem Komma.
Zum Beispill, greet_user(first_name, last_name):
. Argumenter ginn och ähnlech formatéiert.
Schlësselwuert Argumenter
Bis elo hu mir geléiert datt wa mir Parameteren fir eis Funktiounen definéieren, mir ëmmer Wäerter solle liwweren soss kréie mir e Feeler. Am leschte Programm sinn d'Argumenter 'Shahbaz'
an 'Bhatti'
ginn positional Argumenter genannt, dat heescht hir Positioun oder Uerdnung am Programm.
Am Python hu mir eng aner Aart vun Argument genannt Schlësselwuert Argumenter, fir déi d'Positioun egal ass. Loosst mech Iech weisen wéi se funktionnéieren.
Kuckt de leschte Programm. Mir kënnen et esou änneren:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Elo elo first_name
an last_name
sinn d'Schlësselwuert Parameteren. Dir kënnt hir Plazen wiesselen an d'Resultat wäert d'selwecht sinn.
Elo heescht dat net datt mir ëmmer Schlësselwuert Argumenter benotzen. Déi meescht vun der Zäit benotze mir positional Argumenter, awer a bestëmmte Situatiounen hëllefen dës Schlësselwuert Argumenter eis d'Liesbarkeet vun eisem Code ze verbesseren.
Et gëtt eng méi Saach déi Dir wësse musst iwwer Schlësselwuert Argumenter. D'Schlësselwuert Argumenter sollen ëmmer no Positiounsargumenter kommen.
Retour Erklärung
Bis elo hu mir geléiert wéi Funktiounen erstallt ginn an hinnen Informatioune mat hire Parameteren schécken. Loosst eis elo léieren wéi Dir Funktiounen erstellt déi Wäerter zréckginn. Dëst ass besonnesch nëtzlech wann Dir eng Aart vu Berechnungen maacht an Dir wëllt d'Resultat zréckginn fir wien Är Funktioun benotzt. Loosst mech Iech weisen.
Loosst eis eng Funktioun definéieren déi de Quadrat vun enger Zuel berechent.
def square(number):
return number*number
Mir hunn d'Retour Ausso benotzt fir dës Zuel ausserhalb vun der Funktioun zréckzeginn. Elo, wa mir dës Funktioun nennen, gëtt et e Wäert zréck wéi de input()
Funktioun. Loosst eis et um Terminal drécken.
Dir kënnt streiden datt datselwecht Resultat ka kritt ginn ouni d'Retour Ausso ze benotzen. Loosst eis et kucken.
Mir gesinn zwou Saachen, d'Nummer 9, a keng. Wat geschitt hei?
Wann de Python Dolmetscher dëse Code ausféiert, rufft als éischt d'Quadratfunktioun un an d'Kontroll geet op d'Funktioun. Hei berechene mir de Quadrat vun dëser bestëmmter Zuel an drécken se dann um Terminal.
Elo, als Standard, ginn all Funktiounen de Wäert kee zréck. Also wa mir keng Retour Ausso hei hunn, gëtt Par défaut Python keng zréck. Keen ass en Objet deen d'Feele vun engem Wäert duerstellt. Et ass wéi näischt oder null am C, C ++, Java an Javascript.
Apaken!
Ech hoffen Dir hutt d'Wichtegkeet vu Funktiounen verstanen.
Si sinn e bedeitende Aspekt vum Python Léieren wann Dir plangt grouss a komplex Programmer während Ärer Kodéierungskarriär ze schreiwen.
Hannerlooss eng Äntwert