آموزش برنامه نویسی پایتون (قسمت دوم: آشنایی با برنامه و انواع خطاها)
1 min read

آموزش برنامه نویسی پایتون (قسمت دوم: آشنایی با برنامه و انواع خطاها)

در اولین قسمت از آموزش برنامه نویسی به زبان پایتون با انواع زبان های برنامه نویسی آشنا شدیم و یاد گرفتیم زبان های برنامه نویسی را می توان به دو دسته زبان های سطح بالا و زبان های سطح پایین تقسیم کرد. همچنین با برخی تفاوت های این دو دسته آشنا شدیم و نحوه اجرای برنامه های نوشته شده در هر یک از آنها را نیز آموختیم. بخش دوم نیز همانند بخش اول به کلیات اولیه مورد نیاز برای قدم گذاشتن به دنیای برنامه نویسی می پردازد. در روز دوم با ساختار کلی یک برنامه و انواع خطاهای ممکن در زمان نوشتن و اجرای برنامه ها آشنا خواهیم شد.

برنامه چیست؟

یک برنامه را می توان دنباله ای از دستورات دانست که نحوه اجرای یک فعالیت محاسباتی را مشخص می کنند. این فعالیت می تواند ریاضیاتی مانند حل دستگاه معادلات یا یافتن ریشه یک چند جمله ای باشد و یا محاسبه ای غیر ریاضی به حساب آید. برای مثال ممکن است بخواهید کلمه مشخصی در یک متن را یافته و همه دفعات تکرار آن را با کلمه دیگری جایگزین کنید. نحوه صدور دستورات در زبان های مختلف برنامه نویسی متفاوت است اما می توان ساختاری کلی برای همه آنها در نظر گرفت.

ورودی (input) : دریافت داده ها از صفحه کلید، یک فایل یا دستگاهی دیگر

خروجی (output) : نمایش داده ها بر روی نمایشگر یا ارسال آنها به یک فایل یا دستگاهی دیگر

بخش ریاضی: اجرای عملگرهای ساده ریاضی مانند جمع و ضرب

اجراهای شرطی: بررسی شرایطی مشخص و اجرای کدهای متناسب با آنها

تکرار: اجرای عملکردی به صورت متناوب با کمی تغییر در پس زمینه برنامه تا زمانی مشخص

در واقع تمامی زبان های برنامه نویسی از همین چند بخش ساده تشکیل می شوند. در نتیجه باید اینطور فکر کنید که در برنامه نویسی هدف ما شکستن بخش های بزرگ و پیچیده یک مساله به قطعه های کوچکتر و ساده تر است تا بتوان به راحتی به حل آنها پرداخت.

رفع خطاها

برنامه نویسی مملو از اشتباهات ریز و درشت است. به دلایل نه چندان مهم، خطاهای برنامه نویسی باگ (bug) نام دارند و فرآیند برطرف کردن آنها رفع خطا یا دیباگ (debugging) نام گرفته. سه نوع خطا می توانند در یک برنامه ایجاد شوند: خطاهای ساختاری (syntax error)، خطاهای زمان اجرا (runtime error) و خطاهای منطقی (semantic error).

خطاهای ساختاری

پایتون (و در حالت کلی تمامی زبان های برنامه نویسی) تنها قادر به اجرای برنامه هایی هستند که از نظر ساختاری صحیح باشند. در غیر این صورت مترجم وجود یک خطا را به اطلاع شما می رساند. Syntax وابسته به ساختار یک برنامه و قوانین آن است. برای مثال پرانتز ها باید به صورت جفتی در یک برنامه استفاده شوند؛ در نتیجه چیزی مانند (1+2) صحیح و 8) نادرست است و در صورت استفاده یک خطای ساختاری رخ خواهد داد. در صورت وجود یک خطای ساختاری در برنامه به هیچ عنوان قادر به اجرای آن نخواهید بود. این خطاها به خصوص در آغاز فرآیند یادگیری برنامه نویسی به دفعات رخ می دهند و با گذشت زمان و کسب مهارت به تدریج کمرنگ تر خواهند شد.

خطاهای زمان اجرا

دلیل نام گذاری این خطاها با چنین نامی آن است که پیش از اجرای برنامه از وجود آنها بی اطلاع خواهید بود. همچنین برخی از برنامه نویسان به این دسته از خطاها "استثنایی" می گویند زیرا بروز آنها نشان دهنده وقوع یک اتفاق استثنایی و عموما ناگوار است. خطاهای زمان اجرا معمولا در برنامه های ساده و کوتاه ظاهر نمی شوند اما در برنامه های پیچیده تر باید منتظر آنها باشید.

خطاهای منطقی

نوع سوم خطاها، خطاهای منطقی هستند و نکته قابل توجه درباره آنها، عدم نمایش هیچ گونه پیامی مبنی بر وجود یک خطا در برنامه توسط رایانه است. با این حال در صورت وجود یک خطا در برنامه نوشته شده نتیجه نهایی با آنچه انتظار می رود یا در واقعیت وجود دارد متفاوت خواهد بود. پیدا کردن خطاهای منطقی معمولا کاری دشوار است زیرا باید برای یافتن آنها خط به خط به بررسی برنامه ای که نوشته شده بپردازید و با تغییر پارامترها و مشاهده خروجی محل اشکال را پیدا کنید.

رفع ایراد تجربی

رفع ایراد یکی از مهم ترین مهارت ها در برنامه نویسی است. این کار با وجود خسته کننده بودند باعث به چالش کشیدن ذهن، قوی تر شدن دانسته ها و تسلط بیشتر در برنامه نویسی خواهد شد. شاید بتوان رفع ایراد را نوعی کارآگاهی دانست زیرا باید به کمک یک یا چند سرنخ مشکل را پیدا کنید. برخی از برنامه نویسان فرآیندهای برنامه نویسی و رفع ایراد را به صورت هم زمان انجام می دهند و به تدریج برنامه نهایی را بدون ایراد آماده می کنند. در چنین شرایطی بررسی درستی اجرای برنامه، یافتن ایرادها و رفع آنها تدریجی انجام می شوند.

زبان های تجربی و زبان های رسمی

زبان های طبیعی مواردی هستند که انسان ها به کمک آنها صحبت می کنند. زبان هایی مانند انگلیسی، فارسی، آلمانی و فرانسوی توسط انسان ها اختراع نشده اند (هر چند کمی توسط آنها قانونمند می شوند) و به صورت طبیعی تکامل پیدا می کنند. در طرف دیگر زبان های رسمی قرار می گیرند که توسط انسان ها برای اهدافی مشخص طراحی شده اند. برای مثال علائم و شکل های مورد استفاده در ریاضی نوعی زبان رسمی را ایجاد می کند و نشانه های مورد استفاده فیزیکدانان در توضیح روابط و فرمول ها هم یک زبان رسمی است. اما مهم تر از همه این موارد زبان های برنامه نویسی هستند که همگی جزو زبان های رسمی به حساب می آیند و برای انجام محاسبات به شکل هایی خاص طراحی شده اند.

زبان های رسمی قوانین سختگیرانه و دقیقی دارند. برای مثال 6=3+3 یک عبارت ریاضی با ساختار صحیح است اما 1$=2&5 از نظر ریاضی دارای ساختار صحیحی نیست. همچنین همان طور که برای صحبت کردن به یک زبان تجربی باید از اجزای تشکیل دهنده آن آگاه باشید، برای بهره گیری از زبان های رسمی هم باید ترتیب درست ساختار آنها را فرا بگیرید.

اولین برنامه

اگر با کلاس های آموزش برنامه نویسی آشنا باشید حتما می دانید که برای یادگیری هر زبانی، اولین برنامه ای که توسط زبان آموزان نوشته می شود Hello world است! در پایتون دستور چنین برنامه ای به صورت زیر خواهد بود:

'!print 'Hello World

خط بالا نمایشی از یک دستور چاپی است که البته چیزی روی کاغذ چاپ نمی کند و تنها خروجی را روی نمایشگر نشان می دهد. نتیجه اجرای چنین برنامه ای به این صورت نشان داده می شود:

!Hello World

همان طور که مشاهده می کنید علامت های گیومه در خروجی نشان داده نمی شوند و تنها برای مشخص کردن دستور اصلی هستند. در نسخه سوم پایتون دستور پرینت کمی متفاوت است و به صورت زیر نوشته می شود:

print (‘Hello World!’)

پرانتزها نشان می دهند که عبارت print یک تابع است. در آینده بیشتر با مفهوم توابع در پایتون آشنا خواهیم شد. در بخش بعدی به سراغ متغیرها و انواع آنها در پایتون خواهیم رفت.

قسمت اول: آشنایی با انواع زبان های برنامه نویسی