اعتراض در زبان پایتون به چه معناست ؟

1

اعتراض در زبان پایتون به چه معناست ؟

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
0

اعتراض در زبان پایتون به چه معناست ؟

هر زمان که یک خطاي زمان اجرا اتفاق میافتد، مفسر پایتون یک اعتراض را تولیـد مـیکنـد. در این حالت معمولاً برنامه متوقف میشود و پایتون پیغام خطایی را چاپ میکند. براي مثال تقسیم بر صفر یک اعتراض میسازد:

>> print 55/0
ZeroDivisionError: integer division or modulo

همچنین دستیابی به عنصري از لیست که وجود ندارد:

>> a = []
>>> print a[5]
IndexError: list index out of range

یا دستیابی به کلیدي که در دیکشنري نیست:

>> b = {}
>>> print b[‘what’]
KeyError: what

در هر مورد، پیغام خطا داراي دو بخش است: نوع خطا کـه قبـل از علامـت کـولن قـرار دارد و جزئیات خطا که بعد از علامت کولن قرار دارد. معمولاً پایتون یک پسیـابی از جـایی کـه برنامـه در آن محل مشکل داشته است را هم چاپ میکند، اما ما آنها را در مثالها حذف کردهایم. گاهی اوقات ما میخواهیم عملیاتی را که میتواند به یک اعتراض منجر شـود، اجـرا کنـیم، امـا نمیخـواهیم برنامـه متوقـف شـود. مـا مـیتـوانیم بـهوسـیلۀ دسـتورات try و except از اعتـراض پیشگیري کنیم. براي مثال ممکن است ما به کاربر اعلان کنیم که نام فایلی را وارد کند و سپس سعی کنیم کـه آن فایل را باز کنیم. اگر فایل وجود نداشت، ما نمیخواهیم که برنامه خراب شـود بلکـه مـیخـواهیم از اعتراض پیشگیري کنیم:

filename = raw_input(‘Enter a file name: ‘)
try:
f = open (filename, “r”)
except:
print ‘There is no file named’, filename

دستور try ،فرامین بلوك اول را اجرا میکند. اگر هیچ خطایی رخ ندهد، از دسـتور except چشمپوشی میکند و اگر هر گونه خطایی رخ دهـد، شـاخۀ دسـتور except اجـرا مـیشـود و ادامـه مییابد. ما میخواهیم این قابلیت را در یک تابع بستهبندي کنیم: تابع exists نام فایل را میگیـرد و در صورتی که وجود داشت true و در غیر اینصورت false را برمیگرداند:

def exists(filename):
try:
f = open(filename)
f.close()
return 1
except:
return 0

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

def inputNumber ():
x = input (‘Pick a number: ‘)
if x == 17:
raise ‘BadNumberError’, ’17 is a bad number’
return x

دستور raise دو آرگومـان دریافـت مـیکنـد: نـوع اعتـراض و اطلاعـات ویـژه دربـارة خطـا. BadNumberError یک نوع جدید اعتراض است که براي این کاربرد ساختهایم. اگر تابعی که inputNumber را فرا خوانده، از بروز خطا پیشگیـري کنـد، برنامـه مـیتوانـد ادامه یابد و در غیر اینصورت پایتون پیغام خطایی را گزارش میکند و خارج میشود:

>> inputNumber ()
Pick a number: 17
BadNumberError: 17 is a bad number

پیغام خطا شامل نوع اعتراض و اطلاعات اضافهاي است که شما تدارك دیدهاید.

برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
شما در حال مشاهده 1 از 1 پاسخ هستید ، برای دیدن همه پاسخها اینجا را کلیک کنید .
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها2140 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات