Как отлаживать в Python, не сойдя с ума

–í—ã —Ö–æ—Ä–æ—à–æ —Å–µ–±—è —á—É–≤—Å—Ç–≤—É–µ—Ç–µ. –í—ã –∏–∑—É—á–∞–ª–∏ Python –∏, –Ω–∞–∫–æ–Ω–µ—Ü, –¥–æ—Å—Ç–∞—Ç–æ—á–Ω–æ –æ—Å–≤–æ–∏–ª–∏—Å—å —Å–æ —Å–≤–æ–∏–º–∏ –Ω–∞–≤—ã–∫–∞–º–∏, —á—Ç–æ–±—ã —Å–æ—Å—Ç–∞–≤–∏—Ç—å –ø–æ–ª–Ω–æ—Ü–µ–Ω–Ω—É—é –ø—Ä–æ–≥—Ä–∞–º–º—É. –≠—Ç–æ –±—ã–ª–∞ –±–æ–ª—å—à–∞—è —Ä–∞–±–æ—Ç–∞, –Ω–æ –≤—ã —Å–æ–±—Ä–∞–ª–∏ –∫–æ–¥ –∏ –Ω–∞–ø–∏—Å–∞–ª–∏ –ø—Ä–∏–ª–æ–∂–µ–Ω–∏–µ. –ò & hellip; —ç—Ç–æ –Ω–µ —Ä–∞–±–æ—Ç–∞–µ—Ç. –°–ª–æ–º–∞–Ω–Ω—ã–π –∫–æ–¥ - —ç—Ç–æ –ø–µ—Å–Ω—è, –∫–æ—Ç–æ—Ä—É—é –∫–∞–∂–¥—ã–π –ø—Ä–æ–≥—Ä–∞–º–º–∏—Å—Ç –º–æ–∂–µ—Ç —Å–ø–µ—Ç—å –Ω–∞–∏–∑—É—Å—Ç—å, –∏ —ç—Ç–æ –±–æ–ª—å—à–∞—è —á–∞—Å—Ç—å –ø—Ä–æ—Ü–µ—Å—Å–∞ —Ä–∞–∑—Ä–∞–±–æ—Ç–∫–∏. –û–±—É—á–µ–Ω–∏–µ –æ—Ç–ª–∞–¥–∫–µ –≤ Python –∏–º–µ–µ—Ç —Ä–µ—à–∞—é—â–µ–µ –∑–Ω–∞—á–µ–Ω–∏–µ –¥–ª—è –ø–æ–≤—ã—à–µ–Ω–∏—è –≤–∞—à–∏—Ö –Ω–∞–≤—ã–∫–æ–≤ –∏ –¥–æ—Å—Ç–∏–∂–µ–Ω–∏—è —É—Å–ø–µ—Ö–∞.

–ú—ã —Å–æ–±—Ä–∞–ª–∏ –Ω–µ—Å–∫–æ–ª—å–∫–æ –≤–∞–∂–Ω—ã—Ö —Å–æ–≤–µ—Ç–æ–≤, –∫–æ—Ç–æ—Ä—ã–µ –ø–æ–º–æ–≥—É—Ç –≤–∞–º –≤ –ø—Ä–æ—Ü–µ—Å—Å–µ –æ—Ç–ª–∞–¥–∫–∏ Python. –í —ç—Ç–æ–º —Ä—É–∫–æ–≤–æ–¥—Å—Ç–≤–µ –º—ã –¥–∞–µ–º –≤–∞–º –∏–Ω—Å—Ç—Ä—É–º–µ–Ω—Ç—ã, –∫–æ—Ç–æ—Ä—ã–µ –ø–æ–º–æ–≥—É—Ç –≤–∞–º –ø—Ä–µ–≤—Ä–∞—Ç–∏—Ç—å –æ—Ç–ª–∞–¥–∫—É –∏–∑ —É—Ç–æ–º–∏—Ç–µ–ª—å–Ω–æ–π —Ä–∞–±–æ—Ç—ã –≤ –∫–æ–º–ø–ª–µ–∫—Å–Ω—ã–π –Ω–∞–±–æ—Ä –Ω–∞–≤—ã–∫–æ–≤, –∫–æ—Ç–æ—Ä—ã–π —Å–¥–µ–ª–∞–µ—Ç –≤–∞—Å —ç—Ñ—Ñ–µ–∫—Ç–∏–≤–Ω—ã–º –ø—Ä–æ–≥—Ä–∞–º–º–∏—Å—Ç–æ–º. –ú—ã –ø–æ–∫–∞–∂–µ–º –≤–∞–º, –∫–∞–∫ –ø–æ–ª—É—á–∏—Ç—å –º–∞–∫—Å–∏–º–∞–ª—å–Ω—É—é –æ—Ç–¥–∞—á—É –æ—Ç –º–æ—â–Ω—ã—Ö –∫–æ–º–∞–Ω–¥ –æ—Ç–ª–∞–¥–∫–∏ Python, –∏ –¥–∞–¥–∏–º –Ω–µ—Å–∫–æ–ª—å–∫–æ –∫–ª—é—á–µ–≤—ã—Ö —Ä–µ–∫–æ–º–µ–Ω–¥–∞—Ü–∏–π –ø–æ –ø–µ—Ä–µ–¥–æ–≤—ã–º –º–µ—Ç–æ–¥–∞–º –æ–ø—Ç–∏–º–∏–∑–∞—Ü–∏–∏ –ø—Ä–æ—Ü–µ—Å—Å–∞ –∏—Å–ø—Ä–∞–≤–ª–µ–Ω–∏—è –∫–æ–¥–∞. –° –Ω–∞—à–µ–π –ø–æ–º–æ—â—å—é –≤—ã —Å–∫–æ—Ä–æ –±—É–¥–µ—Ç–µ –∏—Å–ø—Ä–∞–≤–ª—è—Ç—å –æ—à–∏–±–∫–∏ —Å –ø–æ–º–æ—â—å—é –ª—É—á—à–∏—Ö –∏–∑ –Ω–∏—Ö!

–ó–Ω–∞–π—Ç–µ —Å–≤–æ–∏ –∫–æ–º–∞–Ω–¥—ã –æ—Ç–ª–∞–¥–∫–∏ Python

–ü—Ä–µ–∏–º—É—â–µ—Å—Ç–≤–æ –æ—Ç–ª–∞–¥–∫–∏ —Å–æ—Å—Ç–æ–∏—Ç –≤ —Ç–æ–º, —á—Ç–æ –æ–Ω–∞ –ø–æ–∑–≤–æ–ª—è–µ—Ç –≤–∞–º –ø—Ä–æ—Ö–æ–¥–∏—Ç—å –ø—Ä–æ–≥—Ä–∞–º–º—É —à–∞–≥ –∑–∞ —à–∞–≥–æ–º, –ø–æ–∫–∞ –≤—ã –Ω–µ –æ–±–Ω–∞—Ä—É–∂–∏—Ç–µ –ø—Ä–æ–±–ª–µ–º—É. –ë–æ–ª—å—à–∞—è —á–∞—Å—Ç—å —ç—Ñ—Ñ–µ–∫—Ç–∏–≤–Ω–æ–π –æ—Ç–ª–∞–¥–∫–∏ (–∏ –∂–∏–∑–Ω–∏ –≤ —Ü–µ–ª–æ–º) —Å–æ—Å—Ç–æ–∏—Ç –ø—Ä–æ—Å—Ç–æ –≤ —Ç–æ–º, —á—Ç–æ–±—ã –∑–Ω–∞—Ç—å, —á—Ç–æ —Å–∫–∞–∑–∞—Ç—å, —á—Ç–æ–±—ã –ø–æ–ª—É—á–∏—Ç—å –Ω—É–∂–Ω—É—é –∏–Ω—Ñ–æ—Ä–º–∞—Ü–∏—é. –ú–Ω–æ–≥–∏–µ —Ä–∞–∑—Ä–∞–±–æ—Ç—á–∏–∫–∏ –ø—Ä–æ–≤–æ–¥—è—Ç –±–µ—Å—á–∏—Å–ª–µ–Ω–Ω—ã–µ —á–∞—Å—ã, –±—å—é—Ç—Å—è –≥–æ–ª–æ–≤–æ–π –æ–± —Å—Ç–µ–Ω—É, –ø—ã—Ç–∞—è—Å—å –∑–∞—Å—Ç–∞–≤–∏—Ç—å –ø—Ä–æ–≥—Ä–∞–º–º—É —Ä–∞–±–æ—Ç–∞—Ç—å, –ø–æ—Ç–æ–º—É —á—Ç–æ —É –Ω–∏—Ö –Ω–µ –±—ã–ª–æ –Ω—É–∂–Ω–æ–≥–æ —Å–ª–æ–≤–∞—Ä—è, —á—Ç–æ–±—ã –≤—ã—è—Å–Ω–∏—Ç—å, —á—Ç–æ —Å –Ω–µ–π –Ω–µ —Ç–∞–∫. –í–æ—Ç –ø–æ—á–µ–º—É –≤–∞–º –Ω–µ–æ–±—Ö–æ–¥–∏–º–æ —Ö–æ—Ä–æ—à–æ —Ä–∞–∑–±–∏—Ä–∞—Ç—å—Å—è –≤ –∫–æ–º–∞–Ω–¥–∞—Ö –æ—Ç–ª–∞–¥–∫–∏ Python, —á—Ç–æ–±—ã –±—ã—Å—Ç—Ä–æ –∏ –ø—Ä–∞–≤–∏–ª—å–Ω–æ –≤—ã—è–≤–ª—è—Ç—å –ø—Ä–æ–±–ª–µ–º—ã.

–ü—Ä–∏ —Ä–∞–±–æ—Ç–µ —Å Python –∫–æ–º–∞–Ω–¥–∞ " pdb " - –≤–∞—à –ª—É—á—à–∏–π –¥—Ä—É–≥. –≠—Ç–æ —É—Ç–∏–ª–∏—Ç–∞ –∫–æ–º–∞–Ω–¥–Ω–æ–π —Å—Ç—Ä–æ–∫–∏, –≤ –∫–æ—Ç–æ—Ä–æ–π –µ—Å—Ç—å –≤—Å–µ —Ñ—É–Ω–∫—Ü–∏–∏, –Ω–µ–æ–±—Ö–æ–¥–∏–º—ã–µ –¥–ª—è –æ—Ç–ª–∞–¥–∫–∏ –≤–∞—à–µ–π –ø—Ä–æ–≥—Ä–∞–º–º—ã, –∏ –æ–Ω–∞ " –∫—Ä–∞—Å–∏–≤ –≤ —Å–≤–æ–µ–π –ø—Ä–æ—Å—Ç–æ—Ç–µ. –ü–æ—Å–ª–µ —Ç–æ–≥–æ, –∫–∞–∫ –≤—ã –≤–≤–µ–¥–µ—Ç–µ " pdb " –≤ —Ç—É —Ç–æ—á–∫—É –ø—Ä–æ–≥—Ä–∞–º–º—ã, –∫–æ—Ç–æ—Ä—É—é —Ö–æ—Ç–∏—Ç–µ –∏–∑—É—á–∏—Ç—å, –≤—ã –º–æ–∂–µ—Ç–µ –∏—Å–ø–æ–ª—å–∑–æ–≤–∞—Ç—å –∫–æ–º–∞–Ω–¥—É " list " –¥–ª—è –ø—Ä–æ—Å–º–æ—Ç—Ä–∞ –æ–ø—Ä–µ–¥–µ–ª–µ–Ω–Ω—ã—Ö —Å—Ç—Ä–æ–∫ –∫–æ–¥–∞ Python –∏ –Ω–∞–≤–∏–≥–∞—Ü–∏–∏ –ø–æ –Ω–∏–º —Å –ø–æ–º–æ—â—å—é –≤–≤–µ—Ä—Ö (" p & rdquo ;) –∏ –≤–Ω–∏–∑ (" d "), –∞ —Ç–∞–∫–∂–µ —à–∞–≥ (" s ") –∏ —Å–ª–µ–¥—É—é—â–∏–π (" n "). Python Software Foundation –ø–æ–¥–¥–µ—Ä–∂–∏–≤–∞–µ—Ç —Ä—É–∫–æ–≤–æ–¥—Å—Ç–≤–∞ –ø–æ Python –∏ –ø–æ–¥–¥–µ—Ä–∂–∏–≤–∞–µ—Ç –∏—Ö –∞–∫—Ç—É–∞–ª—å–Ω–æ—Å—Ç—å & mdash; –æ—Ç–º–µ—Ç—å—Ç–µ –∑–∞–∫–ª–∞–¥–∫—É —Å—Ç—Ä–∞–Ω–∏—Ü–∞ –∫–æ–º–∞–Ω–¥ –æ—Ç–ª–∞–¥–∫–∏ –¥–ª—è –∏—Å–ø–æ–ª—å–∑–æ–≤–∞–Ω–∏—è –≤ –∫–∞—á–µ—Å—Ç–≤–µ —Å–ø—Ä–∞–≤–∫–∏.

–ù–∞—á–Ω–∏—Ç–µ —Å –º–∞–ª–æ–≥–æ —Å –ø–æ–º–æ—â—å—é –∫–æ–º–∞–Ω–¥—ã –ø–µ—á–∞—Ç–∏

–ë—ã–≤–∞—é—Ç —Å–ª—É—á–∞–∏, –∫–æ–≥–¥–∞ –≤—ã –º–æ–∂–µ—Ç–µ –∏–∑–±–µ–∂–∞—Ç—å –ø–æ–≥—Ä—É–∂–µ–Ω–∏—è –≤ –æ—Ç–ª–∞–¥—á–∏–∫ Python. –ï—Å–ª–∏ –≤—ã –º–æ–∂–µ—Ç–µ –∏—Å–ø—Ä–∞–≤–∏—Ç—å —Å–≤–æ–π –∫–æ–¥, –Ω–µ –ø—Ä–∏–±–µ–≥–∞—è –∫ –æ—Ç–ª–∞–¥–∫–µ, –≤—ã –º–æ–∂–µ—Ç–µ —É—Å–∫–æ—Ä–∏—Ç—å –ø—Ä–æ—Ü–µ—Å—Å –∫–æ–¥–∏—Ä–æ–≤–∞–Ω–∏—è –∏ –±–µ–∑ –æ—Å–æ–±—ã—Ö —Ö–ª–æ–ø–æ—Ç –ø–æ–ª—É—á–∏—Ç—å –≥–æ—Ç–æ–≤—ã–π –ø—Ä–æ–¥—É–∫—Ç. –í–æ—Ç –ø–æ—á–µ–º—É –≤—Å–µ–≥–¥–∞ —Å—Ç–æ–∏—Ç –¥–∞–≤–∞—Ç—å –∑–Ω–∞–∫ " print " –î–∞–π—Ç–µ –∫–æ–º–∞–Ω–¥—É –ø–æ–ø—Ä–æ–±–æ–≤–∞—Ç—å, –ø—Ä–µ–∂–¥–µ —á–µ–º —Å—Ç—Ä–µ–ª—è—Ç—å –∏–∑ –±–æ–ª—å—à–æ–≥–æ –æ—Ä—É–∂–∏—è.

–í—ã –º–æ–∂–µ—Ç–µ –∏—Å–ø–æ–ª—å–∑–æ–≤–∞—Ç—å " print " –¥–ª—è –ø—Ä–æ—Å–º–æ—Ç—Ä–∞ –Ω–µ–æ–±—Ä–∞–±–æ—Ç–∞–Ω–Ω–æ–≥–æ –∫–æ–¥–∞ Python. –•–æ—Ç—è —Å–Ω–∞—á–∞–ª–∞ —ç—Ç–æ –º–æ–∂–µ—Ç –ø–æ–∫–∞–∑–∞—Ç—å—Å—è –ø—É–≥–∞—é—â–∏–º, –≤—ã —Å–∫–æ—Ä–æ –ø—Ä–∏–≤—ã–∫–Ω–µ—Ç–µ –∫ —Å–∫–∞–Ω–∏—Ä–æ–≤–∞–Ω–∏—é –æ–≥—Ä–æ–º–Ω—ã—Ö –º–∞—Å—Å–∏–≤–æ–≤ —è–∑—ã–∫–∞ –∫–æ–¥–∏—Ä–æ–≤–∞–Ω–∏—è –∏ –≤—ã—è–≤–ª–µ–Ω–∏—é –æ–±–ª–∞—Å—Ç–µ–π, –∫–æ—Ç–æ—Ä—ã–µ –ø—Ä–æ—Å—Ç–æ –Ω–µ –≤—ã–≥–ª—è–¥—è—Ç –ø—Ä–∞–≤–∏–ª—å–Ω–æ. –ü–æ–º–Ω–∏—Ç–µ –ø–∞—Ä–Ω—è –∏–∑ –ú–∞—Ç—Ä–∏—Ü—ã, –∫–æ—Ç–æ—Ä—ã–π –º–æ–≥ —Å–º–æ—Ç—Ä–µ—Ç—å –Ω–∞ –∫–æ–¥ –∏ –≤–∏–¥–µ—Ç—å –±–ª–æ–Ω–¥–∏–Ω–æ–∫, –±—Ä—é–Ω–µ—Ç–æ–∫ –∏ —Ä—ã–∂–∏—Ö? –≠—Ç–æ –±—É–¥–µ—Ç —Ç–æ–ª—å–∫–æ –≤—ã, –≤–º–µ—Å—Ç–æ –∫—Ä–∞—Å–∏–≤—ã—Ö –ª—é–¥–µ–π –≤—ã —É–≤–∏–¥–∏—Ç–µ —Ñ—É–Ω–∫—Ü–∏–∏ –∫–Ω–æ–ø–æ–∫ –∏ –≤—ã–∑–æ–≤—ã –±–∞–∑—ã –¥–∞–Ω–Ω—ã—Ö. –≠—Ç–æ –Ω–µ —Ç–∞–∫ –≥–ª–∞–º—É—Ä–Ω–æ, –∫–∞–∫ —Ç–æ, —á—Ç–æ –±—ã–ª–æ —Ä–∞–Ω—å—à–µ. –°–∞–π—Ñ–µ—Ä –≤–∏–¥–µ–ª, –Ω–æ —ç—Ç–æ —Å–¥–µ–ª–∞–µ—Ç –≤–∞—Å –ø—Ä–æ–≥—Ä–∞–º–º–∏—Å—Ç–æ–º-–≤–∑–ª–æ–º—â–∏–∫–æ–º.

–•–æ—Ç—è –º—ã—Å–ª—å –æ–± –æ—Ç–ª–∞–¥–∫–µ –º–æ–∂–µ—Ç –Ω–∞–ø–æ–ª–Ω—è—Ç—å –≤–∞—Å —É–∂–∞—Å–æ–º –∏ –∑–∞—Å—Ç–∞–≤–ª—è—Ç—å –≤—Å–ø—ã—Ö–∏–≤–∞—Ç—å –ø–∞–Ω–∏–∫–æ–π, -–ø—Ä–∞–∫—Ç–∏–∫—É—é—â–∏–π –ø—Ä–æ—Ü–µ—Å—Å –æ—Ç–ª–∞–¥–∫–∏ –∫–ª—é—á–µ–≤–æ–π –∞—Å–ø–µ–∫—Ç –¥–ª—è —Ä–∞–∑–Ω–æ—Å—Ç–æ—Ä–æ–Ω–Ω–µ–≥–æ –ø—Ä–æ–≥—Ä–∞–º–º–∏—Å—Ç–∞. –†–∞–±–æ—Ç–æ–¥–∞—Ç–µ–ª–∏ –æ—Ü–µ–Ω—è—Ç –≤–∞—à–∏ –Ω–∞–≤—ã–∫–∏ –æ—Ç–ª–∞–¥–∫–∏, –∞ –≤–∞—à–∏ –∫–æ–ª–ª–µ–≥–∏ –æ—Ü–µ–Ω—è—Ç –≤–∞—à—É –ø–µ—Ä–µ–¥–∞—á—É —á–∏—Å—Ç–æ–≥–æ –∫–æ–¥–∞. –ö–∞–∫ —Ç–æ–ª—å–∫–æ –≤—ã –æ—Å–≤–æ–∏—Ç–µ—Å—å, –æ—Ç–ª–∞–¥–∏—Ç—å –ª–µ–≥–∫–æ, –∏ –Ω–∞—à–µ —Ä—É–∫–æ–≤–æ–¥—Å—Ç–≤–æ –ø–æ–º–æ–∂–µ—Ç –≤–∞–º –Ω–∞—á–∞—Ç—å —Ä–∞–±–æ—Ç—É. –ö–æ–¥–∏—Ä—É–π—Ç–µ –∏ –ø–æ–ª—É—á–∞–π—Ç–µ —É–¥–æ–≤–æ–ª—å—Å—Ç–≤–∏–µ, –≥–æ–Ω—è—è—Å—å –∑–∞ –ª—é–±—ã–º–∏ –º–µ–ª–∫–∏–º–∏ –æ—à–∏–±–∫–∞–º–∏, —Å –∫–æ—Ç–æ—Ä—ã–º–∏ –≤—ã –º–æ–∂–µ—Ç–µ —Å—Ç–æ–ª–∫–Ω—É—Ç—å—Å—è –≤ —Å–≤–æ–µ–º –ø—É—Ç–µ—à–µ—Å—Ç–≤–∏–∏!