Nøgleord er de reserverede ord i Python. Vi kan ikke bruge et nøgleord som et variabelnavn, funktionsnavn eller en anden identifikator.

Her er en liste over alle nøgleord i Python-programmering

Nøgleord i programmeringssproget Python
False await else import pass
None None break except in raise
True class finally is return
and fortsætte for lambda prøve
som def fra ikke-lokal undertiden
assert del global global not with
async elif if or yield

Ovenstående nøgleord kan blive ændret i forskellige versioner af Python. Nogle ekstra kan blive tilføjet, eller nogle kan blive fjernet. Du kan altid få listen over nøgleord i din aktuelle version ved at skrive følgende i prompten.

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

Beskrivelse af nøgleord i Python med eksempler

True, False

True og False er sandhedsværdier i Python. De er resultaterne af sammenligningsoperationer eller logiske (boolske) operationer i Python. For eksempel:

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

Her kan vi se, at de tre første udsagn er sande, så fortolkeren returnerer True og returnerer False for de resterende tre udsagn. True og False i python er det samme som 1 og 0. Dette kan begrundes med følgende eksempel:

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

None

None er en særlig konstant i Python, der repræsenterer fraværet af en værdi eller en nulværdi.

Det er et objekt af sin egen datatype, NoneType. Vi kan ikke oprette flere None-objekter, men vi kan tildele den til variabler. Disse variabler vil være lig hinanden.

Vi skal være særligt opmærksomme på, at None ikke indebærer False, 0 eller en tom liste, ordbog, streng osv. For eksempel:

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

Void-funktioner, der ikke returnerer noget, returnerer automatisk et None-objekt. None returneres også af funktioner, hvor programflowet ikke støder på en returanvisning. For eksempel:

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

Output

None

Dette program har en funktion, som ikke returnerer en værdi, selv om den udfører nogle operationer indeni. Så når vi udskriver x, får vi None, som returneres automatisk (implicit). På samme måde er her et andet eksempel:

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

Output

None

Og selv om denne funktion har en return-anvisning, nås den ikke i alle tilfælde. Funktionen returnerer kun True, når input er lige.

Hvis vi giver funktionen et ulige tal, returneres None implicit.

og, eller , eller , ikke

and, or, not er de logiske operatorer i Python. and resulterer kun i True, hvis begge operander er True. Sandhedstabellen for and er angivet nedenfor:

Sandhedstabel for and
A B A og B
True True True
True Falsk Falsk
Falsk True Falsk
Falsk Falsk Falsk

or vil resultere i True, hvis en af operanderne er True. Sandhedstabellen for or er angivet nedenfor:

Sandhedstabel for or
A B A eller B
True True True
True Falsk True
Falsk True True
Falsk Falsk Falsk Falsk

not operatoren bruges til at invertere sandhedsværdien. Sandhedstabellen for not er angivet nedenfor:

Sandhedstabel for not
A ikke A
Sandt Falsk
Falsk
Falsk True

nogle eksempler på deres anvendelse er angivet nedenfor

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

as

as bruges til at oprette et alias under import af et modul. Det betyder, at man giver et andet navn (brugerdefineret) til et modul, mens man importerer det.

Som for eksempel har Python et standardmodul, der hedder math. Antag, at vi ønsker at beregne, hvad cosinus pi er ved hjælp af et alias. Vi kan gøre det på følgende måde ved hjælp af as:

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

Her importerede vi modulet math ved at give det navnet myAlias. Nu kan vi henvise til modulet math med dette navn. Ved hjælp af dette navn beregnede vi cos(pi) og fik -1.0 som svar.

assert

assert bruges til fejlfinding.

Ved programmering ønsker vi nogle gange at kende den interne tilstand eller at kontrollere, om vores antagelser er sande. assert hjælper os med at gøre dette og med at finde fejl på en mere bekvem måde. assert er efterfulgt af en betingelse.

Hvis betingelsen er sand, sker der intet. Men hvis betingelsen er falsk, bliver AssertionError udløst. For eksempel:

>>> 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

For vores bedre forståelse kan vi også angive en meddelelse, der skal udskrives sammen med AssertionError.

