Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda Assertioner i Python: Felsökning och Säkerställande av Kodintegritet | Bemästra Felhantering i Python
Python Strukturell Programmering

bookAnvända Assertioner i Python: Felsökning och Säkerställande av Kodintegritet

I Python är assert-satsen en inbyggd funktion avsedd att verifiera att specifika villkor är sanna i din kod. Den fungerar som en rimlighetskontroll och bekräftar att vissa förutsättningar är uppfyllda vid specifika punkter under programmets körning.

Syntaxen för assert-satsen är följande:

assert condition, message

I Python utförs assertioner med hjälp av assert-satsen. En assertion kontrollerar ett villkor, och om villkoret utvärderas till False kastas ett undantag av typen AssertionError med ett valfritt felmeddelande.

12345
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
copy

I detta exempel beräknar funktionen det genomsnittliga betyget, och assertionen säkerställer att listan med betyg inte är tom innan genomsnittet beräknas. Om betygen är tomma misslyckas assertionen, vilket förhindrar division med noll och indikerar ett tydligt fel i programlogiken.

Här är några vanliga kategorier av assertioner:

  • Värdeassertioner: Dessa assertioner används ofta vid felsökning och testning för att verifiera att de värden som används i ett program uppfyller förväntade kriterier. Till exempel kan du använda assertioner som assert x >= 18 eller som tidigare visat, assert len(grades) > 0;

  • Typassertioner: Typassertioner är särskilt värdefulla i dynamiskt typade språk som Python, där typen av en variabel kan ändras. Till exempel, genom att använda assert isinstance(x, int) bekräftas att x verkligen är ett heltal;

  • Samlingassertioner: Dessa assertioner används för att kontrollera om en samling (som en lista eller ordbok) innehåller specifika element eller uppfyller särskilda kriterier. Exempel är assert item in my_list eller assert key in my_dict;

  • Undantagsassertioner: Dessa används främst vid enhetstestning (vilket vi kommer att lära oss i sista avsnittet) för att säkerställa att koden hanterar undantag korrekt. Till exempel, assert_raises(ValueError, int, 'abc') kontrollerar att konvertering av 'abc' till ett heltal kastar ett ValueError. På liknande sätt verifierar assert_raises(ExceptionType, my_function, arg1, arg2) att anrop av my_function med arg1 och arg2 kastar ett undantag av typen ExceptionType.

Uppgift

Swipe to start coding

Lägg till påståenden i ett exempelprojekt som hanterar användardata, för att säkerställa att användarinformationen uppfyller vissa kriterier.

  1. Kontrollera att user_id inte redan finns i users-ordlistan för att undvika dubbletter;
  2. Säkerställ att user_id är ett heltal för att upprätthålla konsekvens i användar-ID-typer;
  3. Bekräfta att user_info skickas som en ordlista för att förhindra datatypfel.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you give more examples of how to use assert in Python?

What happens if I run Python with optimizations and use assert statements?

Can you explain the difference between assert and raising exceptions manually?

close

bookAnvända Assertioner i Python: Felsökning och Säkerställande av Kodintegritet

Svep för att visa menyn

I Python är assert-satsen en inbyggd funktion avsedd att verifiera att specifika villkor är sanna i din kod. Den fungerar som en rimlighetskontroll och bekräftar att vissa förutsättningar är uppfyllda vid specifika punkter under programmets körning.

Syntaxen för assert-satsen är följande:

assert condition, message

I Python utförs assertioner med hjälp av assert-satsen. En assertion kontrollerar ett villkor, och om villkoret utvärderas till False kastas ett undantag av typen AssertionError med ett valfritt felmeddelande.

12345
def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
copy

I detta exempel beräknar funktionen det genomsnittliga betyget, och assertionen säkerställer att listan med betyg inte är tom innan genomsnittet beräknas. Om betygen är tomma misslyckas assertionen, vilket förhindrar division med noll och indikerar ett tydligt fel i programlogiken.

Här är några vanliga kategorier av assertioner:

  • Värdeassertioner: Dessa assertioner används ofta vid felsökning och testning för att verifiera att de värden som används i ett program uppfyller förväntade kriterier. Till exempel kan du använda assertioner som assert x >= 18 eller som tidigare visat, assert len(grades) > 0;

  • Typassertioner: Typassertioner är särskilt värdefulla i dynamiskt typade språk som Python, där typen av en variabel kan ändras. Till exempel, genom att använda assert isinstance(x, int) bekräftas att x verkligen är ett heltal;

  • Samlingassertioner: Dessa assertioner används för att kontrollera om en samling (som en lista eller ordbok) innehåller specifika element eller uppfyller särskilda kriterier. Exempel är assert item in my_list eller assert key in my_dict;

  • Undantagsassertioner: Dessa används främst vid enhetstestning (vilket vi kommer att lära oss i sista avsnittet) för att säkerställa att koden hanterar undantag korrekt. Till exempel, assert_raises(ValueError, int, 'abc') kontrollerar att konvertering av 'abc' till ett heltal kastar ett ValueError. På liknande sätt verifierar assert_raises(ExceptionType, my_function, arg1, arg2) att anrop av my_function med arg1 och arg2 kastar ett undantag av typen ExceptionType.

Uppgift

Swipe to start coding

Lägg till påståenden i ett exempelprojekt som hanterar användardata, för att säkerställa att användarinformationen uppfyller vissa kriterier.

  1. Kontrollera att user_id inte redan finns i users-ordlistan för att undvika dubbletter;
  2. Säkerställ att user_id är ett heltal för att upprätthålla konsekvens i användar-ID-typer;
  3. Bekräfta att user_info skickas som en ordlista för att förhindra datatypfel.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 4
single

single

some-alt