Avainsanat ovat varattuja sanoja Pythonissa. Emme voi käyttää avainsanaa muuttujan nimenä, funktion nimenä tai muuna tunnisteena.

Tässä on luettelo kaikista avainsanoista Python-ohjelmoinnissa

.

.

Avainsanat Python-ohjelmointikielessä
False await else import pass
None break except in raise
True class finally is return
ja continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield

Ylläolevat avainsanat saattavat muuttua Pythonin eri versioissa. Joitakin ylimääräisiä voi tulla lisää tai joitakin voi poistua. Voit aina saada luettelon avainsanoista nykyisessä versiossasi kirjoittamalla kehotteeseen seuraavaa.

>>> import keyword>>> print(keyword.kwlist)

Asanojen kuvaus Pythonissa esimerkkeineen

True, False

True ja False ovat Pythonissa totuusarvoja. Ne ovat vertailuoperaatioiden tai loogisten (Boolen) operaatioiden tuloksia Pythonissa. Esimerkiksi:

>>> 1 == 1True>>> 5 > 3True>>> True or FalseTrue>>> 10 <= 1False>>> 3 > 7False>>> True and FalseFalse

Tässä näemme, että kolme ensimmäistä lauseketta ovat totta, joten tulkki palauttaa True ja palauttaa False lopuille kolmelle lausekkeelle. True ja False on pythonissa sama kuin 1 ja 0. Tämä voidaan perustella seuraavalla esimerkillä:

>>> True == 1True>>> False == 0True>>> True + True2

None

None on Pythonissa erityinen vakio, joka edustaa arvon puuttumista tai nolla-arvoa.

Se on oman tietotyyppinsä NoneType oma objekti. Emme voi luoda useita None-objekteja, mutta voimme määrittää sen muuttujiin. Nämä muuttujat ovat keskenään yhtä suuria.

Meidän on erityisesti huolehdittava siitä, että None ei tarkoita False, 0 tai mitään tyhjää listaa, sanakirjaa, merkkijonoa jne. Esimerkiksi:

>>> None == 0False>>> None == False>>> None == FalseFalse>>> x = None>>> y = None>>> x == yTrue

Tyhjät funktiot, jotka eivät palauta mitään, palauttavat automaattisesti None-olion. None-objektin palauttavat myös funktiot, joissa ohjelmavirta ei kohtaa return-lauseketta. Esimerkiksi:

def a_void_function(): a = 1 b = 2 c = a + bx = a_void_function()print(x)

Tulostus

None

Tässä ohjelmassa on funktio, joka ei palauta arvoa, vaikka se tekee joitakin operaatioita sisällä. Kun siis tulostamme x:n, saamme None, joka palautetaan automaattisesti (implisiittisesti). Vastaavasti tässä on toinen esimerkki:

def improper_return_function(a): if (a % 2) == 0: return Truex = improper_return_function(3)print(x)

Tulos

None

Vaikka tässä funktiossa on return-lauseke, sitä ei saavuteta joka tapauksessa. Funktio palauttaa True vain silloin, kun tulo on parillinen.

Jos annamme funktiolle parittoman luvun, palautetaan implisiittisesti None.

ja, tai , ei

and, or, not ovat loogisia operaattoreita Pythonissa. and saa tulokseksi True vain, jos molemmat operandit ovat True. Alla on esitetty totuustaulukko and:lle:

.

Totuustaulukko and
A B A ja B
True True True
True True False True
True True True
True True
False False False

or johtaa tulokseen True, jos jokin operandeista on True. Totuustaulukko or:lle on esitetty alla:

.

Totuustaulukko or
A B A tai B
True True True
True True False True
False True True
False False False

not operaattoria käytetään totuusarvon kääntämiseen. Alla on esitetty totuustaulukko not:lle:

Totuustaulukko for not
A ei A
True False
False True

esimerkkejä niiden käytöstä on annettu alla

>>> True and FalseFalse>>> True or FalseTrue>>> not FalseTrue

as

as käytetään aliaksen luomiseen moduulia tuotaessa. Se tarkoittaa, että moduulille annetaan eri nimi (käyttäjän määrittelemä), kun sitä tuodaan.

Esimerkiksi Pythonissa on vakiomoduuli nimeltä math. Oletetaan, että haluamme laskea, mikä on kosinus pi käyttäen aliasta. Voimme tehdä sen seuraavasti käyttämällä as:

>>> import math as myAlias>>>myAlias.cos(myAlias.pi)-1.0

