Inhoudsopgave[Zich verstoppen][Laten zien]
Deze lezing zal belangrijk zijn als je te maken hebt met grote programma's.
Je leert de fouten af te handelen door middel van uitzonderingsblokken en het gebruik van opmerkingen in Python.
Uitzonderingen
We gaan leren hoe om te gaan met fouten in Python-programma's. Laten we beginnen met het schrijven van een klein programma om de leeftijd van de gebruiker uit de terminal te halen.
age = int(input('Age'))
print(age)
Laten we het uitvoeren.
Kijk nu naar de afsluitcode van dit programma. Afsluitcode 0 betekent dat ons programma succesvol is beëindigd en dat er geen fouten zijn opgetreden. Maar wat als we dit programma nog een keer uitvoeren en in plaats van een numerieke waarde in te voeren, voeren we een string in?
We krijgen een waardefout met zijn bericht "invalid literal for int() with base 10" Wat dit bericht ons eigenlijk vertelt, is dat deze string "qwe" geen geldig huisnummer bevat dat kan worden geconverteerd naar een geheel getal. Kijk nu naar de afsluitcode van dit programma. Afsluitcode 1 betekent dat onze afsluitcode is gecrasht, dus 0 betekent altijd succes en alles behalve 0 betekent crash. Bij het programmeren noemen we dit soort fouten een uitzondering.
Als een goede python-programmeur moet je op deze situatie anticiperen. U wilt niet dat uw hele programma crasht alleen omdat de gebruiker een ongeldige waarde heeft ingevoerd. Dus in plaats van het programma te laten crashen, moet u de situatie aanpakken en een correct foutbericht afdrukken. Dat ga ik je in deze lezing laten zien.
In Python hebben we een constructie genaamd try except
gebruikt om met foutsituaties om te gaan.
try:
age = int(input('Age'))
print(age)
Deze twee regels code maken deel uit van onze try:
blok. We zullen toevoegen except
blok erna met het type fout dat we verwachten.
except ValueError:
print('Invalid Value')
Het zal nu de tekenreeks "Ongeldige waarde" retourneren in het geval van een waardefout.
Laten we een ander soort fout controleren door het vorige programma te wijzigen.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
Als we nu dit programma uitvoeren en '0' invoeren in leeftijd, een numerieke waarde. Daarom zouden we technisch gezien geen uitzonderingen moeten krijgen.
Laten we het uitvoeren.
Kijk eens. Ons programma is gecrasht en we hebben een "Zero Division Error" gemaakt omdat we een getal niet door 0 kunnen delen. Kijk nog eens naar de exit-code. We konden dit soort fouten of dit soort uitzonderingen niet opvangen met dit behalve blok.
Dit behalve blok vangt alleen uitzonderingen van typewaardefout op en we hebben een nieuw behalve blok nodig om Zero Division Error te verwerken. Laten we het programma dienovereenkomstig aanpassen.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
Het probleem is opgelost!
- Syntax error
- Typefout
- Naamfout
- Indexfout
- Waardefout
- nulverdelingsfout
- Attributeerfout
- Runtime-fout
- Sleutelfout
- Geheugenfout
- Beweringfout
- Inspringfout
- Eoferor
- Drijvende wijzerfout
- Overloopfout
- Logische fout
- Systeemfout
- Geen geïmplementeerde fout
- fout
- Fout
- Referentiefout
- Unicodefout
- rekenfout
- Unicodedecodefout
- Unicodeencodefout
- Unicodetranslatefout
- Runtime-fouten
Als programmeur moet u op de hoogte zijn van alle uitzonderingen in uw programma en dienovereenkomstig behandelen.
Heb je vragen? Stel ze hier.
Nu gaan we het hebben over opmerkingen in python. We gebruiken opmerkingen om opmerkingen of opmerkingen aan onze programma's toe te voegen om de leesbaarheid te verbeteren en een boodschap over te brengen aan iemand die onze code leest.
Opmerkingen kunnen in het programma worden geschreven door het #-teken te gebruiken. Alles wat u na de # schrijft, wordt genegeerd door de Python-compiler en wordt niet uitgevoerd. U kunt zowel op afzonderlijke regels als na een regel code commentaar toevoegen.
Met deze opmerkingen kunnen we iets uitleggen over onze code, we kunnen ze gebruiken als herinnering om dingen op te lossen of op te helderen, of we kunnen ze gebruiken om dingen te communiceren met andere ontwikkelaars die onze code lezen of om uit te leggen waarom we deze code hebben geschreven in een bepaalde manier. Dit zijn goede use-cases voor het gebruik van opmerkingen. we kunnen ook opmerkingen hebben over meerdere regels. Elke regel moet beginnen met een nieuw #-teken. Een ding dat u nu moet vermijden bij het gebruik van opmerkingen, is uitleggen wat de code doet.
Hier is een voorbeeld van een slechte opmerking:
Dit is een slechte opmerking omdat het me het voor de hand liggende vertelt. Het vertelt me dat de volgende regel "Sun sets in the West" gaat afdrukken. Het probleem met deze opmerking is dat deze opmerking niet alleen uitgebreid en repetitief is als je hier komt en van west naar oost verandert, maar ook achterhaald is. Dus elke keer dat we onze code bijwerken, moeten we terugkomen en de bijbehorende opmerking wijzigen.
Kortom, gebruik uw opmerkingen om het hoe en waarom te beantwoorden in plaats van wat is.
Hier is een voorbeeld van een goede opmerking:
In de eerste opmerking herinner ik mezelf eraan dat ik deze inkomstenwaarde moet bijwerken voordat ik het programma voltooi en de tweede waarde vertelt andere ontwikkelaars die mijn code lezen dat alle fouten niet in dit programma worden afgehandeld.
Kortom, u moet overbodige opmerkingen vermijden en uw opmerkingen moeten enige waarde toevoegen aan uw code.
Inpakken!
Uitzonderingen en opmerkingen zijn twee aspecten van programmeren die vaak over het hoofd worden gezien en hun betekenis wordt meestal onderschat.
Je programma laten crashen is bijna net zo erg als geen commentaar geven op je code waar nodig. De volgende lezing zal zich richten op klassen en constructeurs.
Laat een reactie achter