Indholdsfortegnelse[Skjule][At vise]
Dette foredrag bliver vigtigt, hvis du har med store programmer at gøre.
Du lærer at håndtere fejlene gennem undtagelsesblokke og brug af kommentarer i Python.
Undtagelser
Vi skal lære, hvordan man håndterer fejl i Python-programmer. Lad os starte med at skrive et lille program for at få brugerens alder fra terminalen.
age = int(input('Age'))
print(age)
Lad os køre det.
Se nu på exit-koden for dette program. Afslutningskode 0 betyder, at vores program blev afsluttet med succes, og der var ingen fejl. Men hvad nu hvis vi kører dette program en gang til, og i stedet for at indtaste en numerisk værdi, indtaster vi en streng?
Vi får en værdifejl med hans besked "invalid literal for int() with base 10" Grundlæggende, hvad denne besked fortæller os er, at denne streng "qwe" ikke indeholder et gyldigt hjemmenummer, der kan konverteres til et heltal. Se nu på exit-koden for dette program. Udgangskode 1 betyder, at vores udgangskode gik ned, så 0 betyder altid succes, og alt andet end 0 betyder nedbrud. I programmering henviser vi til denne form for fejl som en undtagelse.
Som en god python-programmør bør du forudse denne situation. Du ønsker ikke at lade hele dit program gå ned, bare fordi brugeren har indtastet en ugyldig værdi. Så i stedet for at lade programmet gå ned, bør du håndtere situationen og udskrive en ordentlig fejlmeddelelse. Det er det, jeg vil vise dig i dette foredrag.
I Python har vi en konstruktion kaldet try except
bruges til at håndtere fejlsituationer.
try:
age = int(input('Age'))
print(age)
Disse to linjer kode er en del af vores try:
blok. Vi vil tilføje except
blok efter den med den type fejl, vi forventer.
except ValueError:
print('Invalid Value')
Det vil nu returnere strengen "Ugyldig værdi" i tilfælde af en værdifejl.
Lad os kontrollere en anden form for fejl ved at ændre det forrige program.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
Hvis vi nu kører dette program og indtaster '0' i alder, en numerisk værdi. Derfor bør vi teknisk set ikke få nogen undtagelser.
Lad os køre det.
Tag et kig. Vores program gik ned, og vi lavede en "Nuldelingsfejl", fordi vi ikke kan dividere et tal med 0. Se endnu en gang på udgangskoden. Vi kunne ikke fange denne form for fejl eller denne form for undtagelse med denne undtagen blok.
Denne undtagen blok fanger kun undtagelser af typeværdifejl, og vi skal bruge en ny undtagen blok for at håndtere nuldelingsfejl. Lad os ændre programmet i overensstemmelse hermed.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
Problemet er løst!
- Syntaks fejl
- Skrivefejl
- Navnefejl
- Indeksfejl
- Værdifejl
- Nuldelingsfejl
- Attributfejl
- Runtime fejl
- Nøglefejl
- Hukommelsesfejl
- Assertionerror
- Indrykningsror
- Eoferror
- Floatingpointerror
- Overflowerror
- Logisk fejl
- Systemfejl
- Ikke implementeret fejl
- Fejl
- Ioerror
- Referencefejl
- Unicode-fejl
- Aritmetisk fejl
- Unicodedecode-fejl
- Unicodeencodeerror
- Unicode-oversætterfejl
- Kørselsfejl
Som programmør bør du være opmærksom på alle undtagelserne i dit program, og du bør håndtere dem derefter.
Kommentarer
Nu skal vi tale om kommentarer i python. Vi bruger kommentarer til at tilføje noter eller kommentarer til vores programmer for at forbedre læsbarheden og formidle en besked til nogen, der læser vores kode.
Kommentarer kan skrives i programmet ved at bruge #-tegnet. Alt, hvad du skriver efter #, vil blive ignoreret af Python-kompileren og vil ikke blive udført. Du kan tilføje kommentarer på individuelle linjer såvel som efter en kodelinje.
Med disse kommentarer kan vi forklare noget om vores kode, vi kan bruge dem som påmindelser til at rette ting eller rydde op i tingene, eller vi kan bruge dem til at kommunikere ting med andre udviklere, der læser vores kode eller til at forklare, hvorfor vi har skrevet denne kode i en bestemt måde. Disse er gode use cases til at bruge kommentarer. vi kan også have kommentarer over flere linjer. Hver linje skal starte med et nyt #-tegn. Nu er en ting, du skal undgå, når du bruger kommentarer, at forklare, hvad koden gør.
Her er et eksempel på en dårlig kommentar:
Dette er en dårlig kommentar, fordi den fortæller mig det åbenlyse. Det fortæller mig, at den næste linje kommer til at udskrive "Sol går ned i Vesten". Nu er problemet med denne kommentar, at bortset fra at være ordrig og gentagne, hvis du kommer her og ændrer vest til øst, bliver denne kommentar forældet. Så hver gang vi opdaterer vores kode, bliver vi nødt til at vende tilbage og ændre den tilsvarende kommentar.
Kort sagt, brug dine kommentarer til at svare på hvordan og hvorfor i stedet for hvad der er.
Her er et eksempel på en god kommentar:
I den første kommentar minder jeg mig selv om, at jeg skal opdatere denne indkomstværdi, før jeg afslutter programmet, og den anden værdi fortæller andre udviklere, der læser min kode, at alle fejl ikke håndteres i dette program.
Afslutningsvis bør du undgå overflødige kommentarer, og dine kommentarer bør tilføje en vis værdi til din kode.
Afslut!
Undtagelser og kommentarer er to aspekter af programmering, som ofte overses, og deres betydning er normalt undervurderet.
At crashe dit program er næsten lige så slemt som ikke at kommentere din kode, hvor det er nødvendigt. Det næste foredrag vil fokusere på klasser og konstruktører.
Giv en kommentar