اگر با برنامه های بزرگ سر و کار دارید، این سخنرانی مهم خواهد بود.
شما یاد خواهید گرفت که خطاها را از طریق بلوک های استثنا و با استفاده از نظرات در پایتون مدیریت کنید.
استثنا
ما می خواهیم یاد بگیریم که چگونه خطاها را در برنامه های پایتون مدیریت کنیم. بیایید با نوشتن یک برنامه کوچک برای دریافت سن کاربر از ترمینال شروع کنیم.
age = int(input('Age'))
print(age)
بیایید آن را اجرا کنیم.
حالا به کد خروجی این برنامه نگاه کنید. کد خروج 0 به این معنی است که برنامه ما با موفقیت خاتمه یافت و هیچ خطایی وجود نداشت. اما اگر یک بار دیگر این برنامه را اجرا کنیم و به جای وارد کردن یک مقدار عددی، یک رشته وارد کنیم چه؟
با پیام او "invalid literal for int() با پایه 10 یک خطای مقدار دریافت می کنیم. اساساً چیزی که این پیام به ما می گوید این است که این رشته "qwe" دارای یک شماره خانه معتبر نیست که بتوان آن را به یک عدد صحیح تبدیل کرد. حالا به کد خروجی این برنامه نگاه کنید. کد خروج 1 به این معنی است که کد خروج ما از کار افتاده است، بنابراین 0 همیشه به معنای موفقیت است و هر چیزی جز 0 به معنای خرابی است. در برنامه نویسی از این نوع خطا به عنوان یک استثنا یاد می کنیم.
به عنوان یک برنامه نویس خوب پایتون، باید این وضعیت را پیش بینی کنید. شما نمی خواهید اجازه دهید کل برنامه شما فقط به این دلیل که کاربر یک مقدار نامعتبر وارد کرده است خراب شود. بنابراین به جای اینکه اجازه دهید برنامه خراب شود، باید وضعیت را کنترل کنید و یک پیام خطای مناسب را چاپ کنید. این چیزی است که من در این سخنرانی به شما نشان خواهم داد.
در پایتون ساختاری به نام داریم try except
برای مقابله با موقعیت های خطا استفاده می شود.
try:
age = int(input('Age'))
print(age)
این دو خط کد بخشی از کد ما هستند try:
مسدود کردن. اضافه خواهیم کرد except
بعد از آن را با نوع خطایی که پیشبینی میکنیم مسدود کنید.
except ValueError:
print('Invalid Value')
اکنون در صورت خطای مقدار، رشته "مقدار نامعتبر" را برمی گرداند.
بیایید نوع دیگری از خطا را با تغییر برنامه قبلی بررسی کنیم.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
حال، اگر این برنامه را اجرا کنیم و '0' را در سن وارد کنیم، یک مقدار عددی. از این رو، از نظر فنی، ما نباید هیچ استثنایی داشته باشیم.
بیایید آن را اجرا کنیم.
نگاهی بیاندازید. برنامه ما خراب شد و یک "خطای تقسیم صفر" انجام دادیم زیرا نمی توانیم یک عدد را بر 0 تقسیم کنیم. یک بار دیگر به کد خروج نگاه کنید. ما نتوانستیم این نوع خطا یا این نوع استثنا را با این بجز بلاک بگیریم.
این بلوک جز فقط استثناهایی از نوع خطای مقدار را می گیرد و برای رسیدگی به خطای تقسیم صفر به یک بلوک غیر جدید نیاز داریم. بیایید برنامه را بر اساس آن اصلاح کنیم.
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
مشکل حل شده است!
- خطای نوشتاری کد
- خطای تایپ
- خطای نام
- نمایه ساز
- خطای ارزش
- خطای تقسیم صفر
- خطای صفت
- خطای زمان اجرا
- خطای کلید
- خطای حافظه
- خطای ادعایی
- خطای تورفتگی
- Eoferror
- خطای نقطه شناور
- سرریز
- خطای منطقی
- خطای سیستم
- خطای اجرا نشده
- اوسرور
- Ioerror
- مرجع ارجاع
- Unicodeerror
- خطای حسابی
- خطای Unicodedecodeerror
- خطای Unicodeencodeerror
- خطای Unicodetranslate
- خطاهای زمان اجرا
به عنوان یک برنامه نویس، باید از تمام موارد استثنا در برنامه خود آگاه باشید و باید آنها را مطابق با آن مدیریت کنید.
نظرات
اکنون می خواهیم در مورد نظرات در پایتون صحبت کنیم. ما از نظرات برای اضافه کردن یادداشت ها یا نظرات به برنامه های خود استفاده می کنیم تا خوانایی را بهبود بخشیم و پیامی را به کسی که کد ما را می خواند منتقل کنیم.
نظرات را می توان با استفاده از علامت # در برنامه نوشت. هر چیزی که بعد از # می نویسید توسط کامپایلر پایتون نادیده گرفته می شود و اجرا نمی شود. شما می توانید نظرات خود را در خطوط جداگانه و همچنین پس از یک خط کد اضافه کنید.
با این نظرات، میتوانیم چیزی در مورد کد خود توضیح دهیم، میتوانیم از آنها به عنوان یادآوری برای رفع مشکلات یا پاک کردن موارد استفاده کنیم، یا میتوانیم از آنها برای برقراری ارتباط با سایر توسعهدهندگانی که کد ما را میخوانند یا توضیح دهیم که چرا این کد را در یک راه خاص این موارد استفاده خوبی برای استفاده از نظرات هستند. ما همچنین می توانیم نظرات خود را در چندین خط داشته باشیم. هر خط باید با علامت # جدید شروع شود. اکنون یکی از مواردی که هنگام استفاده از نظرات باید از آن اجتناب کنید این است که توضیح دهید کد چه کاری انجام می دهد.
در اینجا یک نمونه از یک نظر بد است:
این یک نظر بد است زیرا به من واضح است. این به من می گوید که خط بعدی قرار است "غروب خورشید در غرب" را چاپ کند. حالا مشکل این کامنت اینه که جدا از پرحرفی و تکراری بودنش اگه بیای اینجا و غرب رو به شرق تغییر بدی، این کامنت قدیمی میشه. بنابراین، هر بار که کد خود را به روز می کنیم، باید برگردیم و نظر مربوطه را اصلاح کنیم.
به طور خلاصه، از نظرات خود برای پاسخ دادن به چگونه و چرایی به جای چیستی استفاده کنید.
در اینجا یک نمونه از یک نظر خوب است:
در اولین نظر، به خودم یادآوری می کنم که باید قبل از نهایی کردن برنامه، این مقدار درآمد را به روز کنم و دومین مقدار این است که به توسعه دهندگان دیگری که کد من را می خوانند می گویم که تمام خطاها در این برنامه مدیریت نمی شوند.
در نهایت، شما باید از نظرات اضافی اجتناب کنید و نظرات شما باید مقداری ارزش به کد شما اضافه کند.
بسته شدن!
استثناها و نظرات دو جنبه از برنامه نویسی هستند که اغلب نادیده گرفته می شوند و اهمیت آنها معمولا دست کم گرفته می شود.
از کار افتادن برنامه شما تقریباً به همان اندازه بد است که در صورت لزوم روی کد خود اظهار نظر نکنید. سخنرانی بعدی بر روی کلاس ها و سازندگان متمرکز خواهد بود.
پاسخ دهید