рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдЖрдкрдХреЛ рдпрд╣ рднрд░реЛрд╕рд╛ рджреЗрддреА рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ (TTD) рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рд╕реАрдЦреЗрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ тАУ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдкрд╣рд▓реЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рдХреНрдпреЛрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдПрдХ рдЯреЗрд╕реНрдЯ-рдлрд░реНрд╕реНрдЯ рдЕрдкреНрд░реЛрдЪ рдЕрдкрдирд╛рдПрдБрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рдирд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдлреЗрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Python рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ Python рдЬреНрдЮрд╛рди рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдХреЛрд░реНрд╕ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: Introduction to Python for Developers.
рдПрдХ рдЯреЗрд╕реНрдЯ-рдлрд░реНрд╕реНрдЯ рдЕрдкреНрд░реЛрдЪ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред рдЖрдк Python рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ pytest рдФрд░ unnitest ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдо Native Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рд▓ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ, рдЬреЛ рдпрд╣ рдорд╛рдиреНрдп рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рдирд▓рд┐рдЯреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджреЗрддреА рд╣реИред
рд╣рдо рдПрдХ рд╕рд░рд▓ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдврд╝рд╛рдПрдБрдЧреЗ, рд╣рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдмрдЧреНрд╕ рдпрд╛ рдХрдорд┐рдпрд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред Python рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ рдпрд╣реА рдХреНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ: рдФрд░ рдЙрдиреНрдирдд рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдирд╛, рдЙрдиреНрд╣реЗрдВ рдлреЗрд▓ рд╣реЛрддреЗ рджреЗрдЦрдирд╛, рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЬрд╛рдХрд░ рдЕрдкрдиреЗ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рд╣рдо DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ DataCamp рдХрд╛ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдиреЛрдЯрдмреБрдХ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рдмрд┐рдирд╛ рдХреЛрдИ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП Python рдХреЛрдб рд▓рд┐рдЦ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рд╢реБрд░реВ рдХрд░реЗрдВ!
DataLab рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд
рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ DataLab рдХреЛ рджреЗрдЦрдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рд╕реАрдЦрдиреЗ рдХреА рдпрд╛рддреНрд░рд╛ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗред рдпрджрд┐ рдЖрдк DataLab рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо DataLab рдореЗрдВ Python рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдпрджрд┐ рдЖрдк Python рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдХрдмреБрдХ рдЖрдкрдХреЗ рд▓рд┐рдП Python рд▓рд┐рдЦрдиреЗ рд╣реЗрддреБ рдПрдХ рдХреЛрдбрд┐рдВрдЧ рд╕реЗрд▓ рдЦреЛрд▓ рджреЗрдЧреАред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рд╕реАрдЦрдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╛ рдиреЛрдЯреНрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдпрд╛ рдЕрдЯрдХрдиреЗ рдкрд░ AI рдХреА рдорджрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдЬрд┐рддрдиреЗ рдЪрд╛рд╣реЗрдВ рд╕реЗрд▓ рдЬреЛрдбрд╝ рдпрд╛ рд╣рдЯрд╛ рднреА рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо "Run" рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рд╕реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдИ рднреА рдЖрдЙрдЯрдкреБрдЯ рдиреАрдЪреЗ рд▓реЙрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рддреНрд╡рд░рд┐рдд рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдиреЗ рдХрдИ рд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд▓ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╣рд░ рд╕реЗрд▓ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпрд╛ рдкреВрд░реЗ рд╡рд░реНрдХрдмреБрдХ рдХреЛ (рдЕрдкрдиреЗ рд╡рд░реНрдХрдмреБрдХ рдХреЗ рдКрдкрд░ рджрд╛рдИрдВ рдУрд░ "Run" рдмрдЯрди рд╕реЗ) рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдм рдЬрдм рд╣рдордиреЗ DataLab рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рд╕рдордЭ рд▓реА рд╣реИрдВ, рддреЛ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ
рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХреЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВред TTD рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ рдХрд┐ 1 + 1, 2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЖрдк рдЗрд╕реЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ Native Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
assert 1 + 1 == 2 рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Python рдореЗрдВ assert рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдиреЗ рдФрд░ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╢рд░реНрддреЗрдВ True рдкрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рдЬрдм рдХреЛрдИ assert рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдлреЗрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ AssertionError рдЙрдард╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ DataLab рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
рдЙрджрд╛рд╣рд░рдг 1: рдПрдХ рд╕рд░рд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, DataLab рдореЗрдВ рдПрдХ Python рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдлреЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рддреЛ, рдЖрдЗрдП рдПрдХ рдлреЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо add() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдЕрднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
assert add( 1 , 1 ) == 2
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЗрд╕рд╕реЗ NameError рдорд┐рд▓реЗрдЧрд╛, рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ "рд░реЗрдб" рд╕реНрдЯреЗрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддрдм NameError рдорд┐рд▓рддрд╛ рд╣реИред
рдЕрдм, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
def add(num1, num2):
returnрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рдордиреЗ рдЕрдкрдирд╛ рдлрд╝рдВрдХреНрд╢рди add рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЬреЛ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ num1 рдФрд░ num2 рд▓реЗрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рдХрд░рддрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ!
рдЕрдм рд╣рдореЗрдВ NameError рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИ! рдЗрд╕ рдмрд╛рд░ рдпрд╣ AssertionError рд╣реИред рдпрд╛рдиреА рд╣рдорд╛рд░рд╛ рдЯреЗрд╕реНрдЯ рдЕрдм рднреА рдлреЗрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ! рд╣рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдорд┐рд▓ рд░рд╣реА рд╣реЛ рд╕рдХрддреА рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрднреА рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рдХрд░рддрд╛ред
рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ AssertionError рдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдЦрд╛рд▓реА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ 1 + 1, 2 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЕрдВрддрддрдГ, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд╣реА рд▓реЙрдЬрд┐рдХ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рд╕реЗрд▓ рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рд╣рд░рд╛ рдбреЙрдЯ рджреЗрдЦреЗрдВрдЧреЗред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рд╡реИрдз рд╣реИ рдФрд░ рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд░рди рдПрд░рд░ рдХреЗ рд╕рд╛рде рд▓рд╛рд▓ рдерд╛ рдФрд░ рд╕реЗрд▓ рдХреЗ рдиреАрдЪреЗ рдПрд░рд░ рдЯрд╛рдЗрдк рджрд┐рдЦрд╛ рд░рд╣рд╛ рдерд╛ред 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"]рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЪреВрдБрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рдХреНрдпрд╛ рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рд╣реЛрдЧрд╛ рдпрд╛ рдлреЗрд▓? рдФрд░ рдХреМрди рд╕реА рддреНрд░реБрдЯрд┐ рдЖ рд╕рдХрддреА рд╣реИ?
рдЯреЗрд╕реНрдЯ рдореЗрдВ 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рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЬрдм рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдм рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА, рдпрд╛рдиреА рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рд╣реЛ рдЧрдП рд╣реИрдВред рдЕрдм рд╣рдо рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдм рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реБрдП рдХреБрдЫ рдЯреЗрд╕реНрдЯ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░ рд▓рд┐рдП рд╣реИрдВред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛!
рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Python рдореЗрдВ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХрд╡рд░ рдХреАрдВред DataLab рдПрдХ рдХреНрд▓рд╛рдЙрдб IDE рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд┐рдирд╛ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ Python рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рджреЗрддрд╛ рд╣реИред рдЯреЗрд╕реНрдЯ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВред Assert рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╢рд░реНрддреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлреЗрд▓ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рдЙрдард╛рддреЗ рд╣реИрдВред
рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рддрд▓рд╛рд╢ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ DataLab рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдпрджрд┐ рдЖрдк Python рдореЗрдВ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ DataCamp рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВ - Introduction to Testing in Python .
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдЖрдкрдХреЛ рдпрд╣ рднрд░реЛрд╕рд╛ рджреЗрддреА рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ (TTD) рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рд╕реАрдЦреЗрдВрдЧреЗред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдо рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ тАУ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдкрд╣рд▓реЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рдХреНрдпреЛрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдПрдХ рдЯреЗрд╕реНрдЯ-рдлрд░реНрд╕реНрдЯ рдЕрдкреНрд░реЛрдЪ рдЕрдкрдирд╛рдПрдБрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рдирд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдлреЗрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Python рдХреА рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ Python рдЬреНрдЮрд╛рди рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдХреЛрд░реНрд╕ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: Introduction to Python for Developers.
рдПрдХ рдЯреЗрд╕реНрдЯ-рдлрд░реНрд╕реНрдЯ рдЕрдкреНрд░реЛрдЪ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред рдЖрдк Python рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ pytest рдФрд░ unnitestред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдо Native Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рд▓ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ, рдЬреЛ рдпрд╣ рдорд╛рдиреНрдп рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рдирд▓рд┐рдЯреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджреЗрддреА рд╣реИред
рд╣рдо рдПрдХ рд╕рд░рд▓ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдврд╝рд╛рдПрдБрдЧреЗ, рд╣рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдмрдЧреНрд╕ рдпрд╛ рдХрдорд┐рдпрд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реБрдзрд╛рд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред Python рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рдореВрд▓ рдореЗрдВ рдпрд╣реА рдХреНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ: рдФрд░ рдЙрдиреНрдирдд рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдирд╛, рдЙрдиреНрд╣реЗрдВ рдлреЗрд▓ рд╣реЛрддреЗ рджреЗрдЦрдирд╛, рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЬрд╛рдХрд░ рдЕрдкрдиреЗ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рд╣рдо DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ DataCamp рдХрд╛ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдиреЛрдЯрдмреБрдХ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рдмрд┐рдирд╛ рдХреЛрдИ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП Python рдХреЛрдб рд▓рд┐рдЦ рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рд╢реБрд░реВ рдХрд░реЗрдВ!
DataLab рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд
рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ DataLab рдХреЛ рджреЗрдЦрдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рд╕реАрдЦрдиреЗ рдХреА рдпрд╛рддреНрд░рд╛ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗред рдпрджрд┐ рдЖрдк DataLab рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо DataLab рдореЗрдВ Python рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдпрджрд┐ рдЖрдк Python рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдХрдмреБрдХ рдЖрдкрдХреЗ рд▓рд┐рдП Python рд▓рд┐рдЦрдиреЗ рд╣реЗрддреБ рдПрдХ рдХреЛрдбрд┐рдВрдЧ рд╕реЗрд▓ рдЦреЛрд▓ рджреЗрдЧреАред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рд╕реАрдЦрдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╛ рдиреЛрдЯреНрд╕ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдпрд╛ рдЕрдЯрдХрдиреЗ рдкрд░ AI рдХреА рдорджрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд╕рд╛рд░ рдЬрд┐рддрдиреЗ рдЪрд╛рд╣реЗрдВ рд╕реЗрд▓ рдЬреЛрдбрд╝ рдпрд╛ рд╣рдЯрд╛ рднреА рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо "Run" рд╡рд┐рдХрд▓реНрдк рд╕реЗ рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рд╕реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдИ рднреА рдЖрдЙрдЯрдкреБрдЯ рдиреАрдЪреЗ рд▓реЙрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рддреНрд╡рд░рд┐рдд рдиреЛрдЯ: рдпрджрд┐ рдЖрдкрдиреЗ рдХрдИ рд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд▓ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╣рд░ рд╕реЗрд▓ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпрд╛ рдкреВрд░реЗ рд╡рд░реНрдХрдмреБрдХ рдХреЛ (рдЕрдкрдиреЗ рд╡рд░реНрдХрдмреБрдХ рдХреЗ рдКрдкрд░ рджрд╛рдИрдВ рдУрд░ "Run" рдмрдЯрди рд╕реЗ) рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдм рдЬрдм рд╣рдордиреЗ DataLab рдХреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЗрдВ рд╕рдордЭ рд▓реА рд╣реИрдВ, рддреЛ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВред
рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ
рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХреЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВред TTD рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ рдХрд┐ 1 + 1, 2 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЖрдк рдЗрд╕реЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ Native Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Python рдореЗрдВ
assertрдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд▓рд┐рдЦрдиреЗ рдФрд░ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╢рд░реНрддреЗрдВ True рдкрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рдЬрдм рдХреЛрдИassertрд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдлреЗрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХAssertionErrorрдЙрдард╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ DataLab рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:рдЙрджрд╛рд╣рд░рдг 1: рдПрдХ рд╕рд░рд▓ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, DataLab рдореЗрдВ рдПрдХ Python рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдлреЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рддреЛ, рдЖрдЗрдП рдПрдХ рдлреЗрд▓рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо add() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдЕрднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд╕реЗ
NameErrorрдорд┐рд▓реЗрдЧрд╛, рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ "рд░реЗрдб" рд╕реНрдЯреЗрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддрдмNameErrorрдорд┐рд▓рддрд╛ рд╣реИредрдЕрдм, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╣рдордиреЗ рдЕрдкрдирд╛ рдлрд╝рдВрдХреНрд╢рди
addрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЬреЛ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░num1рдФрд░num2рд▓реЗрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рдХрд░рддрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ!рдЕрдм рд╣рдореЗрдВ
NameErrorрдирд╣реАрдВ рджрд┐рдЦрддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрддреА рд╣реИ! рдЗрд╕ рдмрд╛рд░ рдпрд╣AssertionErrorрд╣реИред рдпрд╛рдиреА рд╣рдорд╛рд░рд╛ рдЯреЗрд╕реНрдЯ рдЕрдм рднреА рдлреЗрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ! рд╣рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдорд┐рд▓ рд░рд╣реА рд╣реЛ рд╕рдХрддреА рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрднреА рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рдХрд░рддрд╛редрдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣рдореЗрдВ
AssertionErrorрдорд┐рд▓рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдЦрд╛рд▓реА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ 1 + 1, 2 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЕрдВрддрддрдГ, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд╣реА рд▓реЙрдЬрд┐рдХ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рд╛ рд╕рдХрддреЗ рд╣реИрдВредрдЖрдк рд╕реЗрд▓ рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рд╣рд░рд╛ рдбреЙрдЯ рджреЗрдЦреЗрдВрдЧреЗред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рд╡реИрдз рд╣реИ рдФрд░ рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд░рди рдПрд░рд░ рдХреЗ рд╕рд╛рде рд▓рд╛рд▓ рдерд╛ рдФрд░ рд╕реЗрд▓ рдХреЗ рдиреАрдЪреЗ рдПрд░рд░ рдЯрд╛рдЗрдк рджрд┐рдЦрд╛ рд░рд╣рд╛ рдерд╛ред DataLab рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдлрд╝реАрдЪрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЖрдкрдиреЗ рдЕрдм Python рдореЗрдВ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦ рд▓рд┐рдпрд╛ рд╣реИред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рджреЗрдиреЗ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдкрд░ рдмрдврд╝реЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлреЗрд▓ рдХрд░рд╛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗ рд╕рдХрддреАрдВред
рдЙрджрд╛рд╣рд░рдг 2: рдмрд╣реБ рдЯреЗрд╕реНрдЯ рдХреЗрд╕
рд╕рд┐рд░реНрдл рдПрдХ рдЗрдирдкреБрдЯ рд╡реИрд▓реНрдпреВ рдХреЗ рд╕рд╛рде рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ рдЕрдХреНрд╕рд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╕рд╛рдордиреЗ рдирд╣реАрдВ рдЖрддреАрдВред рдмрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ рдЫрд┐рдк рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдмрджрд▓рддреЗ рдпреВрдЬрд╝рд░ рдЗрдирдкреБрдЯ рдпрд╛ рдмрд╛рд╣рд░реА рд▓реЙрдЬрд┐рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рддреЛ, рд╣рдо рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрдИ рдорд╛рдиреЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдк Python рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдмреЗрд╕рд┐рдХ Python рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред рдкрд╣рд▓реЗ, рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдбрд┐рдХреНрд╢рдирд░реАрдЬрд╝ рдХреА рдПрдХ рд╕реВрдЪреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВрдБрдЧрд╛:
рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреЛ рдЗрди рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдкрд░ рдЗрдЯрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо for рд▓реВрдк рдХреЗ рднреАрддрд░ assert рд░рдЦрдХрд░ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╡реИрд▓рд┐рдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪреВрдБрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рдХреНрдпрд╛ рд╣рдо рдЙрдореНрдореАрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рд╣реЛрдЧрд╛ рдпрд╛ рдлреЗрд▓? рдФрд░ рдХреМрди рд╕реА рддреНрд░реБрдЯрд┐ рдЖ рд╕рдХрддреА рд╣реИ?
рдЯреЗрд╕реНрдЯ рдореЗрдВ
TypeErrorрдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдиреЙрди-рдирдВрдмрд░ рдЗрдирдкреБрдЯреНрд╕ рдХреЛ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ; рдпрджрд┐ int рдХреА рдЬрдЧрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдмреВрд▓рд┐рдпрди рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд╣рдо рдЗрдирдкреБрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ integer рдпрд╛ float рд╣реЛрдиреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдХреЗ рдЕрд╡реИрдз рдЯрд╛рдЗрдк рдкрд░ рдПрдХ рдХрд╕реНрдЯрдо рд╕рдВрджреЗрд╢ рд░рд┐рдЯрд░реНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдЬрдм рд╣рдо рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдм рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА, рдпрд╛рдиреА рд╣рдорд╛рд░реЗ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рд╣реЛ рдЧрдП рд╣реИрдВред рдЕрдм рд╣рдо рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдм рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реБрдП рдХреБрдЫ рдЯреЗрд╕реНрдЯ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯ рдХрд░ рд▓рд┐рдП рд╣реИрдВред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛!
рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Python рдореЗрдВ рдЯреЗрд╕реНрдЯ-рдбреНрд░рд┐рд╡рди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХрд╡рд░ рдХреАрдВред DataLab рдПрдХ рдХреНрд▓рд╛рдЙрдб IDE рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд┐рдирд╛ рд▓реЛрдХрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ Python рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рджреЗрддрд╛ рд╣реИред рдЯреЗрд╕реНрдЯ рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВред Assert рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╢рд░реНрддреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлреЗрд▓ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рдЙрдард╛рддреЗ рд╣реИрдВред
рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рддрд▓рд╛рд╢ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ DataLab рдореЗрдВ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдпрджрд┐ рдЖрдк Python рдореЗрдВ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ DataCamp рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВ - Introduction to Testing in Python.