>>> 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

På dette tidspunkt kan vi bemærke, at,

assert condition, message

svarer til,

if not condition: raise AssertionError(message)

async, await

Nøgleordene async og await leveres af asyncio-biblioteket i Python. De bruges til at skrive samtidig kode i Python. F.eks.

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

For at køre programmet bruger vi

asyncio.run(main())

I ovenstående program angiver nøgleordet async, at funktionen skal udføres asynkront.

Her bliver først Hello udskrevet. Nøgleordet await får programmet til at vente i 1 sekund. Og derefter udskrives verden.

break, continue

break og continue bruges inde i for– og while-sløjfer for at ændre deres normale opførsel.

break afslutter den mindste sløjfe, den befinder sig i, og kontrollen flyder til den angivelse, der ligger umiddelbart under sløjfen. continue bevirker, at den aktuelle iteration af løkken afsluttes, men ikke hele løkken.

Dette kan illustreres med følgende to eksempler:

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

Output

1234

Her har for-løkken til hensigt at udskrive tal fra 1 til 10. Men betingelsen if er opfyldt, når i er lig med 5, og vi bryder ud af løkken. Derfor udskrives kun intervallet 1 til 4.

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

Output

1234678910

Her bruger vi continue til det samme program. Så når betingelsen er opfyldt, springes denne iteration over. Men vi forlader ikke løkken. Derfor udskrives alle værdier undtagen 5.

Lær mere om Python break- og continue-erklæringen.

class

class bruges til at definere en ny brugerdefineret klasse i Python.

Klasse er en samling af relaterede attributter og metoder, der forsøger at repræsentere en situation i den virkelige verden. Denne idé om at samle data og funktioner i en klasse er central for begrebet objektorienteret programmering (OOP).

Klasser kan defineres hvor som helst i et program. Men det er en god praksis at definere en enkelt klasse i et modul. Følgende er et eksempel på brug:

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

Lær mere om Python-objekter og klasse.

def

def bruges til at definere en brugerdefineret funktion.

Funktion er en blok af relaterede sætninger, som tilsammen udfører en bestemt opgave. Den hjælper os med at organisere kode i håndterbare bidder og også med at udføre nogle gentagne opgaver.

Anvendelsen af def er vist nedenfor:

def function_name(parameters): …

Lær mere om Python-funktioner.

del

del bruges til at slette referencen til et objekt. Alt er objekt i Python. Vi kan slette en variabelreference ved hjælp af 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

Her kan vi se, at referencen til variablen a blev slettet. Så den er ikke længere defineret. Men b eksisterer stadig.

del bruges også til at slette elementer fra en liste eller en ordbog:

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

if, else, elif

if, else, elif bruges til betinget forgrening eller beslutningstagning.

Når vi ønsker at teste en bestemt betingelse og kun udføre en blok, hvis betingelsen er sand, bruger vi if og elif. elif er en forkortelse for else if. else er den blok, der udføres, hvis betingelsen er falsk. Dette vil fremgå tydeligt af følgende eksempel:

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)

Output

TwoSomething elseOne

Her kontrollerer funktionen det indtastede tal og udskriver resultatet, hvis det er 1 eller 2. Ethvert andet input end dette medfører, at else-delen af koden udføres.

Lær mere om Python if og if…else Statement.

except, raise, try

except, raise, try bruges med undtagelser i Python.

Exceptions er grundlæggende fejl, der antyder, at noget gik galt under udførelsen af vores program. IOError, ValueError, ZeroDivisionError, ImportError, NameError, TypeError osv. er få eksempler på undtagelser i Python. try...except blokke bruges til at fange undtagelser i Python.

Vi kan udløse en undtagelse eksplicit med nøgleordet raise. Følgende er et eksempel:

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

Output

0.1Exception caughtNone

Her returnerer funktionen det reciprokke af det indtastede tal.

Når vi indtaster 10, får vi det normale output på 0,1. Men når vi indtaster 0, opstår der automatisk en ZeroDivisionError.

