پایتون برای همه | 9 | اجزاء یک برنامه

پایتون برای همه پایتون 3

اشتراک وفاداری (ماهی یک چایی)

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

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

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

ورودی

دریافت داده از «دنیای بیرون». شاید خواندن داده از روی یک فایل یا از طریق یک سنسور مثل GPS یا میکروفن. در برنامه‌های ابتداییِ ما، این داده‌ها مستقیما از کیبورد و تایپ کردن بر روی آن می‌آید.

خروجی

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

اجرای ترتیبی

دستوراتی که در یک اسکریپت نوشته شده اگر به ترتیب و یکی پس از دیگری اجرا شود، به آن اجرای ترتیبی می‌گوییم. به عبارتی همانطور که معمول است برنامه از ابتدای اسکریپت شروع به خواندن می‌کند و انتها می‌رسد.

اجرای شرطی

شاید گاهی اجرای دستور یا خطی از کد، مشروط بر محقق شدن شرطی باشد. فکر می‌کنم آنقدر واضح است که نیاز به توضیح نباشد ولی بگذارید که یک مثال کوتاه بزنم. مثلا شرط می‌کنید که اگر برنامه ورودی Eman را از کیبورد گرفت روی صفحه‌ی نمایش عبارت Hello Master را چاپ و اگر ورودی غیر از Eman را گرفت عبارت Access Denied را چاپ کند. ما در برنامه هم خط مربوط به چاپ Hello Master و هم خط مربوط به چاپ Access Denied را داریم که بنا به ورودی یکی از آن‌ها چاپ میشود. یعنی یک شرطی محقق می‌شود و دستور مربوط به آن شرط اجرا و دیگری رد می‌شود.

اجرای تکرارشونده

یک سری از خطوط برنامه چندین و چند بار اجرا می‌شوند. معمولا متغیر یا متغیرها در این حالت حضور دارند.

استفاده دوباره یا reuse

یک سری از دستورالعمل‌ها را می‌نویسید و از آن‌ها در طول برنامه‌ی خود استفاده‌ی دوباره می‌کنید. یعنی لازم نیست که یک دستورالعمل را در جای جای برنامه بنویسید. یک بار می‌نویسید و بازاستفاده می‌کنید.

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

چه مشکلی ممکن است پیش بیاید؟

همانطور که پیشتر دیدیم، در حین صحبت با پایتون بای بی‌نهایت دقیق باشیم. جابجا شدن یک حرف در یک برنامه، می‌تواند نتیجه‌ش بی‌خیال‌شدن پایتون باشد.

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

یک نمونه از خطا در برنامه را می‌توانید در اینجا مشاهده کنید:

>>> primt 'Hello world!'
File "<stdin>", line 1
primt 'Hello world!'
   ^
SyntaxError: invalid syntax
>>> primt ('Hello world')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'primt' is not defined


>>> I hate you Python!
  File "<stdin>", line 1
I hate you Python!
 ^
SyntaxError: invalid syntax
>>> if you come out of there, I would teach you a lesson
  File "<stdin>", line 1
if you come out of there, I would teach you a lesson
  ^
SyntaxError: invalid syntax
>>>

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

شاید بتوانیم پایتون را به یک سگ تشبیه کنیم. عاشق شماست ولی صرفا یک سری کلمه‌های رزرو شده را می‌داند. وقتی با حروفی اشتباه با اون حرف می‌زنید دمش را تکان می‌دهد و به شما نشان می‌دهد که منظور شما را نمی‌فهمد ولی مشتاقانه منتظر این است که شما منظورتان را با حروف درستی بیان کنید. برای همین است که <<< را نمایش می‌دهد.

خطاهای عمده و عمومی

Syntax errors

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

خطاهای منطقی یا Logic errors

یک خطای منطقی زمانی اتفاق می‌افتد که برنامه از نظر متن مشکلی ندارد ولی ترتیب خطوط و دستورات به گونه‌ای که باید باشد، نیست. یا یک خط به اشتباه به خط دیگری پیوند خورده است. به عنوان یک مثالِ واضح، این برنامه (داستان) را با هم مرور می‌کنیم:

۱) یک بطری آب بردار
۲) بگذارش داخل کوله‌پشتی
۳) پیاده به کتابخانه برو
۴) درِ بطری آب را بگذار

مشکلی با متن نداریم ولی یکمی دیر به فکر گذاشتن درِ بطری افتادیم و کل وسایل داخل کوله‌پشتی خیس شد!

خطاهای معنایی یا Semantic errors

یک خطای معنایی زمانی رخ می‌دهد که شما متن برنامه را به خوبی نوشته باشی. ترتیب اجرای دستورات و خطوط هم درست باشد. ولی برنامه آن کاری که شما از او انتظار دارید را انجام ندهد. یک مثال ساده: فرض کنید می‌خواهید به یک دوست آدرس رستوران را بدهید و بگویید:

«زمانی که به چهار راهی که پمپ بنزین است رسیدی، بپیچ به چپ، و یک مایل برو. یک ساختمان قرمز سمت چپت خواهد بود که همان رستوران است.»

خب تا اینجا همه‌چیز خوب است. الان دوستِ شما زنگ می‌زند و می‌گوید که آن‌ها در پشت یک طویله‌اند و نشانی از رستوران نیست. بعد شما می‌گویید: «وقتی به پمپ بنزین رسیدی رفتی چپ یا راست؟» و او می‌گوید: «من دقیقا همان چیزی که گفتی رو اجرا کردم. رفتم به سمت چپ» و شما جواب می‌دهید: «واقعا شرمنده، راهنمای من از نظر متن و منطق درست بود ولی یک اشتباه معنایی خیلی کوچیک داشت که باعث شد شما به خطا بیفتی و از جای اشتباهی سر در بیاری.»

در هر سه مورد بالا، پایتون تمام تلاشش را می‌کند تا کاری که شما از آن می‌خواهید را به بهترین شکل ممکن انجام دهد. این شمایید که باید بهتر با او کنار بیایید. پایتون در کارش دقیق است.

این نوشته تحت مجوز کرییتیو کامنز BY – NC و حمایت موسسه تحقیقاتی رامونا ارائه می‌شود. شما می‌توانید با توجه به مفاد این گواهی از آن استفاده کنید.

اولین نفری باشید که نظر می‌گذارد

پاسخ دهید

ایمیل شما نمایش داده نخواهد شد