Tässä tuotiin math-moduuli antamalla sille nimi myAlias. Nyt voimme viitata math-moduuliin tällä nimellä. Tällä nimellä laskimme cos(pi):n ja saimme vastaukseksi -1.0.

assert

assert käytetään virheenkorjaustarkoituksiin.

Ohjelmoidessamme haluamme joskus tietää sisäisen tilan tai tarkistaa, ovatko oletuksemme totta. assert auttaa meitä tekemään tämän ja löytämään virheitä helpommin. assert seuraa ehtoa.

Jos ehto on tosi, mitään ei tapahdu. Mutta jos ehto on väärä, syntyy AssertionError. Esimerkiksi:

>>> a = 4>>> assert a < 5>>> assert a > 5Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError

Paremman ymmärryksemme vuoksi voimme myös antaa viestin, joka tulostetaan AssertionError:n kanssa.

>>> a = 4>>> assert a > 5, "The value of a is too small"Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError: The value of a is too small

Tässä vaiheessa voimme todeta,

assert condition, message

vastaa,

if not condition: raise AssertionError(message)

async, await

Avainsanat async ja await ovat Pythonin asyncio-kirjaston tarjoamia. Niitä käytetään samanaikaisen koodin kirjoittamiseen Pythonissa. Esimerkiksi

import asyncioasync def main(): print('Hello') await asyncio.sleep(1) print('world')

Ohjelman suorittamiseen käytetään

asyncio.run(main())

Yllä olevassa ohjelmassa async-avainsana määrittää, että funktio suoritetaan asynkronisesti.

Tässä tulostetaan ensin Hello. Avainsana await saa ohjelman odottamaan 1 sekunnin ajan. Ja sitten tulostetaan maailma.

break, continue

break ja continue käytetään for– ja while-silmukoiden sisällä muuttamaan niiden normaalia käyttäytymistä.

break lopettaa pienimmän silmukan, jossa se on, ja ohjaus siirtyy välittömästi silmukan alapuolella olevaan lausekkeeseen. continue saa aikaan sen, että silmukan nykyinen iteraatio lopetetaan, mutta ei koko silmukkaa.

Tätä voidaan havainnollistaa seuraavilla kahdella esimerkillä:

for i in range(1,11): if i == 5: break print(i)

Tulostus

1234

Tässä for-silmukassa on tarkoitus tulostaa numerot 1-10. Mutta if-ehto täyttyy, kun i on yhtä suuri kuin 5, ja katkaisemme silmukan. Näin ollen tulostetaan vain alue 1-4.

for i in range(1,11): if i == 5: continue print(i)

Tulostus

1234678910

Tässä käytämme continue samaa ohjelmaa. Kun ehto siis täyttyy, kyseinen iteraatio ohitetaan. Mutta emme poistu silmukasta. Näin ollen kaikki arvot paitsi 5 tulostetaan.

Opi lisää Pythonin break- ja continue-lausekkeista.

class

class määritellään uusi käyttäjän määrittelemä luokka Pythonissa.

Luokka on kokoelma toisiinsa liittyviä ominaisuuksia ja metodeja, jotka pyrkivät kuvaamaan todellista tilannetta. Tämä ajatus tietojen ja toimintojen kokoamisesta luokkaan on keskeinen oliopohjaisen ohjelmoinnin (OOP) käsitteelle.

Luokkia voidaan määritellä missä tahansa ohjelmassa. On kuitenkin hyvä käytäntö määritellä yksi luokka moduulissa. Seuraavassa on esimerkkikäyttö:

class ExampleClass: def function1(parameters): … def function2(parameters): …

Opi lisää Python-objekteista ja -luokasta.

def

def käytetään käyttäjän määrittelemän funktion määrittelyyn.

Funktio on toisiinsa liittyvien lausekkeiden muodostama lohko, jotka yhdessä suorittavat jonkin tietyn tehtävän. Se auttaa meitä järjestämään koodia hallittaviin lohkoihin ja myös tekemään joitakin toistuvia tehtäviä.

def:n käyttö on esitetty alla:

def function_name(parameters): …

Opi lisää Python-funktioista.

del

del käytetään poistamaan viittaus objektiin. Pythonissa kaikki on objekteja. Voimme poistaa muuttujan viitteen käyttämällä del

>>> a = b = 5>>> del a>>> aTraceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>NameError: name 'a' is not defined>>> b5

Tässä näemme, että muuttujan a viite poistettiin. Sitä ei siis enää määritellä. Mutta b on edelleen olemassa.

del käytetään myös poistamaan kohteita listasta tai sanakirjasta:

>>> a = >>> del a>>> a

if, else, elif

if, else, elif käytetään ehdolliseen haarautumiseen tai päätöksentekoon.

Kun haluamme testata jotakin ehtoa ja suorittaa lohkon vain, jos ehto pitää paikkansa, käytämme apuna if ja elif. elif on lyhenne sanoista else if. else on lohko, joka suoritetaan, jos ehto on epätosi. Tämä selviää seuraavan esimerkin avulla:

def if_example(a): if a == 1: print('One') elif a == 2: print('Two') else: print('Something else')if_example(2)if_example(4)if_example(1)

Tulos

TwoSomething elseOne

Tässä funktio tarkistaa syötetyn luvun ja tulostaa tuloksen, jos se on 1 tai 2. Kaikki muut syötteet aiheuttavat koodin else osan suorittamisen.

Opi lisää Pythonissa if- ja if…else-lausekkeista.

except, raise, try

except, raise, try käytetään Pythonissa poikkeusten yhteydessä.

Periaatteessa poikkeukset ovat virheitä, jotka viittaavat siihen, että jotakin on mennyt pieleen ohjelmamme suorittamisen aikana. IOError, ValueError, ZeroDivisionError, ImportError, NameError, TypeError jne. ovat muutamia esimerkkejä poikkeuksista Pythonissa. try...except lohkoja käytetään Pythonissa poikkeusten pyydystämiseen.

Voidaan nostaa poikkeus eksplisiittisesti avainsanalla raise. Seuraavassa on esimerkki:

def reciprocal(num): try: r = 1/num except: print('Exception caught') return return rprint(reciprocal(10))print(reciprocal(0))

Tulos

0.1Exception caughtNone

Tässä funktio reciprocal() palauttaa syötetyn luvun käänteisarvon.

Kun syötämme 10, saamme normaalin tuloksen 0.1. Mutta kun syötämme 0, syntyy automaattisesti ZeroDivisionError.

Lohkomme try…except ottaa tämän kiinni ja palautamme None. Olisimme voineet myös herättää ZeroDivisionError eksplisiittisesti tarkistamalla syötteen ja käsitellä sen muualla seuraavasti:

if num == 0: raise ZeroDivisionError('cannot divide')

finally

finally käytetään try…except-lohkon kanssa resurssien tai tiedostovirtojen sulkemiseen.

Käyttämällä finally-ohjelmaa varmistetaan, että sen sisällä oleva koodilohko tulee suoritetuksi myös silloin, kun tulee käsittelemätön poikkeus. Esimerkiksi:

try: Try-blockexcept exception1: Exception1-blockexcept exception2: Exception2-blockelse: Else-blockfinally: Finally-block

Tässä jos Try-block-lohkossa on poikkeus, se käsitellään except– tai else-lohkossa. Mutta riippumatta siitä, missä järjestyksessä suoritus kulkee, voimme olla varmoja siitä, että Finally-block suoritetaan, vaikka siinä olisi virhe. Tästä on hyötyä resurssien siivoamisessa.

Opi lisää poikkeusten käsittelystä Python-ohjelmoinnissa.

for

for käytetään silmukointiin. Yleensä käytämme for, kun tiedämme kuinka monta kertaa haluamme silmukoida.

Pythonissa voimme käyttää sitä minkä tahansa tyyppisten sekvenssien kuten listan tai merkkijonon kanssa. Tässä on esimerkki, jossa for käytetään nimilistan läpikäymiseen:

names = for i in names: print('Hello '+i)

Output

Hello JohnHello MonicaHello StevenHello Robin

Opi lisää Pythonissa silmukan tekemisestä.

from, import

import avainsanaa käytetään moduulien tuomiseen nykyiseen nimiavaruuteen. from…import käytetään tiettyjen attribuuttien tai funktioiden tuomiseen nykyiseen nimiavaruuteen. Esimerkiksi:

import math

tuo moduulin math. Nyt voimme käyttää cos()-funktiota sen sisällä math.cos(). Mutta jos haluaisimme tuoda vain cos()-funktion, tämä voidaan tehdä käyttämällä from as

from math import cos

jatkossa voimme käyttää funktiota yksinkertaisesti cos(), ei tarvitse kirjoittaa math.cos().

Oppaa lisää Python-moduuleista ja import-lauseesta.

global

global ilmoitetaan, että funktion sisällä oleva muuttuja on globaali (funktion ulkopuolella).