Dette bliver fanget af vores try…except-blok, og vi returnerer None. Vi kunne også have rejst ZeroDivisionError eksplicit ved at kontrollere indtastningen og håndteret den et andet sted som følger:

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

slutteligt

finally bruges sammen med try…except-blokken til at lukke ressourcer eller filstrømme.

Brug af finally sikrer, at blokken af kode indeni den bliver udført, selv hvis der er en ubehandlet undtagelse. For eksempel:

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

Her, hvis der er en undtagelse i Try-block, bliver den håndteret i blokken except eller else. Men uanset i hvilken rækkefølge udførelsen flyder, kan vi være sikre på, at Finally-block bliver udført, selv om der er en fejl. Dette er nyttigt ved oprydning af ressourcerne.

Lær mere om undtagelseshåndtering i Python-programmering.

for

for bruges til looping. Generelt bruger vi for, når vi kender antallet af gange, vi ønsker at lave en løkke.

I Python kan vi bruge det med alle typer sekvenser som f.eks. en liste eller en streng. Her er et eksempel, hvor for bruges til at gennemløbe en liste af navne:

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

Output

Hello JohnHello MonicaHello StevenHello Robin

Lær mere om Python for loop.

from, import

import nøgleordet bruges til at importere moduler til det aktuelle namespace. from…import bruges til at importere specifikke attributter eller funktioner til det aktuelle namespace. For eksempel:

import math

vil importere modulet math. Nu kan vi bruge cos()-funktionen inde i det som math.cos(). Men hvis vi kun ville importere cos()-funktionen, kan dette gøres ved hjælp af from as

from math import cos

nu kan vi bruge funktionen simpelthen som cos(), uden at vi behøver at skrive math.cos().

Lær mere om Python-moduler og import-erklæring.

global

global bruges til at erklære, at en variabel inde i funktionen er global (uden for funktionen).

Hvis vi har brug for at læse værdien af en global variabel, er det ikke nødvendigt at definere den som global. Dette er forstået.

Hvis vi har brug for at ændre værdien af en global variabel inde i en funktion, skal vi deklarere den med global. Ellers oprettes der en lokal variabel med dette navn.

Følgende eksempel vil hjælpe os med at afklare dette.

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

Output

1055

Her læser read1()-funktionen blot værdien af globvar. Så vi behøver ikke at deklarere den som global. Men write1()-funktionen ændrer værdien, så vi skal deklarere variablen som global.

Vi kan se i vores output, at ændringen fandt sted (10 er ændret til 5). write2() forsøger også at ændre denne værdi. Men vi har ikke deklareret den som global.

Der oprettes således en ny lokal variabel globvar, som ikke er synlig uden for denne funktion. Selv om vi ændrer denne lokale variabel til 15, forbliver den globale variabel uændret. Dette er tydeligt synligt i vores output.

in

in bruges til at teste, om en sekvens (liste, tupel, streng osv.) indeholder en værdi. Den returnerer True, hvis værdien er til stede, ellers returnerer den False. Eksempel:

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

Den sekundære anvendelse af in er at gennemløbe en sekvens i en for løkke.

for i in 'hello': print(i)

Output

hello

is

is bruges i Python til at teste objektets identitet. Mens ==-operatoren bruges til at teste, om to variabler er ens eller ej, bruges is til at teste, om de to variabler henviser til det samme objekt.

Den returnerer True, hvis objekterne er identiske, og False, hvis de ikke er det.

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

Vi ved, at der kun er én instans af True, False og None i Python, så de er identiske.

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

En tom liste eller ordbog er lig med en anden tom liste eller ordbog. Men de er ikke identiske objekter, da de befinder sig hver for sig i hukommelsen. Det skyldes, at list og dictionary er mutable (værdien kan ændres).

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

I modsætning til list og dictionary er string og tuple uforanderlige (værdien kan ikke ændres, når de først er defineret). Derfor er to ens string eller tuple også identiske. De henviser til den samme hukommelsesplacering.

lambda

lambda bruges til at oprette en anonym funktion (funktion uden navn). Det er en inline-funktion, som ikke indeholder en return-anvisning. Den består af et udtryk, der evalueres og returneres. For eksempel:

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

