π Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΡΠ΅ΡΡ Π² ΠΠΈΡΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌ ΠΏΠΎΠ½ΡΡΠΈΠΈ Π² ΠΠ°ΠΉΡΠΎΠ½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΡΡΠ΅ΡΡ Π² ΠΏΠΈΡΠΎΠ½Π΅
ΠΡΡΠ΅ΡΡ (assert) Π² ΠΏΠΈΡΠΎΠ½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ΠΎ ΠΈΡΡΠΈΠ½Π½ΡΠΌ. ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π°ΡΡΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ AssertionError ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
x = 5
assert x > 0, "x Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ"
print("x is positive")
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π°ΡΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ x Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ. ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ AssertionError ΠΈ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "x Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ". ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ "x is positive".
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ assert Π² ΠΠΈΡΠΎΠ½Π΅?
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΠΊΠΎΠΌΠ°Π½Π΄Π° assert ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΡΠ±Π΅ΠΆΠ΄Π°ΡΡΡΡ Π² ΠΈΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ. ΠΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ AssertionError.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ assert:
assert ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ. ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎΠ΅, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠ»ΠΎΠ²ΠΈΡ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
ΠΡΠΈΠΌΠ΅Ρ 1:
x = 10
y = 5
assert x > y, "x Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ y"
print("ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Π΅ΡΠ½ΠΎ.")
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΡΠ»ΠΎΠ²ΠΈΠ΅ "x > y" ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ 2:
x = 5
y = 10
assert x > y, "x Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ y"
print("ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎΠ΅.")
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΡΠ»ΠΎΠ²ΠΈΠ΅ "x > y" ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠΆΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: "AssertionError: x Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ y".
ΠΠΎΠΌΠ°Π½Π΄Π° assert ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅. ΠΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΡΡ ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ .
ΠΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° assert Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ. ΠΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.