Python-försök förutom: steg-för-steg-exempel

Som programmerare kan du stöta på situationer där din kod kan stöta på fel eller undantag, så det är viktigt att förstå hur du hanterar olika typer av fel i din kod. Hantering av fel är en avgörande del av kodningscykeln. Ett vanligt sätt att hantera fel i Python är att använda try-except-tekniken.

Try-except-tekniken består av ett försöksblock och ett undantagsblock. Försök-blocket innehåller koden som kan generera ett fel eller undantag, och undantagsblocket innehåller koden för att hantera dessa fel eller undantag.

Python-försök förutom: steg-för-steg-exempel

När din kod körs utan problem inom försöksblocket, förbigås undantagsblocket. Men om ett fel eller undantag inträffar inom försöksblocket kommer koden du har skrivit i except-blocket att köras för att lösa problemet.

I den här artikeln kommer vi att diskutera Pythons try-expect-block, de olika typerna av fel och undantag du kan stöta på när du skriver kod, och hur du kan hantera dem med try-except-satserna.

Låt oss gå in i det!

Innehållsförteckning

Vilka typer av fel finns i Python?

I Python kan fel grovt klassificeras i två huvudtyper:

1. Syntaxfel : Dessa är också kända som analysfel orsakade av felaktig grammatik i koden. Syntaxfel upptäcks av Python-tolken och stoppar körningen av ditt program.

Följande är en

