TypeError + ValueError
ΠΡΠ»ΠΈ Π²Ρ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Π²Π΅Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎ input() ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ³ΡΠ°ΡΡ Ρ Π²Π°ΠΌΠΈ Π·Π»ΡΡ ΡΡΡΠΊΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, Π° ΠΌΡ-ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
try, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
ΠΡΠ»ΠΈ Π²Ρ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π²Π²Π΅Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎ input() ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ³ΡΠ°ΡΡ Ρ Π²Π°ΠΌΠΈ Π·Π»ΡΡ ΡΡΡΠΊΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, Π° ΠΌΡ-ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
try, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
ΠΠ΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ try β except
AttributeError
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΡΠ°Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±Π°Π·Π΅: ΡΠ΅ΠΊΡΡ (text) ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ (values).
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° langchain, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎ ΡΠΌΡΡΠ»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠ΅Ρ Π±Π»ΠΈΠ·ΠΊΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² res Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌ ΡΠ·Π½Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ β ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ»ΠΎΠΊ try Π² ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΠ°Π»ΠΎΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ, ΠΈΠ±ΠΎ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°Π½ Π°Π²ΡΠΎΡΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ΅ ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠ»Π°ΡΡΡ Π² except.
AttributeError
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΡΠ°Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±Π°Π·Π΅: ΡΠ΅ΠΊΡΡ (text) ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΅Π³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ (values).
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° langchain, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎ ΡΠΌΡΡΠ»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠ΅Ρ Π±Π»ΠΈΠ·ΠΊΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² res Π² ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌ ΡΠ·Π½Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ β ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΠ»ΠΎΠΊ try Π² ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΠ°Π»ΠΎΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ, ΠΈΠ±ΠΎ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°Π½ Π°Π²ΡΠΎΡΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ΅ ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠ»Π°ΡΡΡ Π² except.
ImportError
Π’Π΅ ΠΈΠ· Π½Π°Ρ, ΠΊΡΠΎ ΠΏΡΠΈΠ²ΡΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ Π½Π° Π±Π°Π·Π΅ Google Colaboratory / Jupyter Notebook, ΠΏΠΎΠΌΠ½ΡΡ, ΡΡΠΎ Π² ΡΡΠ΅Π΄Ρ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pip Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Python-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π»Π΅Π³ΠΊΠΎ Π·Π°Π±ΡΡΡ, ΡΡΠΎ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½. ΠΠ»ΠΈ, ΡΡΠΎ Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Python Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Ρ langchain Π½Π° Python 3.9. Ρ Π±ΡΠ»Π° Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄ΠΎ 3.11.5, ΠΈΠ±ΠΎ Π½ΡΠΆΠ½Π°Ρ langchain==0.0.194 Π² 3.9 ΠΏΠΎΠΏΡΠΎΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°.
ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ try β except ΠΌΠ°Π»ΠΎΠΏΠΎΠ»Π΅Π·Π΅Π½. Π‘ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π²ΡΡΡΠ½ΡΡ.
Π’Π΅ ΠΈΠ· Π½Π°Ρ, ΠΊΡΠΎ ΠΏΡΠΈΠ²ΡΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ Π½Π° Π±Π°Π·Π΅ Google Colaboratory / Jupyter Notebook, ΠΏΠΎΠΌΠ½ΡΡ, ΡΡΠΎ Π² ΡΡΠ΅Π΄Ρ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pip Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Python-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π»Π΅Π³ΠΊΠΎ Π·Π°Π±ΡΡΡ, ΡΡΠΎ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½. ΠΠ»ΠΈ, ΡΡΠΎ Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Python Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Ρ langchain Π½Π° Python 3.9. Ρ Π±ΡΠ»Π° Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π΄ΠΎ 3.11.5, ΠΈΠ±ΠΎ Π½ΡΠΆΠ½Π°Ρ langchain==0.0.194 Π² 3.9 ΠΏΠΎΠΏΡΠΎΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°.
ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ try β except ΠΌΠ°Π»ΠΎΠΏΠΎΠ»Π΅Π·Π΅Π½. Π‘ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΡΠΌΡ Π½Π°ΡΠ΅Π·ΠΊΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² Π½Π° Python
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π Python ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ slice ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
βstartβ: Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ 0).
βendβ: ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - Π΄Π»ΠΈΠ½Π° ΡΠΏΠΈΡΠΊΠ°).
βstepβ: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π³Π° ΠΏΡΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ 1).
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π Python ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ slice ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
βstartβ: Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ 0).
βendβ: ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - Π΄Π»ΠΈΠ½Π° ΡΠΏΠΈΡΠΊΠ°).
βstepβ: ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π³Π° ΠΏΡΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΡ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ 1).
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ½Π°Ρ ΡΡΠΈ ΡΠ»ΠΎΠ²Π°, Π²Ρ ΡΡΠ°Π·Ρ ΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ Π³Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Π΄Π°Π²Π°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ + Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ? ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Python ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ. Π’ΠΎΠ³Π΄Π° ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅.
Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ½Π°Ρ ΡΡΠΈ ΡΠ»ΠΎΠ²Π°, Π²Ρ ΡΡΠ°Π·Ρ ΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ Π³Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Π΄Π°Π²Π°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ + Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ? ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Python ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ. Π’ΠΎΠ³Π΄Π° ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ (virtual environment) β Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ.
ΠΠ·ΠΎΠ»ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π΅ Π½Π°Π²ΡΠ΅Π΄ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ requirements.txt ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ΄, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½Π΅Π³ΠΎ ΡΡΠ΅Π΄Π° Π½Π° StackOverflow, ΡΠ°ΡΡΠΎ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠΌΠΈ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, virtualenv ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΡ Β«ΡΠ°Π·Π²Π΅ΡΡΠΈ ΠΏΠΎ ΡΠ³Π»Π°ΠΌΒ».
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ (virtual environment) β Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ.
ΠΠ·ΠΎΠ»ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π΅ Π½Π°Π²ΡΠ΅Π΄ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ requirements.txt ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ΄, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅ΡΠ½Π΅Π³ΠΎ ΡΡΠ΅Π΄Π° Π½Π° StackOverflow, ΡΠ°ΡΡΠΎ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΠΌΠΈ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, virtualenv ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΡ Β«ΡΠ°Π·Π²Π΅ΡΡΠΈ ΠΏΠΎ ΡΠ³Π»Π°ΠΌΒ».
Π£ΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΌΠΈ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΠΈ Π²ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΡΠΌ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΡΠ½ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΠΈ Π²ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΡΠΌ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΡΠ½ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ°Π»ΠΈΠ΄ΠΈΡΡΠΉΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π‘ΡΠΎΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅ΠΆΡΠ°ΠΉΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³ (XSS).
Π‘ΡΠΎΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅ΠΆΡΠ°ΠΉΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³ (XSS).
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ
ΠΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° β ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ i for i in range(10000).
ΠΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° β ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ i for i in range(10000).
%%html
ΠΡΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΡΠ΅ΠΉΠΊΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ HTML. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° Javascript, Perl ΠΈΠ»ΠΈ Ruby! ΠΠΎΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ!
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΡΠ΅Π±Ρ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠ³ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π²Π΅ΡΡΡΠΊΠ° ΡΠΎΡΠΌΡΠ» Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ LaTeX, ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° Markdown. ΠΠ»Ρ ΡΠ°ΠΌΡΡ ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΈΠ· .svg.
ΠΡΡΠ΅Π½Π΄Π΅ΡΠΈΡ ΡΡΠ΅ΠΉΠΊΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ HTML. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° Javascript, Perl ΠΈΠ»ΠΈ Ruby! ΠΠΎΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ!
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΡΠ΅Π±Ρ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠ³ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Π²Π΅ΡΡΡΠΊΠ° ΡΠΎΡΠΌΡΠ» Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ LaTeX, ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° Markdown. ΠΠ»Ρ ΡΠ°ΠΌΡΡ ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΠΈΠ· .svg.
%rerun
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΠ΅ΠΉΠΊΡ. Π ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΡΠ°ΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠΌΠΎΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΎΠΊΡΠ°ΡΠΊΡ (ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½Π°Ρ / Π½Π΅Π³Π°ΡΠΈΠ²Π½Π°Ρ) ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΠ΅ΠΉΠΊΡ. Π ΠΌΠΎΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΡΠ°ΡΡ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠΌΠΎΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΎΠΊΡΠ°ΡΠΊΡ (ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½Π°Ρ / Π½Π΅Π³Π°ΡΠΈΠ²Π½Π°Ρ) ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
dostoevsky
.%pip
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ½Π°Ρ ΡΡΠΈ ΡΠ»ΠΎΠ²Π°, Π²Ρ ΡΡΠ°Π·Ρ ΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ Π³Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Π΄Π°Π²Π°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ + Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ? ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Python ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ. Π’ΠΎΠ³Π΄Π° ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅.
Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ½Π°Ρ ΡΡΠΈ ΡΠ»ΠΎΠ²Π°, Π²Ρ ΡΡΠ°Π·Ρ ΠΊΠ°ΠΆΠΈΡΠ΅ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ Π³Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΡ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°Π΄Π°Π²Π°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ + Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ΅Π» ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ? ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Python ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ. Π’ΠΎΠ³Π΄Π° ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅.
%debug
ΠΠΊΡΠΈΠ²ΠΈΡΡeΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ.
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ: ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° (ΡΠΎΡΠΊΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π°) ΠΈ post-mortem (βΠΏΠΎΡΠΌΠ΅ΡΡΠ½ΠΎβ). ΠΡΠΎΡΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ, Π·Π°ΠΏΡΡΡΠΈΠ²
ΠΠΊΡΠΈΠ²ΠΈΡΡeΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ.
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ: ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° (ΡΠΎΡΠΊΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π°) ΠΈ post-mortem (βΠΏΠΎΡΠΌΠ΅ΡΡΠ½ΠΎβ). ΠΡΠΎΡΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ, Π·Π°ΠΏΡΡΡΠΈΠ²
%debug
Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.%autoawait
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. Π£Π»ΡΡΡΠ°ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΠΈΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ Π·Π°Ρ ΠΎΠ΄ΠΈΡ ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ , Π³Π΄Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°ΡΡΠ΅ΠΉΠΌΠ°.
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. Π£Π»ΡΡΡΠ°ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΠΈΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ Π·Π°Ρ ΠΎΠ΄ΠΈΡ ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ , Π³Π΄Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΊΡΡΠΏΠ½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°ΡΡΠ΅ΠΉΠΌΠ°.
%%capture
CΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅, Π³Π΄Π΅ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: ΡΠ²ΠΎΠ΄ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠ°ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊ ΡΡΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΡΡΡ.
CΠΊΡΡΠ²Π°Π΅Ρ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅, Π³Π΄Π΅ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: ΡΠ²ΠΎΠ΄ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠ°ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊ ΡΡΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΡΡΡ.
%%time
ΠΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΡΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΠΈΠΊΠ» for Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ Π½Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ (enumeration). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ
ΠΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΡΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΠ°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΠΈΠΊΠ» for Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ Π½Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ (enumeration). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ
%%time
, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΡΠΎΡΡ Π² ΠΎΠ±ΡΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.%lsmagic
Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π΄ΡΠ°Π³ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΌΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ β Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΏΡΡΡΠΈΠ²
Magic Commands β ΡΡΠΎ ΡΠ°ΡΡΡ IPython, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ΄Π° ΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π’Π΅, ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° β%β, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π΄ΡΡΠ³ΠΈΠ΅ β ΠΊΠΎ Π²ΡΠ΅ΠΉ ΡΡΠ΅ΠΉΠΊΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ βΠΊΠΎΠ»Π°Π±ΠΈΡΡΡβ ΠΌΡΠ΄ΠΆΠΈΠΊΠΈ.
Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π΄ΡΠ°Π³ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΌΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ β Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ°ΠΏΡΡΡΠΈΠ²
%lsmagic
, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.Magic Commands β ΡΡΠΎ ΡΠ°ΡΡΡ IPython, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ΄Π° ΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π’Π΅, ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° β%β, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, Π΄ΡΡΠ³ΠΈΠ΅ β ΠΊΠΎ Π²ΡΠ΅ΠΉ ΡΡΠ΅ΠΉΠΊΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ βΠΊΠΎΠ»Π°Π±ΠΈΡΡΡβ ΠΌΡΠ΄ΠΆΠΈΠΊΠΈ.
Π§ΡΠ΅Π½ΠΈΠ΅ TOML-ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ²
ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΡΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° Π·Π°ΠΌΠ΅Π½Ρ JSON Π²Π²ΠΈΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ βΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈβ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π―Π Π·Π°ΡΠ΅Π»ΠΈΠ·ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΡΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° Π·Π°ΠΌΠ΅Π½Ρ JSON Π²Π²ΠΈΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ βΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈβ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π―Π Π·Π°ΡΠ΅Π»ΠΈΠ·ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².