پایتون برای همه | 18 | دیباگ کردن / اشکال زدایی واژگان فصل دوم

پیام مدیر: تولید محتوای خوب، نیاز به زمان، تخصص، و انرژی دارد و در یک کلام هزینه‌بر است. ما در ایلولا با نگارش، گردآوری و یا ترجمه‌ی دست اول مطالب از منابع موثق و قابل اتکاء، تلاش می‌کنیم تا محتوایی ارزشمند را عرضه کنیم. امیدواریم که از مقاله لذت ببرید!

دیباگ کردن چیست و چطور می‌توان یک برنامه را اشکال زدایی کرد؟ تا اینجای کار با پیام‌هایی که پایتون به عنوان SyntaxError صادر می‌کند آشنا شده‌ایم. انتخاب نام‌های رزرو شده برای متغیر مثل class و yield یا استفاده از کاراکترهای غیرمجاز مثل odd~job یا US$‎ و یا حتی استفاده از فاصله در بین نام‌ها. زمانی که بین اسم متغیری فاصله می‌اندازید، پایتون فکر می‌کند که شما دو عملوند بدون هیچ عملگری دارید و در نهایت خطا می‌دهد.

پیام‌هایی که SyntaxError می‌دهد اطلاعات زیادی را در اختیار ما نمی‌گذارد. رایج‌ترین پیام SyntaxError: invalid syntax و SyntaxError: invalid token است که هیچ کدام حاوی اطلاعات به درد بخوری نیستند. اینجاست که باید کمی فسفر بسوزانید و ببینید که کجای کد اشتباهات رایجی که بالاتر به آن‌ها اشاره شد را انجام داده‌اید. البته سرنخ‌هایی هم این پیغام خطا به شما می‌دهد.

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

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

یکی دیگر از خطاهای رایج تازه‌کاران استفاده از نام‌ها با حروف کوچک و بزرگ اشتباهی‌ست. برای پایتون متغیر Latex از latex متفاوت است، چرا که به کوچکی و بزرگی حروف حساس است.

یکی از خطاهای معمول دیگر که یک خطای معنایی به حساب می‌آید، ترتیب و اولویت اجرای عملیات است. به عنوان مثال اگر معادله‌ی 1/2π را به همین صورت بنویسید:

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

واژگان فصل

گمارش / Assignment:
یک گزاره‌ای که یک مقدار را به یک متغیر اختصاص می‌دهد.

هم‌بند کردن / Concatenate:
بستن دو عملوند به یکدیگر.

نظر / کامنت / Comment:
اطلاعاتی در یک برنامه که برای دیگر برنامه‌نویسان که به کد منبع دسترسی دارند، در برنامه قرار داده می‌شود و بر روی نحوه‌ی اجرای برنامه هیچ تاثیری ندارد.

عددیابی / ارزیابی / Evaluate:
ساده‌سازی یک عبارت با استفاده از عملگرها برای دریافت یک مقدار.

عبارت / Expression:
ترکیبی از متغیرها، عملگرها و مقادیر که بیانگر یک مقدار است.

اعشار / Floating Point:
نوعی از اعداد که شامل قسمت اعشاری نیز می‌شود.

تقسیم گردشده رو به پایین / Floor Division:
تقسیم گردشده رو به پایین. زمانی که عددی را تقسیم می‌کنید، اگر قسمت اعشاری آن را حذف نمایید به این کار Floor Division می‌گویند.

عدد صحیح / Integer:
نوعی که بیانگر اعداد کامل می‌شود.

کلمه کلیدی / Keyword:
یک کلمه‌ی رزرو شده توسط کامپایلر که برای پارس/تجزیه و تحلیل کردن یک برنامه استفاده می‌شود. مثلا شما نمی‌توانید از کلماتی شبیه به if یا def یا while به منظور استفاده برای اسامی متغیرها استفاده کنید چرا که این کلمه‌ها کی‌وُرد یا رزرو شده‌اند.

به خاطر ماندنی / Mnemonic:
ما به متغیرها نام‌هایی می‌دهیم که بدانیم مقداری که در آن‌ها ذخیره شده بیانگر چیست. استفاده از نام‌های به خاطر ماندنی به ما و دیگر برنامه‌نویسانی که به کد منبع دسترسی دارند کمک شایانی می‌کند.

عملگر پیمانه / Modulus Operator:
عملگری که با ‎%‎ نمایش داده می‌شود و مقدار باقیمانده از یک تقسیم را برمی‌گرداند. به عنوان مثال عملگر پیمانه در عبارت ‎13 % 5 عدد 3‎ خواهد بود.

عملوند / Operand:
مقداری که عملگر بر روی آن عملیات انجام می‌دهد.

عملگر / Operator:
نمادی خاص که نشانگر محاسبه‌ی ساده‌ای مثل جمع، تفریق، ضرب یا هم‌بند کردن یک استرینگ/ رشته است.

قوانین اولویت‌ها / Rules of Precedence:
قوانینی که به برنامه می‌گوید کدام محاسبه در یک عبارتی با چند عملگر و عملوند، بر دیگری مقدم است و بایستی زودتر انجام پذیرد.

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

رشته / String:
نوعی که توالی‌ای از کاراکترها را نمایش می‌دهد.

نوع / Type:
دسته‌ای که یک مقدار در آن قرار می‌گیرد. مثلا تا اینجای کار با «نوع» عدد صحیح (type int) نوع عدد اعشاری (type float) و نوع رشته (type str) آشنا شدیم.

مقدار / Value:
یکی از واحدهای پایه‌ی داده، شبیه به یک عدد یا رشته که برنامه با آن کار می‌کند و آن را دستکاری می‌نماید.

متغیر / Variable:
نامی که به یک «مقدار» اشاره می‌کند.

تمرین‌ها

تمرین ۲: برنامه‌ای بنویسید که از input استفاده کرده و نام کاربر را طلب می‌کند. سپس با استفاده از متغیر مورد نظر، به کاربر سلام دهد. خروجی باید چیزی شبیه به این باشد:

تمرین ۳: برنامه‌ای بنویسید که از کاربر ساعاتی که کار کرده و نرخ مزدش را بپرسد و در نهایت دستمزدش را محاسبه کند.

در خصوص اینکه، عدد بدست آمده حتما دو عدد اعشار داشته باشد نگران نباشید. می‌توانید از تابع درونی‌شده‌ی پایتون به اسم round برای گرد کردن عدد و تنظیم تعداد اعشار آن استفاده کنید.
تمرین ۴: فرض کنید که گزاره‌های زیر را اجرا کرده‌اید:

برای هرکدام از عبارت‌های زیر، مقدار و نوعِ این مقدار را یادداشت کنید:

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

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

مقاله را پسندیدید؟ ایلولا بدون نمایش تبلیغات و تحمیل هزینه‌ی غیرمستقیمِ نمایش آن‌ها به شما، با تکیه بر فروش مقالات اداره می‌شود. در صورتی‌که مقاله را مفید یافتید، لطفا هزینه‌ی آن را به یکی از سه روش زیر پرداخت کنید. ۱) با کلیک روی پرداخت آنلاین از طریق درگاه امن زرین‌پال آن را به مبلغ تنها ۵۰۰ تومان خریداری کنید، یا ۲) آن را از طریق آیکن‌های زیر برای یک نفر که احساس می‌کنید مقاله برای او جذاب است بفرستید. لطفا با حمایت خود به پربارتر شدن وب فارسی کمک کنید.

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

پاسخ دهید

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