Jos haluamme lukea globaalin muuttujan arvon, sitä ei tarvitse määritellä global. Tämä on ymmärretty.

Jos meidän on muutettava globaalin muuttujan arvoa funktion sisällä, meidän on ilmoitettava se global:llä. Muuten luodaan paikallinen muuttuja kyseisellä nimellä.

Seuraava esimerkki auttaa meitä selventämään tätä.

globvar = 10def read1(): print(globvar)def write1(): global globvar globvar = 5def write2(): globvar = 15read1()write1()read1()write2()read1()

Output

1055

Tässä read1()-funktio vain lukee globvar:n arvon. Meidän ei siis tarvitse ilmoittaa sitä global:ksi. Mutta write1()-funktio muuttaa arvoa, joten meidän on ilmoitettava muuttuja global:ksi.

Tulosteesta näemme, että muutos on tapahtunut (10 on muuttunut 5:ksi). Myös write2() yrittää muuttaa tätä arvoa. Mutta emme ole ilmoittaneet sitä global.

Siten luodaan uusi paikallinen muuttuja globvar, joka ei näy tämän funktion ulkopuolella. Vaikka muutamme tämän paikallisen muuttujan arvoksi 15, globaali muuttuja pysyy muuttumattomana. Tämä näkyy selvästi tulostuksessamme.

in

in testataan, sisältääkö jono (lista, tuple, merkkijono jne.) arvon. Se palauttaa True, jos arvo on olemassa, muuten se palauttaa False. Esimerkiksi:

>>> a = >>> 5 in aTrue>>> 10 in aFalse

in:n toissijainen käyttö on jakson läpikäyminen for-silmukassa.

for i in 'hello': print(i)

Tulosta

hello

is

is käytetään Pythonissa objektien identiteetin testaamiseen. Kun ==-operaattoria käytetään testaamaan, ovatko kaksi muuttujaa yhtä suuret vai eivät, is-operaattoria käytetään testaamaan, viittaavatko kaksi muuttujaa samaan objektiin.

Se palauttaa True, jos objektit ovat identtisiä, ja False, jos eivät ole.

>>> True is TrueTrue>>> False is FalseTrue>>> None is NoneTrue

Tiedämme, että Pythonissa on vain yksi instanssi True:stä, False:sta ja None:stä, joten ne ovat identtisiä.

>>> == True>>> is False>>> {} == {}True>>> {} is {}False

Tyhjä lista tai sanakirja on yhtä suuri kuin toinen tyhjä. Mutta ne eivät ole identtisiä objekteja, koska ne sijaitsevat erikseen muistissa. Tämä johtuu siitä, että lista ja sanakirja ovat muuttuvia (arvoa voidaan muuttaa).

>>> '' == ''True>>> '' is ''True>>> () == ()True>>> () is ()True

Toisin kuin lista ja sanakirja, merkkijono ja tuple ovat muuttumattomia (arvoa ei voi muuttaa, kun se on määritelty). Näin ollen kaksi samanlaista merkkijonoa tai tuplea ovat myös identtisiä. Ne viittaavat samaan muistipaikkaan.

lambda

lambda käytetään anonyymin funktion (funktio, jolla ei ole nimeä) luomiseen. Se on inline-funktio, joka ei sisällä return-lauseketta. Se koostuu lausekkeesta, joka arvioidaan ja palautetaan. Esimerkiksi:

a = lambda x: x*2for i in range(1,6): print(a(i))

Output

246810

Tässä olemme luoneet inline-funktion, joka kaksinkertaistaa arvon käyttämällä lambda-lauseketta. Käytimme tätä kaksinkertaistamaan arvot listassa, joka sisältää arvot 1-5.

Opi lisää Pythonin lamda-funktiosta.

nonlocal

Avainsanan nonlocal käyttö on hyvin samankaltaista kuin avainsanan global. nonlocal:n avulla ilmoitetaan, että sisäkkäisen funktion (funktio funktion sisällä) sisällä oleva muuttuja ei ole paikallinen, eli se sijaitsee ulommassa sisäkkäisessä funktiossa. Jos meidän on muutettava ei-lokaalin muuttujan arvoa sisäkkäisen funktion sisällä, meidän on ilmoitettava se nonlocal:llä. Muuten sisäkkäisen funktion sisälle luodaan paikallinen muuttuja kyseisellä nimellä. Seuraava esimerkki auttaa meitä selventämään tätä.

def outer_function(): a = 5 def inner_function(): nonlocal a a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()

Output

Inner function: 10Outer function: 10

