Anvä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.
12345def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
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 >= 18eller 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_listellerassert 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 verifierarassert_raises(ExceptionType, my_function, arg1, arg2)att anrop av my_function med arg1 och arg2 kastar ett undantag av typen ExceptionType.
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.
- Kontrollera att
user_idinte redan finns iusers-ordlistan för att undvika dubbletter; - Säkerställ att
user_idär ett heltal för att upprätthålla konsekvens i användar-ID-typer; - Bekräfta att
user_infoskickas som en ordlista för att förhindra datatypfel.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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?
Awesome!
Completion rate improved to 3.13
Anvä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.
12345def calculate_average(grades): assert len(grades) > 0, "List of grades cannot be empty" return sum(grades) / len(grades) calculate_average([]) # Throw an error
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 >= 18eller 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_listellerassert 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 verifierarassert_raises(ExceptionType, my_function, arg1, arg2)att anrop av my_function med arg1 och arg2 kastar ett undantag av typen ExceptionType.
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.
- Kontrollera att
user_idinte redan finns iusers-ordlistan för att undvika dubbletter; - Säkerställ att
user_idär ett heltal för att upprätthålla konsekvens i användar-ID-typer; - Bekräfta att
user_infoskickas som en ordlista för att förhindra datatypfel.
Lösning
Tack för dina kommentarer!
single