Tehtävät
Toistaiseksi olemme kirjoittaneet kaiken koodimme app.py-tiedostoon, mutta ohjelmiemme kasvaessa tarvitsemme paremman tavan järjestää koodimme. Meidän on jaettava koodimme pienempiin, paremmin hallittaviin ja paremmin ylläpidettäviin osiin, joita kutsumme funktioiksi. Toiminto on säilö muutamalle koodiriville, jotka suorittavat tietyn tehtävän.
Olet esimerkiksi jo oppinut muutamasta Pythonin sisäänrakennetusta funktiosta print()
ja input()
. Jokaisella toiminnolla on tarkoitus ja se osaa suorittaa tietyn tehtävän. Joten kun rakennamme suuria monimutkaisia ohjelmia, meidän pitäisi hajottaa koodimme pienempiin uudelleenkäytettäviin paloihin, eli funktioihin.
Ymmärtäkäämme tämä käsite rakentamalla ohjelma tervehdysviestin tulostamiseksi.
print('Hi there!')
print('Welcome aboard!')
Tässä meillä on yksinkertainen ohjelma, jossa on vain kaksi koodiriviä. Oletetaan nyt, että tarvitsemme niitä muissa ohjelmissa, jotta voimme laittaa ne toimintoon, jota voimme käyttää uudelleen.
Haluan esitellä varatun avainsanan def
Pythonissa, joka on lyhenne sanoista define ja jota käytetään funktion määrittämiseen.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Nyt tämä koodilohko määrittää toiminnon "greet_user
” sen jälkeisillä koodiriveillä. Aina kun tätä toimintoa kutsutaan, nämä kaksi riviä suoritetaan. Käytetään tätä:
print('start')
greet_user()
print('finish')
Ohjelma suoritetaan peräkkäin, mikä tarkoittaa, että sinun on määritettävä funktio ennen sen kutsumista ohjelmassa.
parametrit
Määritetyt funktiot toimivat hieman eri tavalla kuin Pythonin sisäänrakennetut funktiot. Esimerkiksi tapauksessa print()
funktio, se vie tietoja, jotka haluamme tulostaa, mutta tervehdystoimintomme ei ota mitään tietoja. Eikö olisi mukavampaa, jos voisit välittää käyttäjän nimen tänne ja sitten "hei siellä" sanomisen sijaan voisit tulostaa käyttäjän nimen?
Voit tehdä tämän lisäämällä parametrit määritellyn funktion sulkeisiin. Anna kun näytän sinulle:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Nyt "name
” sulkujen sisällä toimii kuin paikallinen muuttuja ja voimme välittää käyttäjän nimen sitä kutsuttaessa.
greet_user('Shahbaz')
Nyt nimiparametriksi on asetettu "Shahbaz
”. Muutetaan ohjelmaa hyödyntämään sitä.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Tärkeä asia on huomata, että ensimmäisellä rivillä olevaa "nimeä" kutsutaan parametriksi, kun taas annettua nimeä eli Shahbazia kutsutaan argumentiksi.
Suoritetaan tämä ohjelma.
Joten näillä parametreilla voimme vastaanottaa tietoa funktioissamme.
Tehdään nyt jotain mielenkiintoista. Oletetaan, että haluat lisätä toisen nimen tervehdysviestiin. Se on yksinkertaista.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Huomaa nyt, että kun funktiolla on parametri, meidän on välitettävä arvo tälle parametrille. Jos poistat nimen funktiosta ja suoritat ohjelman, saamme virheilmoituksen. Voit myös käyttää useita parametreja yhdessä funktiossa pilkulla erotettuina.
Esimerkiksi greet_user(first_name, last_name):
. Myös argumentit muotoillaan samalla tavalla.
Avainsana-argumentit
Tähän mennessä olemme oppineet, että aina kun määritämme parametreja funktioillemme, meidän tulee aina antaa arvoja, muuten saamme virheilmoituksen. Viimeisessä ohjelmassa argumentit 'Shahbaz'
ja 'Bhatti'
Niitä kutsutaan paikkaargumenteiksi, jotka tarkoittavat niiden asemaa tai järjestystä ohjelmassa.
Pythonissa meillä on toisenlainen argumentti, jota kutsutaan avainsanaargumenteiksi, joille sijainnilla ei ole väliä. Anna minun näyttää, kuinka ne toimivat.
Katso viimeinen ohjelma. Voimme muokata sitä näin:
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')
Nyt first_name
ja last_name
ovat avainsanaparametreja. Voit vaihtaa heidän paikkojaan ja lopputulos on sama.
Se ei nyt tarkoita, että meidän pitäisi aina käyttää avainsanaargumentteja. Useimmiten käytämme sijaintiargumentteja, mutta tietyissä tilanteissa nämä avainsanaargumentit auttavat meitä parantamaan koodimme luettavuutta.
On vielä yksi asia, joka sinun on tiedettävä avainsanaargumenteista. Avainsanaargumenttien tulee aina tulla paikkaargumenttien jälkeen.
Palautuslausunto
Tähän mennessä olemme oppineet luomaan funktioita ja lähettämään niille tietoja niiden parametrien avulla. Nyt opitaan luomaan funktioita, jotka palauttavat arvoja. Tämä on erityisen hyödyllistä, jos teet jonkinlaisia laskutoimituksia ja haluat palauttaa tuloksen sille, joka käyttää funktiotasi. Anna kun näytän sinulle.
Määritetään funktio, joka laskee luvun neliön.
def square(number):
return number*number
Olemme käyttäneet return-lausetta palauttamaan tämän luvun funktion ulkopuolelle. Nyt, jos kutsumme tätä funktiota, se palauttaa arvon aivan kuten input()
toiminto. Tulostetaan se terminaaliin.
Voit väittää, että sama tulos voidaan saada ilman return-lausetta. Katsotaanpa se.
Näemme kaksi asiaa, numeron 9 ja ei yhtään. Mitä täällä tapahtuu?
Kun Python-tulkki suorittaa tämän koodin, se kutsuu ensin neliöfunktiota ja ohjaus siirtyy funktioon. Tässä lasketaan tämän annetun luvun neliö ja tulostetaan se sitten terminaaliin.
Nyt oletusarvoisesti kaikki funktiot palauttavat arvon none. Joten jos meillä ei ole return-lausetta tässä, Python ei palauta oletuksena mitään. None on objekti, joka edustaa arvon puuttumista. Se on kuin ei mitään tai nolla C-, C++-, Java- ja Javascriptissä.
Paketoida!
Toivottavasti olet ymmärtänyt toimintojen tärkeyden.
Ne ovat tärkeä osa Python-oppimista, jos aiot kirjoittaa suuria ja monimutkaisia ohjelmia koodausurasi aikana.
Jätä vastaus