Tässä inner_function() on sisäkkäin outer_function:n sisällä.

Muuttuja a on outer_function():ssä. Jos siis haluamme muuttaa sitä inner_function():ssä, meidän on ilmoitettava se nonlocal:ksi. Huomaa, että a ei ole globaali muuttuja.

Tulosteesta näemme siis, että muuttujaa muutettiin onnistuneesti sisäkkäisen inner_function():n sisällä. Jos avainsanaa nonlocal ei käytetä, tulos on seuraava:

def outer_function(): a = 5 def inner_function(): a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()

Tulos

Inner function: 10Outer function: 5

Tässä tapauksessa emme ilmoita, että muuttuja a sisäkkäisen funktion sisällä on nonlocal. Näin ollen luodaan uusi samanniminen paikallinen muuttuja, mutta ei-lokaalia a:ta ei muuteta, kuten tulosteessamme näkyy.

pass

pass on Pythonissa nolla-lauseke. Mitään ei tapahdu, kun se suoritetaan. Sitä käytetään paikanhaltijana.

Esitellään, että meillä on funktio, jota ei ole vielä toteutettu, mutta haluamme toteuttaa sen tulevaisuudessa. Yksinkertaisesti kirjoittamalla,

def function(args):

keskellä ohjelmaa saamme IndentationError. Sen sijaan rakennamme tyhjän rungon pass-lausekkeella.

def function(args): pass

Voidaan tehdä sama asia myös tyhjällä class-lausekkeella.

class example: pass

return

return-lauseketta käytetään funktion sisällä, jotta funktiosta voidaan poistua ja palauttaa arvo.

Jos emme palauta eksplisiittisesti arvoa, palautetaan automaattisesti None. Tämä todennetaan seuraavalla esimerkillä.

def func_return(): a = 10 return adef no_return(): a = 10print(func_return())print(no_return())

Output

10None

while

while käytetään Pythonissa silmukoiden tekemiseen.

Silmukan while sisällä olevat lausekkeet jatkavat suoritustaan, kunnes while-silmukan ehto evaluoituu arvoksi False tai break-lausekkeen break tuloon törmätään. Seuraava ohjelma havainnollistaa tätä.

i = 5while(i): print(i) i = i – 1

Tulos

54321

Huomaa, että 0 on yhtä kuin False.

Opi lisää Python while-silmukasta.

with

with -lauseen avulla koodilohkon suoritus paketoidaan kontekstinhallitsijan määrittelemien metodien sisään.

Kontekstinhallitsija on luokka, joka toteuttaa __enter__– ja __exit__-metodit. with-lauseen käyttö varmistaa, että __exit__-metodia kutsutaan sisäkkäisen lohkon lopussa. Tämä käsite on samanlainen kuin try…finally-lohkon käyttö. Tässä on esimerkki.

with open('example.txt', 'w') as my_file: my_file.write('Hello world!')

Tämä esimerkki kirjoittaa tekstin Hello world! tiedostoon example.txt. Tiedosto-objekteissa on määritelty __enter__– ja __exit__-metodi, joten ne toimivat omina kontekstinhallitsijoinaan.

Ensin kutsutaan __enter__-metodia, sitten suoritetaan with-lauseen sisällä oleva koodi ja lopuksi kutsutaan __exit__-metodia. __exit__-metodia kutsutaan, vaikka tapahtuisi virhe. Se periaatteessa sulkee tiedostovirran.

yield

yield käytetään funktion sisällä kuten return-lauseessa. Mutta yield palauttaa generaattorin.

Generator on iteraattori, joka tuottaa yhden elementin kerrallaan. Suuri arvolista vie paljon muistia. Generaattorit ovat hyödyllisiä tässä tilanteessa, koska ne tuottavat vain yhden arvon kerrallaan sen sijaan, että kaikki arvot tallennettaisiin muistiin. Esimerkiksi

>>> g = (2**x for x in range(100))

luo generaattorin g, joka tuottaa potensseja 2 aina lukuun kaksi potenssiin 99 asti. Voimme generoida luvut käyttämällä next()-funktiota alla esitetyllä tavalla.

>>> next(g)1>>> next(g)2>>> next(g)4>>> next(g)8>>> next(g)16

Ja niin edelleen… Tämän tyyppinen generaattori palautetaan yield-lauseella funktiosta. Tässä on esimerkki.

def generator(): for i in range(6): yield i*ig = generator()for i in g: print(i)

Tulos

Vastaa

Sähköpostiosoitettasi ei julkaista.