Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Als programmeur kunt u situaties tegenkomen waarin uw code fouten of uitzonderingen kan tegenkomen, dus het is van cruciaal belang om te begrijpen hoe u met verschillende soorten fouten in uw code om moet gaan. Het afhandelen van fouten is een cruciaal onderdeel van de codeercyclus. Een gebruikelijke manier om met fouten in Python om te gaan, is door de try-except-techniek te gebruiken.
De Python try-except-techniek bestaat uit een try-blok en een exception-blok. Het try-blok bevat de code die een fout of uitzondering kan genereren, en het exception-blok bevat de code om die fouten of uitzonderingen af te handelen.
Wanneer uw code probleemloos wordt uitgevoerd binnen het try-blok, wordt het behalve-blok omzeild. Als er echter een fout of uitzondering optreedt binnen het try-blok, wordt de code die u in het exception-blok hebt geschreven uitgevoerd om het probleem op te lossen.
In dit artikel bespreken we het try-expect-blok van Python , de verschillende soorten fouten en uitzonderingen die je kunt tegenkomen bij het schrijven van code, en hoe je ze kunt afhandelen met de try-except-statements.
Laten we erop ingaan!
Inhoudsopgave
Wat zijn de soorten fouten in Python?
In Python kunnen fouten grofweg worden ingedeeld in twee hoofdtypen:
1. Syntaxisfouten : deze staan ook bekend als parseerfouten die worden veroorzaakt door onjuiste grammatica in de code. Syntaxisfouten worden gedetecteerd door de Python-interpreter en stoppen de uitvoering van uw programma.
Het volgende is een voorbeeld van een syntaxisfout in Python:
print("Hello, world!"
In dit voorbeeld ontbreekt het haakje sluiten, dus begrijpt Python deze instructie niet en daarom is het een syntaxisfout.
Uitzonderingen : Uitzonderingen doen zich voor wanneer er iets misgaat tijdens de uitvoering van een programma, zelfs als de code syntactisch correct is. Dit kunnen logische fouten of runtime-fouten zijn, zoals ongeldige invoer of deling door nul.
De volgende functie is een voorbeeld van een uitzondering in Python:
print(5 / 0)
Deze coderegel veroorzaakt een ZeroDivisionError-uitzondering, die optreedt wanneer u een getal door nul probeert te delen.
In de afbeelding hierboven kun je zien dat er een uitzondering is opgetreden toen we 5 door 0 deelden.
Nu u begrijpt welke uitzonderingen er zijn in Python, gaan we kijken hoe we uitzonderingen kunnen afhandelen met een Try-Except-instructie in Python. Laten we in de volgende sectie eens kijken naar de syntaxis van Try and Except-blokken in Python.
Wat is de syntaxis van Try and Except Block?
De syntaxis van een functie definieert hoe u die functie in uw code moet gebruiken, inclusief welke argumenten er nodig zijn en wat deze retourneert.
We hebben de syntaxis van de try-clausule en de blokken behalve weergegeven, samen met de else- clausule en de blokken tenslotte hieronder.
1. Syntaxis van Try-verklaring
Met de instructie try kunt u een codeblok testen op fouten. Wanneer u code schrijft binnen het try- blok, zal Python deze uitvoeren als een normaal onderdeel van uw programma.
Om een try- statement te gebruiken, plaatst u gewoon uw code in het try- blok:
try: # Your code here
2. Syntaxis van uitzonderingsclausule
De except- clausule handelt de fouten af die kunnen optreden tijdens de uitvoering van het try- blok. U kunt het type uitzondering specificeren dat u wilt afvangen of een algemene uitzonderingsinstructie gebruiken om alle uitzonderingen af te handelen.
De volgende syntaxis toont een specifiek uitzonderingstype:
try: # Your code here except ValueError: # Handle ValueError exception
Om uitzonderingsklassen in het algemeen of meerdere uitzonderingen te behandelen, kunt u de onderstaande syntaxis gebruiken:
try: # Your code here except Exception: # Handle any exception
3. Syntaxis van Else Clause/Block
Met de else- clausule kunt u het codeblok uitvoeren als er geen fouten in het try- blok staan.
Om een else- clausule te gebruiken, kunt u deze na het behalve- blok plaatsen, zoals hieronder wordt weergegeven:
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors
4. Syntaxis van Eindelijk blokkeren
Met het final- blok kun je code uitvoeren, ongeacht het resultaat van de try- and- except -blokken. Dit kan handig zijn voor acties die u wilt uitvoeren, ongeacht of er een uitzondering is gemaakt.
Om het FINLET- blok te gebruiken, kun je het achter het else- blok plaatsen:
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks
Om de bovenstaande syntaxis in actie te zien, kijken we naar een voorbeeld van het afhandelen van uitzonderingen met het try-except-blok in Python.
Uitzonderingen afhandelen met Try-Except in Python
Wanneer er een fout optreedt, stopt Python normaal gesproken en genereert een foutmelding. U kunt meerdere uitzonderingen afhandelen door een try- and- except -blok te gebruiken.
In het onderstaande voorbeeld behandelen we de deling door nulfout die eerder werd gegenereerd toen we 5 door 0 deelden.
try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")
In deze code doet zich een uitzondering voor, maar het programma blijft draaien en print "Je kunt niet delen door nul!" in plaats van te stoppen met een fout.
Door try -and- except -blokken te gebruiken, kunt u de stroom van uw programma regelen. Door specifieke uitzonderingen af te handelen , kunt u de gebruiker nuttige feedback geven en uw programma draaiende houden wanneer er een fout optreedt.
In het bovenstaande voorbeeld kunt u zien dat we de ingebouwde uitzondering ZeroDivisionError hebben gebruikt om de zaak af te handelen. Vergelijkbaar hiermee zijn er ook andere soorten ingebouwde uitzonderingen.
Bekendheid met deze typen uitzonderingen zal u helpen beslissen welke verwachting u moet gebruiken wanneer u een fout tegenkomt in uw Python-code, dus laten we eens kijken naar enkele uitzonderingen in de volgende sectie.
Wat zijn de soorten ingebouwde uitzonderingen?
In Python zijn uitzonderingen instanties van een klasse die is afgeleid van de klasse BaseException. Wanneer er fouten worden gedetecteerd, roept Python een uitzondering op. Er zijn verschillende ingebouwde uitzonderingen die u waarschijnlijk zult tegenkomen terwijl u programma's in Python schrijft.
Laten we eens kijken naar enkele van de meest voorkomende:
ZeroDivisionError: Dit gebeurt wanneer u een getal probeert te delen door nul.
NameError: dit wordt gegenereerd wanneer u een variabele of functie probeert te gebruiken die niet is gedefinieerd.
ValueError : Gebeurt wanneer u een argument van het juiste type doorgeeft, maar met een ongeldige waarde.
TypeError : deze treedt op wanneer u een argument van het verkeerde gegevenstype doorgeeft.
FileNotFoundError : Gebeurt wanneer u probeert een bestand te openen of te openen dat niet bestaat.
ImportError : Treedt op wanneer u probeert een module of pakket te importeren dat niet bestaat of niet kan worden gevonden.
Andere relevante uitzonderingen zijn:
OverflowError: Deze fout treedt op wanneer een berekeningsresultaat te groot is om weer te geven.
FloatingPointError: Deze wordt gegenereerd wanneer een drijvende-kommabewerking mislukt.
IndexError: Gebeurt wanneer u toegang probeert te krijgen tot een index die buiten het bereik van een reeks ligt (bijv. lijst of tuple).
KeyError: doet zich voor wanneer u toegang probeert te krijgen tot een sleutel die niet in een woordenboek voorkomt.
EOFError: Wordt gegenereerd wanneer Python het einde van het bestand (EOF) tegenkomt tijdens het lezen van invoer, meestal van een read()-aanroep.
ArithmeticError: een superklasse voor rekenkundige uitzonderingen, zoals ZeroDivisionError, OverflowError en FloatingPointError.
Soms kan het nodig zijn om door de gebruiker gedefinieerde uitzonderingen te gebruiken, zoals een pass- instructie in een blok waar een uitzondering wordt verwacht. Dit moet oordeelkundig worden gedaan, omdat het andere uitzonderingen zou kunnen onderdrukken.
We hebben u de bovenstaande lijst met veelvoorkomende uitzonderingsfouten gegeven, zodat u deze als leidraad kunt gebruiken voor het afhandelen van mogelijke uitzonderingen bij het schrijven van uw Python- programma's.
Houd er rekening mee dat de meeste uitzonderingen kunnen worden opgevangen en afgehandeld, maar er moet voor worden gezorgd dat de meest recente oproep wordt afgehandeld om geneste afhandeling van andere uitzonderingsgevallen te voorkomen.
In de volgende sectie zullen we kijken naar enkele use-cases van het try-except-blok in Python. Laten we erop ingaan!
5 Gebruiksgevallen van Try-Except Block
Try Except block is een van de meest gebruikte technieken voor het afhandelen van fouten. Hieronder volgen enkele gebruiksgevallen van het Try Except-blok in Python:
1. Bestandsafhandeling met Try Except
Wanneer u met bestanden werkt, is er altijd een kans dat het bestand niet bestaat of zich niet op de locatie bevindt van waaruit uw script probeert er toegang toe te krijgen.
De volgende code veroorzaakt een uitzondering wanneer we proberen een bestand te openen dat niet aanwezig is.
try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')
In deze code proberen we een bestand met de naam 'file.txt' te openen en te lezen. Als 'file.txt' niet bestaat, treedt er een uitzondering op, maar in plaats van een fout bij het stoppen van uw programma, wordt 'Sorry, dit bestand bestaat niet' afgedrukt.
2. Gebruikersinvoer verwerken met Try Except
Gebruikersinvoer is een ander gebied waarop vaak uitzonderingen voorkomen. Gebruikers kunnen gegevens in een onverwacht formaat aanleveren of een invoer geven die buiten het acceptabele bereik valt.
Het volgende voorbeeld laat zien hoe gebruikersinvoer moet worden verwerkt met een try-except-blok:
try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")
In deze code vragen we de gebruiker om zijn leeftijd in te voeren. Als ze iets invoeren dat niet kan worden geconverteerd naar een geheel getal (zoals een woord of een letter), treedt er een uitzondering op, maar in plaats van dat het programma crasht, zal het afdrukken 'Dat is geen geldige leeftijd. Voer alstublieft een nummer in.'
3. Toegang tot niet-bestaande woordenboeksleutels
In Python is een woordenboek een veranderlijke, ongeordende verzameling sleutel-waardeparen , waarbij elke sleutel uniek moet zijn.
Wanneer u toegang probeert te krijgen tot een sleutel die niet bestaat in een woordenboek, genereert Python een KeyError. U kunt proberen en behalve gebruiken om deze uitzondering af te handelen, zoals weergegeven in het onderstaande voorbeeld:
dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")
In deze code probeert u de waarde voor 'key3' uit een woordenboek af te drukken. Als 'key3' niet in het woordenboek voorkomt, treedt er een uitzondering op, maar in plaats van dat het programma stopt met een fout, wordt 'De sleutel bestaat niet in het woordenboek' afgedrukt.
4. Een tekenreeks omzetten in een geheel getal
Het kan voorkomen dat u een tekenreeks naar een geheel getal wilt converteren . Maar als de string geen geldig geheel getal vertegenwoordigt, zal Python een ValueError genereren.
U kunt proberen en behalve gebruiken om deze zaak af te handelen:
try: num = int("hello") except ValueError: print("That string can't be converted to integer.")
In dit geval kan 'hallo' niet worden geconverteerd naar een geheel getal, dus roept Python een ValueError op en drukt af 'Die string kan niet worden geconverteerd naar een geheel getal'.
5. Een module importeren
Bij het importeren van een module in Python is het mogelijk dat de module niet bestaat of niet is geïnstalleerd. Python zal in dergelijke gevallen een ImportError genereren.
Om deze zaak af te handelen, kunt u de volgende code gebruiken:
try: import some_module except ImportError: print("The module 'some_module' is not installed.")
In het bovenstaande voorbeeld, als 'some_module' niet is geïnstalleerd of niet bestaat, zal Python een ImportError genereren en afdrukken 'De module 'some_module' is niet geïnstalleerd.'
Bekijk de volgende video voor meer informatie over het schrijven van code in Python en het omgaan met verwachtingen:
Vervolgens bekijken we enkele best practices voor het afhandelen van uitzonderingen. Laten we erin duiken!
Best practices voor het omgaan met uitzonderingen
In deze sectie hebben we een aantal best practices opgesomd voor het afhandelen van uitzonderingen met het Try Except-blok. Enkele best practices voor het afhandelen van uitzonderingen zijn:
1. Wees specifiek met uitzonderingen
Wanneer u uw code schrijft, is het cruciaal om uitzonderingen zo specifiek mogelijk op te vangen. Dit betekent dat u in plaats van alleen een algemene uitzonderingsnaam te vangen, het eigenlijke type uitzondering moet vangen dat u verwacht.
Op deze manier weet u precies wat voor soort fout er is opgetreden en kunt u deze op de juiste manier afhandelen.
2. Onderdruk geen uitzonderingen
Als je te maken hebt met uitzonderingen, kom je misschien in de verleiding om het gewoon op te vangen met een uitzonderingshandler en er niets mee te doen. Dit is over het algemeen een slecht idee.
Als er een fout optreedt, is dat meestal omdat er iets moet worden opgelost. Als u de uitzonderingsklasse onderdrukt, kan de fout onopgemerkt blijven en later problemen veroorzaken.
3. Gebruik Eindelijk voor Cleanup Code
Soms heb je wat code die je moet uitvoeren, ongeacht of er een fout is opgetreden of niet. Dit kan zoiets zijn als het sluiten van een bestand of het vrijgeven van enkele bronnen.
In deze gevallen kunt u een final- blok gebruiken. De code in het final- blok zal hoe dan ook worden uitgevoerd, dus het is een geweldige plek om je opschooncode te plaatsen.
try: # Some code here finally: # This code will run no matter what
4. Maak indien nodig uitzonderingen
Er kunnen situaties zijn waarin u de gebruiker van uw code moet laten weten dat er iets mis is gegaan.
In deze gevallen kunt u een uitzondering indienen. Hierdoor wordt de uitvoering van uw code onmiddellijk stopgezet en wordt de gebruiker geïnformeerd dat er een fout is opgetreden.
if not valid_input: raise ValueError("Your input was not valid!")
Als u deze best practices begrijpt en implementeert, wordt uw code robuuster, gemakkelijker te debuggen en voorkomt u onverwachte crashes.
Laatste gedachten
Om het af te ronden, weten hoe je try en except in Python moet gebruiken, helpt echt wanneer je je code schrijft en daarin uitzonderingen tegenkomt.
Ze laten uw programma fouten soepel afhandelen, in plaats van plotseling te stoppen. Het is een manier om ervoor te zorgen dat uw code verrassingen aankan en doorgaat.
En als je try and exception gebruikt, laat het zien dat je echt nadenkt over wat er mis kan gaan en je daarop voorbereidt. Neem dus de tijd om deze tools te leren — ze zijn super handig als je code schrijft in Python!
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten