рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

Python рдореЗрдВ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ: рдПрдХ рд╢реБрд░реБрдЖрддреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

рд╣рдорд╛рд░реЗ рд╡реНрдпрд╛рдкрдХ Python рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ (TDD) рдореЗрдВ рдбреБрдмрдХреА рд▓рдЧрд╛рдПрдБред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдордЬрдмреВрдд рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╕реАрдЦреЗрдВред
┬╖ 7 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдЖрдкрдХреЛ рдпрд╣ рднрд░реЛрд╕рд╛ рджреЗрддреА рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ (TTD) рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рд╕реАрдЦреЗрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ тАУ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдкрд╣рд▓реЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рдХреНрдпреЛрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдПрдХ рдЯреЗрд╕реНрдЯ-рдлрд░реНрд╕реНрдЯ рдЕрдкреНрд░реЛрдЪ рдЕрдкрдирд╛рдПрдБрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рдирд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдлреЗрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗред

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Python рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ Python рдЬреНрдЮрд╛рди рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдХреЛрд░реНрд╕ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: Introduction to Python for Developers.

рдПрдХ рдЯреЗрд╕реНрдЯ-рдлрд░реНрд╕реНрдЯ рдЕрдкреНрд░реЛрдЪ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред рдЖрдк Python рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ pytest рдФрд░ unnitestред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдо Native Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рд▓ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ, рдЬреЛ рдпрд╣ рдорд╛рдиреНрдп рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рдирд▓рд┐рдЯреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджреЗрддреА рд╣реИред

рд╣рдо рдПрдХ рд╕рд░рд▓ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдврд╝рд╛рдПрдБрдЧреЗ, рд╣рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдмрдЧреНрд╕ рдпрд╛ рдХрдорд┐рдпрд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред Python рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ рдпрд╣реА рдХреНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ: рдФрд░ рдЙрдиреНрдирдд рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдирд╛, рдЙрдиреНрд╣реЗрдВ рдлреЗрд▓ рд╣реЛрддреЗ рджреЗрдЦрдирд╛, рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЬрд╛рдХрд░ рдЕрдкрдиреЗ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ред

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рд╣рдо DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ DataCamp рдХрд╛ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдиреЛрдЯрдмреБрдХ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рдмрд┐рдирд╛ рдХреЛрдИ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП Python рдХреЛрдб рд▓рд┐рдЦ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рд╢реБрд░реВ рдХрд░реЗрдВ!

DataLab рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд

рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ DataLab рдХреЛ рджреЗрдЦрдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рд╕реАрдЦрдиреЗ рдХреА рдпрд╛рддреНрд░рд╛ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗред рдпрджрд┐ рдЖрдк DataLab рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо DataLab рдореЗрдВ Python рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред

image5.png

рдпрджрд┐ рдЖрдк Python рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдХрдмреБрдХ рдЖрдкрдХреЗ рд▓рд┐рдП Python рд▓рд┐рдЦрдиреЗ рд╣реЗрддреБ рдПрдХ рдХреЛрдбрд┐рдВрдЧ рд╕реЗрд▓ рдЦреЛрд▓ рджреЗрдЧреАред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

image4.png

рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рд╕реАрдЦрдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╛ рдиреЛрдЯреНрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдпрд╛ рдЕрдЯрдХрдиреЗ рдкрд░ AI рдХреА рдорджрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдЬрд┐рддрдиреЗ рдЪрд╛рд╣реЗрдВ рд╕реЗрд▓ рдЬреЛрдбрд╝ рдпрд╛ рд╣рдЯрд╛ рднреА рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо "Run" рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рд╕реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдИ рднреА рдЖрдЙрдЯрдкреБрдЯ рдиреАрдЪреЗ рд▓реЙрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рддреНрд╡рд░рд┐рдд рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдиреЗ рдХрдИ рд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд▓ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╣рд░ рд╕реЗрд▓ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпрд╛ рдкреВрд░реЗ рд╡рд░реНрдХрдмреБрдХ рдХреЛ (рдЕрдкрдиреЗ рд╡рд░реНрдХрдмреБрдХ рдХреЗ рдКрдкрд░ рджрд╛рдИрдВ рдУрд░ "Run" рдмрдЯрди рд╕реЗ) рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред

image7.png

рдЕрдм рдЬрдм рд╣рдордиреЗ DataLab рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рд╕рдордЭ рд▓реА рд╣реИрдВ, рддреЛ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред

рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ

рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХреЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВред TTD рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ рдХрд┐ 1 + 1, 2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЖрдк рдЗрд╕реЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ Native Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

assert 1 + 1 == 2

Python рдореЗрдВ assert рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдиреЗ рдФрд░ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╢рд░реНрддреЗрдВ True рдкрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ assert рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдлреЗрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ AssertionError рдЙрдард╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ DataLab рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

image1.png

рдЙрджрд╛рд╣рд░рдг 1: рдПрдХ рд╕рд░рд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг

рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, DataLab рдореЗрдВ рдПрдХ Python рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдлреЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рддреЛ, рдЖрдЗрдП рдПрдХ рдлреЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо add() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдЕрднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

assert add(1, 1) == 2

рдЗрд╕рд╕реЗ NameError рдорд┐рд▓реЗрдЧрд╛, рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ "рд░реЗрдб" рд╕реНрдЯреЗрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддрдм NameError рдорд┐рд▓рддрд╛ рд╣реИред

image3.png

рдЕрдм, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

def add(num1, num2):
    return

рд╣рдордиреЗ рдЕрдкрдирд╛ рдлрд╝рдВрдХреНрд╢рди add рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЬреЛ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ num1 рдФрд░ num2 рд▓реЗрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рдХрд░рддрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ!

image6.png

рдЕрдм рд╣рдореЗрдВ NameError рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИ! рдЗрд╕ рдмрд╛рд░ рдпрд╣ AssertionError рд╣реИред рдпрд╛рдиреА рд╣рдорд╛рд░рд╛ рдЯреЗрд╕реНрдЯ рдЕрдм рднреА рдлреЗрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ! рд╣рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдорд┐рд▓ рд░рд╣реА рд╣реЛ рд╕рдХрддреА рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрднреА рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рдХрд░рддрд╛ред

рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ AssertionError рдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдЦрд╛рд▓реА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ 1 + 1, 2 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЕрдВрддрддрдГ, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд╣реА рд▓реЙрдЬрд┐рдХ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред

image9.png

рдЖрдк рд╕реЗрд▓ рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рд╣рд░рд╛ рдбреЙрдЯ рджреЗрдЦреЗрдВрдЧреЗред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рд╡реИрдз рд╣реИ рдФрд░ рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд░рди рдПрд░рд░ рдХреЗ рд╕рд╛рде рд▓рд╛рд▓ рдерд╛ рдФрд░ рд╕реЗрд▓ рдХреЗ рдиреАрдЪреЗ рдПрд░рд░ рдЯрд╛рдЗрдк рджрд┐рдЦрд╛ рд░рд╣рд╛ рдерд╛ред DataLab рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд╝реАрдЪрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдЖрдкрдиреЗ рдЕрдм Python рдореЗрдВ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦ рд▓рд┐рдпрд╛ рд╣реИред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рджреЗрдиреЗ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдкрд░ рдмрдврд╝реЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлреЗрд▓ рдХрд░рд╛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗ рд╕рдХрддреАрдВред

рдЙрджрд╛рд╣рд░рдг 2: рдмрд╣реБ рдЯреЗрд╕реНрдЯ рдХреЗрд╕

рд╕рд┐рд░реНрдл рдПрдХ рдЗрдирдкреБрдЯ рд╡реИрд▓реНрдпреВ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ рдЕрдХреНрд╕рд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рдЖрддреАрдВред рдмрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ рдЫрд┐рдк рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдмрджрд▓рддреЗ рдпреВрдЬрд╝рд░ рдЗрдирдкреБрдЯ рдпрд╛ рдмрд╛рд╣рд░реА рд▓реЙрдЬрд┐рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рддреЛ, рд╣рдо рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрдИ рдорд╛рдиреЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдк Python рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдмреЗрд╕рд┐рдХ Python рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред рдкрд╣рд▓реЗ, рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдбрд┐рдХреНрд╢рдирд░реАрдЬрд╝ рдХреА рдПрдХ рд╕реВрдЪреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВрдБрдЧрд╛:

test_cases = [
    {"num1": 1, "num2": 3, "expected": 4},
    {"num1": 1, "num2": "invalid", "expected": "Error: num2 must be a number"}, 
    {"num1": [1,2,3], "num2": 2, "expected": "Error: num1 must be a number"},
    {"num1": -1, "num2": 1, "expected": 0},
    {"num1": 3.5, "num2": 2.5, "expected": 6.0}, 
    {"num1": 100, "num2": 200, "expected": 300}
]

рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЛ рдЗрди рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдкрд░ рдЗрдЯрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо for рд▓реВрдк рдХреЗ рднреАрддрд░ assert рд░рдЦрдХрд░ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╡реИрд▓рд┐рдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

for test in test_cases:
    assert add(test["num1"], test["num2"]) == test["expected"]

рдЪреВрдБрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рдХреНрдпрд╛ рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рд╣реЛрдЧрд╛ рдпрд╛ рдлреЗрд▓? рдФрд░ рдХреМрди рд╕реА рддреНрд░реБрдЯрд┐ рдЖ рд╕рдХрддреА рд╣реИ?

image8.png

рдЯреЗрд╕реНрдЯ рдореЗрдВ TypeError рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдиреЙрди-рдирдВрдмрд░ рдЗрдирдкреБрдЯреНрд╕ рдХреЛ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ; рдпрджрд┐ int рдХреА рдЬрдЧрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдмреВрд▓рд┐рдпрди рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд╣рдо рдЗрдирдкреБрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ integer рдпрд╛ float рд╣реЛрдиреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдЕрд╡реИрдз рдЯрд╛рдЗрдк рдкрд░ рдПрдХ рдХрд╕реНрдЯрдо рд╕рдВрджреЗрд╢ рд░рд┐рдЯрд░реНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

def add(num1, num2):
    if type(num1) is not int and type(num1) is not float:
        return "Error: num1 must be a number"
    elif type(num2) is not int and type(num2) is not float:
        return "Error: num2 must be a number"
    else:
        return num1 + num2

рдЬрдм рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдм рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА, рдпрд╛рдиреА рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рд╣реЛ рдЧрдП рд╣реИрдВред рдЕрдм рд╣рдо рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдм рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реБрдП рдХреБрдЫ рдЯреЗрд╕реНрдЯ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░ рд▓рд┐рдП рд╣реИрдВред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛!

image2.png

рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Python рдореЗрдВ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХрд╡рд░ рдХреАрдВред DataLab рдПрдХ рдХреНрд▓рд╛рдЙрдб IDE рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд┐рдирд╛ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ Python рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рджреЗрддрд╛ рд╣реИред рдЯреЗрд╕реНрдЯ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВред Assert рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╢рд░реНрддреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлреЗрд▓ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рдЙрдард╛рддреЗ рд╣реИрдВред

рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рддрд▓рд╛рд╢ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ DataLab рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдпрджрд┐ рдЖрдк Python рдореЗрдВ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ DataCamp рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВ - Introduction to Testing in Python.

Amina Edmunds

рд▓реЗрдЦрдХ

Amina Edmunds

рдЕрдореАрдирд╛ Datacamp рдореЗрдВ рдХрдВрдЯреЗрдВрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЗрдВрдЯрд░реНрди рд╣реИрдВред рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рд╢рд┐рдХреНрд╖рд╛ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд░рд┐рдпрд░ рдмрджрд▓рдХрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЕрдкрдирд╛рдпрд╛, рдЬрд┐рд╕рдХреА рд╢реБрд░реБрдЖрдд JavaScript рд╕реЗ рдХреА; рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд╣ Python рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВред

рд╡рд┐рд╖рдп