Output

246810

Her har vi oprettet en inline-funktion, der fordobler værdien, ved hjælp af lambda-erklæringen. Vi har brugt dette til at fordoble værdierne i en liste, der indeholder 1 til 5.

Lær mere om Python lamda-funktionen.

nonlocal

Brugen af nøgleordet nonlocal minder meget om nøgleordet global. nonlocal bruges til at erklære, at en variabel inde i en indlejret funktion (funktion i en funktion) ikke er lokal for den, hvilket betyder, at den ligger i den ydre indlejrede funktion. Hvis vi har brug for at ændre værdien af en ikke-lokal variabel inde i en indlejret funktion, skal vi deklarere den med nonlocal. Ellers oprettes der en lokal variabel med dette navn inde i den indlejrede funktion. Følgende eksempel vil hjælpe os med at tydeliggøre dette.

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

Her er inner_function() nested inden for outer_function.

Variablen a er i outer_function(). Så hvis vi ønsker at ændre den i inner_function(), skal vi deklarere den som nonlocal. Bemærk, at a ikke er en global variabel.

Dermed kan vi se på outputtet, at det er lykkedes at ændre variablen inde i den indlejrede inner_function(). Resultatet af ikke at bruge nøgleordet nonlocal er som følger:

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

Output

Inner function: 10Outer function: 5

Her erklærer vi ikke, at variablen a inde i den indlejrede funktion er nonlocal. Derfor oprettes der en ny lokal variabel med samme navn, men den ikke-lokale a ændres ikke, som det ses i vores output.

pass

pass er en null-erklæring i Python. Der sker ikke noget, når det udføres. Det bruges som en pladsholder.

Sæt, at vi har en funktion, som ikke er implementeret endnu, men som vi ønsker at implementere i fremtiden. Hvis vi blot skriver,

def function(args):

midt i et program, får vi IndentationError. I stedet konstruerer vi en tom krop med pass-erklæringen.

def function(args): pass

Vi kan også gøre det samme i en tom class.

class example: pass

return

return-erklæringen bruges inde i en funktion til at afslutte den og returnere en værdi.

Hvis vi ikke returnerer en værdi eksplicit, returneres None automatisk. Dette verificeres med følgende eksempel.

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

Output

10None

while

while bruges til looping i Python.

Ordningerne inden for en while-loop fortsætter med at blive udført, indtil betingelsen for while-loopet evalueres til False, eller der støder på en break-erklæring. Følgende program illustrerer dette.

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

Output

54321

Bemærk, at 0 er lig med False.

Læs mere om Python while-loop.

with

with-erklæringen bruges til at indpakke udførelsen af en kodeblok i metoder, der er defineret af konteksthåndteringen.

Konteksthåndteringen er en klasse, der implementerer __enter__ og __exit__-metoder. Brug af with-erklæringen sikrer, at __exit__-metoden kaldes i slutningen af den indlejrede blok. Dette koncept svarer til brugen af try…finally-blokken. Her, er et eksempel.

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

Dette eksempel skriver teksten Hello world! til filen example.txt. Filobjekter har __enter__– og __exit__-metoden defineret i dem, så de fungerer som deres egen konteksthåndtering.

Først kaldes __enter__-metoden, derefter udføres koden i with-anvisningen, og til sidst kaldes __exit__-metoden. __exit__-metoden kaldes, selv hvis der er en fejl. Den lukker i princippet filstrømmen.

yield

yield bruges inde i en funktion som en return-erklæring. Men yield returnerer en generator.

Generator er en iterator, der genererer et element ad gangen. En stor liste med værdier vil optage meget hukommelse. Generatorer er nyttige i denne situation, da den kun genererer én værdi ad gangen i stedet for at lagre alle værdierne i hukommelsen. F.eks. vil

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

skabe en generator g, som genererer potenser af 2 op til tallet to hævet til potensen 99. Vi kan generere tallene ved hjælp af next()-funktionen som vist nedenfor.

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

Og så videre… Denne type generator returneres af yield-anvisningen fra en funktion. Her er et eksempel.

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

Output

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.