print("Hello, world!"

I det här exemplet saknas den avslutande parentesen, så Python förstår inte denna instruktion, och därför är det ett syntaxfel.

Python-försök förutom: steg-för-steg-exempel

Undantag : Undantag uppstår när något går fel under körningen av ett program, även om koden är syntaktisk korrekt. Dessa kan inkludera logiska fel eller körtidsfel som ogiltiga indata eller division med noll.

Följande funktion är ett exempel på ett undantag i Python:

print(5 / 0)

Denna kodrad kommer att orsaka ett ZeroDivisionError-undantag, vilket inträffar när du försöker dividera ett tal med noll.

Python-försök förutom: steg-för-steg-exempel

I bilden ovan kan du se att ett undantag inträffade när vi dividerade 5 med 0.

Nu när du har en förståelse för vilka undantag som finns i Python, ska vi se hur vi kan hantera undantag med en Try-Except-sats i Python. Låt oss ta en titt på syntaxen för Try and Except-blocken i Python i nästa avsnitt.

Vad är syntaxen för Try and Except Block?

Syntaxen för en funktion definierar hur du ska använda den funktionen i din kod, inklusive vilka argument den tar och vad den returnerar.

Vi har listat syntaxen för try-satsen och undantagsblocken, tillsammans med else -satsen och slutligen blocken nedan.

1. Syntax för Try Statement

Try - satsen låter dig testa ett kodblock för fel. När du skriver kod i försöksblocket kommer Python att köra den som en normal del av ditt program.

För att använda en try- sats, bifoga helt enkelt din kod i try- blocket:

try: # Your code here

2. Syntax för undantagssats

Except - satsen hanterar de fel som kan uppstå under körningen av försöksblocket . Du kan ange vilken typ av undantag du vill fånga eller använda en allmän undantagssats för att hantera alla undantag.

Följande syntax visar en specifik undantagstyp:

try: # Your code here except ValueError: # Handle ValueError exception

För att hantera undantagsklasser i allmänhet eller flera undantag, kan du använda syntaxen nedan:

try: # Your code here except Exception: # Handle any exception

3. Syntax för Else Klausul/Block

else - satsen låter dig exekvera kodblocket när det inte finns några fel i försöksblocket .

För att använda en annan klausul kan du placera den efter except -blocket som visas nedan:

try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors

4. Syntax för Finally Block

Finally - blocket låter dig exekvera kod, oavsett resultatet av försöket och undantagsblock . Detta kan vara användbart för åtgärder som du vill utföra oavsett om ett undantag gjordes eller inte.

För att använda finally -blocket kan du placera det efter else- blocket:

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

För att se ovanstående syntax i aktion, ska vi titta på ett exempel på hantering av undantag med try-except-blocket i Python.

Hantera undantag med Try-Except i Python

När ett fel uppstår kommer Python normalt att stoppa och generera ett felmeddelande. Du kan hantera flera undantag genom att använda ett försök och undantag- block.

I exemplet nedan hanterar vi divisionen med noll-fel som tidigare genererats när vi dividerade 5 med 0.

try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")

I den här koden inträffar ett undantag men programmet fortsätter att köras och skriver ut "Du kan inte dividera med noll!" istället för att sluta med ett fel.

Python-försök förutom: steg-för-steg-exempel

Genom att använda try and except -block kan du kontrollera flödet av ditt program. Genom att hantera specifika undantag kan du ge användbar feedback till användaren och hålla ditt program igång när ett fel dyker upp.

I exemplet ovan kan du se att vi använde det inbyggda undantaget ZeroDivisionError för att hantera ärendet. I likhet med detta finns det andra typer av inbyggda undantag också.

Bekantskap med dessa undantagstyper hjälper dig att bestämma vilken förväntan du ska använda när du stöter på ett fel i din Python-kod, så låt oss ta en titt på några undantag i nästa avsnitt.

Vilka typer av inbyggda undantag finns?

I Python är undantag instanser av en klass som härrör från klassen BaseException. När fel upptäcks gör Python ett undantag. Det finns flera inbyggda undantag som du sannolikt kommer att stöta på när du skriver program i Python.

Låt oss ta en titt på några av de vanligaste:

  1. ZeroDivisionError: Detta inträffar när du försöker dividera ett tal med noll.

  2. NameError: Detta höjs när du försöker använda en variabel eller funktion som inte har definierats.

  3. ValueError : Händer när du skickar ett argument av rätt typ men med ett ogiltigt värde.

  4. TypeError : Detta inträffar när du skickar ett argument av fel datatyp.

  5. FileNotFoundError : Händer när du försöker öppna eller komma åt en fil som inte finns.

  6. ImportError : Ökas när du försöker importera en modul eller ett paket som inte finns eller inte kan hittas.

Andra relevanta undantag inkluderar:

  1. OverflowError: Detta fel uppstår när ett beräkningsresultat är för stort för att representeras.

  2. FloatingPointError: Denna höjs när en flyttalsoperation misslyckas.

  3. IndexError: Händer när du försöker komma åt ett index som ligger utanför intervallet för en sekvens (t.ex. lista eller tupel).

  4. KeyError: Uppstår när du försöker komma åt en nyckel som inte finns i en ordbok.

  5. EOFError: Ökas när Python stöter på End Of File (EOF) när man läser indata, vanligtvis från ett read()-anrop.

  6. ArithmeticError: En superklass för aritmetiska undantag, som ZeroDivisionError, OverflowError och FloatingPointError.

Ibland kan det vara nödvändigt att använda användardefinierade undantag som pass- sats i ett block där ett undantag förväntas. Detta bör göras med omtanke eftersom det kan undertrycka andra undantag.

Vi har försett dig med ovanstående lista över vanliga undantagsfel så att du kan använda den som ett program.

Observera att de flesta undantag kan fångas upp och hanteras, men försiktighet bör iakttas för att hantera det senaste anropet för att undvika kapslad hantering av andra undantagsfall.

I nästa avsnitt kommer vi att titta på försök-utom-blocket i Python. Låt oss gå in i det!

5 Användningsfall av Try-Except Block

Try Except block är en av de ofta använda teknikerna för att hantera fel. Följande är några av användningsfallen för Try Except-blocket i Python:

1. Filhantering med Try Except

När du arbetar med filer finns det alltid en chans att filen inte finns eller inte finns på den plats som ditt skript försöker komma åt den från.

Följande kod kommer att skapa undantag när vi försöker öppna en fil som inte finns.

try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')

I den här koden försöker vi öppna och läsa en fil som heter 'file.txt'. Om 'file.txt' inte finns, inträffar ett undantag, men istället för ett fel som stoppar ditt program, kommer det att skrivas ut "Tyvärr, den här filen finns inte."

Python-försök förutom: steg-för-steg-exempel

2. Hantera användarinmatning med Try Except

Användarinmatning är ett annat område där undantag ofta förekommer. Användare kan tillhandahålla data i ett oväntat format eller ge en indata som ligger utanför det acceptabla intervallet.

Följande exempel visar hur man hanterar användarinmatning med ett försök-utom-block:

try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")

I den här koden ber vi användaren att ange sin ålder. Om de matar in något som inte kan konverteras till ett heltal (som ett ord eller en bokstav), inträffar ett undantag men istället för att programmet kraschar kommer det att skriva ut "Det är inte en giltig ålder". Ange ett nummer.'

Python-försök förutom: steg-för-steg-exempel

3. Åtkomst till icke-existerande ordboksnycklar

I Python är en ordbok en föränderlig, oordnad , där varje nyckel måste vara unik.

När du försöker komma åt en nyckel som inte finns i en ordbok, väcker Python ett KeyError. Du kan använda try and except för att hantera detta undantag som visas i exemplet nedan:

dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")

I den här koden försöker du skriva ut värdet för 'key3' från en ordbok. Om 'nyckel3' inte finns i ordboken, inträffar ett undantag men istället för att programmet slutar med ett fel, kommer det att skriva ut 'Nyckeln finns inte i ordboken.'

Python-försök förutom: steg-för-steg-exempel

4. Konvertera en sträng till ett heltal

Det kan finnas tillfällen då du vill konvertera a till ett heltal. Men om strängen inte representerar ett giltigt heltal, kommer Python att höja ett ValueError.

Du kan använda try and förutom för att hantera det här fallet:

try: num = int("hello") except ValueError: print("That string can't be converted to integer.")

I det här fallet kan 'hej' inte konverteras till ett heltal, så Python höjer ett ValueError och skriver ut 'Den strängen kan inte konverteras till heltal.'

Python-försök förutom: steg-för-steg-exempel

5. Importera en modul

När , är det möjligt att modulen inte finns eller inte är installerad. Python kommer att skapa ett ImportError i sådana fall.

För att hantera det här fallet kan du använda följande kod:

try: import some_module except ImportError: print("The module 'some_module' is not installed.")

I exemplet ovan, om 'some_module' inte är installerad eller inte existerar, kommer Python att visa ett ImportError och skriva ut 'Modulen 'some_module' is not installed.'

Python-försök förutom: steg-för-steg-exempel

För att lära dig mer om att skriva kod i Python och hantera förväntningar, kolla in följande video:

Därefter kommer vi att titta på några av de bästa metoderna för att hantera undantag. Låt oss dyka in i det!

Best Practices för undantagshantering

I det här avsnittet har vi listat några av de bästa metoderna för att hantera undantag med Try Except-blocket. Några bästa metoder för att hantera undantag är:

1. Var specifik med undantag

När du skriver din kod är det viktigt att fånga undantag så specifikt som möjligt. Det betyder att istället för att bara fånga ett allmänt undantagsnamn, bör du fånga den faktiska typen av undantag som du förväntar dig.

På så sätt vet du exakt vilken typ av fel som uppstod och du kommer att kunna hantera det på rätt sätt.

2. Undertryck inte undantag

När du har att göra med undantag kan du bli frestad att bara fånga det med en undantagshanterare och inte göra något med det. Detta är generellt sett en dålig idé.

Om ett fel inträffar beror det oftast på att det är något som måste åtgärdas. Om du undertrycker undantagsklassen kan felet förbli obemärkt och orsaka problem senare.

3. Använd Finally for Cleanup Code

Ibland har du någon kod som du behöver köra oavsett om ett fel inträffade eller inte. Detta kan vara något som att stänga en fil eller släppa några resurser.

I dessa fall kan du använda ett finalblock . Koden inuti finally -blocket kommer att köras oavsett vad, så det är ett bra ställe att lägga din rensningskod.

try: # Some code here finally: # This code will run no matter what

4. Höj undantag vid behov

Det kan finnas situationer där du behöver meddela användaren av din kod att något gick fel.

I dessa fall kan du ta upp ett undantag. Detta kommer omedelbart att stoppa exekveringen av din kod och informera användaren om att ett fel uppstod.

if not valid_input: raise ValueError("Your input was not valid!")

Om du förstår och implementerar dessa bästa metoder blir din kod mer robust, lättare att felsöka och förhindra oväntade krascher.

Slutgiltiga tankar

För att avsluta det, att veta hur man använder try and except i Python hjälper verkligen när du skriver din kod och stöter på undantag i den.

De låter ditt program hantera fel smidigt, istället för att bara sluta plötsligt. Det är ett sätt att se till att din kod kan hantera överraskningar och fortsätta.

Dessutom, när du använder försök och undantag visar det att du verkligen tänker på vad som kan gå fel och gör dig redo för det. Så ta dig tid att lära dig dessa verktyg – de är super användbara när du skriver kod i Python!


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.