دوره ویژه مقدماتی پایتون – Telegram
دوره ویژه مقدماتی پایتون
436 subscribers
248 photos
4 videos
250 links
Download Telegram
✍️Exceptions (2)

استثنا های مختلف به دلایل مختلف به وجود می آیند.

📌 استثنا های معمول:
ImportError :واردات ناکام است

IndexError :یک فهرست با شماره ی خارج از محدوده نشان داده می شود

NameError:یک متغیر نامشخص استفاده می شود

SyntaxError:کد را نمی توان به درستی تجزیه کرد

TypeError :یک تابع به مقدار یک نوع نامناسب نامیده می

ValueError :یک تابع به مقدار یک نوع نامناسب نامیده می شود

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 87 : در کد زیر باید از چه exceptionی استفاده کرد؟
print("7" + 4)

1️⃣: ZeroDivisionError
️0%(0)
2️⃣: TypeError
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(57)
3️⃣: ValueError
️0%(0)

👥: 57شرکت در نظر سنجی
✍️Exception Handling

برای مدیریت استثنا ها، و برای فراخوانی یک استثنا، می توانید از دستور (try / except) استفاده کنید.

اگر این استثنا اتفاق بیافتد، کد در قسمت try متوقف شده و کد در قسمت except اجرا می شود. اگر خطایی رخ نداده باشد، کد در قسمت except، اجرا نمی شود.

try:
num1 = 7
num2 = 0
print (num1 / num2)
print("Done calculation")
except ZeroDivisionError:
print("An error occurred")
print("due to zero division")

خروجی :
>>
An error occurred
due to zero division
>>

در قسمت try با مشکل تقسیم بر صفر مواجه می شود و درنتیجه این قسمت اجرا نشده و به قسمت except رفته و آن را اجرا کرده است.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٨٨:خروجی کد زیر چیست؟
try:
variable=10
print(10/2)
except ZeroDivisionError :
print("Error")
print("Finished")

1️⃣: 5.0 Finished
️|||||||||||||||||||||||||||||||||||||||||||||||||98%(56)
2️⃣: Error Finished
️0%(0)
3️⃣: 5.0
️|2%(1)

👥: 57شرکت در نظر سنجی
✍️Exception Handling

یک کد می تواند چندین exception داشته باشد تا بتواند Error های متفاوتی را کنترل کند. همچنین چندین exeption می توانند داخل یک Exception قرار بگیرند با استفاده از پرانتز گزاری این except ها کنترل می شوند.

try:
variable = 10
print(variable + "hello")
print(variable / 2)
except ZeroDivisionError:
print("Divided by zero")
except (ValueError, TypeError):
print("Error occurred")

Result:
>>
Error occurred
>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٨٩:خروحی کد زیر چیست؟
try:
meaning = 42
print(meaning / 0)
print("the meaning of life")
except (ValueError, TypeError):
print("ValueError or TypeError occurred")
except ZeroDivisionError:
print("Divided by zero")

1️⃣: Divided by zero
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(55)
2️⃣: ValueError or TypeError occurred
️0%(0)
3️⃣: Divided by zero ValueError or TypeError occurred
️0%(0)

👥: 55شرکت در نظر سنجی
✍️Exception Handling

اگر در جلوی except هیچ چیزی قرار ندهیم آنگاه except شامل تمام ایراد های موجود می شود. این کار در زمانی انجام می شود که error پیشبینی نشده ای رخ دهد.

try:
word = "spam"
print(word / 0)
except:
print("An error occurred")

خروجی :
>>
An error occurred
>>

📌استفاده از exception ها زمانی مفید است که کد ما با ورودی های کاربر کار می کند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٩٠: در جای خالی عبارت مناسب قرار دهید.
.........
num1 = input(":")
num2 = input(":")
print(float(num1)/float(num2))
...........
print("Invalid input")

1️⃣: except, try
️0%(0)
2️⃣: try: , except :
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(58)
3️⃣: except: , try:
️0%(0)
4️⃣: try , except
️0%(0)

👥: 58شرکت در نظر سنجی
✍️finally

📌 برای اطمینان از اینکه بعضی از قسمت های کد شما، بدون در نظر گرفتن error رخ داده، حتما اجرا می شود، می توانید از عبارت (finally) استفاده کنید. عبارت (finally) بعد از try و except قرار می گیرد.
کد مربوط به قسمت finally همیشه بعد از قسمت try و except اجرا می شود.

try:
print("Hello")
print(1 / 0)
except ZeroDivisionError:
print("Divided by zero")
finally:
print("This code will run no matter what")

Result :
>>
Hello
Divided by zero
This code will run no matter what
>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٩١:خروجی کد زیر چیست؟
try:
print(1)
except:
print(2)
finally:
print(3)

1️⃣: 1
️0%(0)
2️⃣: 1 2 3
️0%(0)
3️⃣: 3
️|||6%(3)
4️⃣: 1 3
️|||||||||||||||||||||||||||||||||||||||||||||||94%(49)

👥: 52شرکت در نظر سنجی
✍️finally

📌 حتی اگر در هر قسمت قبلی کد مشکلی رخ دهد، باز هم کد قسمت finally اجرا می شود.

try:
print(1)
print(10 / 0)
except ZeroDivisionError:
print(unknown_var)
finally:
print("This is executed last")

Result :
>>
1
This is executed last

ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
NameError: name 'unknown_var' is not defined
>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٩٢: جا های خالی را با عبارت مناسب پر کنید.
..........
print(1)
............
print(2)
............
print(42)

1️⃣: except:, try:, finally:
️0%(0)
2️⃣: try, except, finally
️||||||||||||||||||||||||||||||||65%(36)
3️⃣: finally, except, try
️|2%(1)
4️⃣: try:, except:, funally:
️||||||||||||||||33%(18)

👥: 55شرکت در نظر سنجی
تست ٩٣: کدام یک از خطاها در هنگام اجرای کد زیر رخ می‌دهد؟
try:
print(1 / 0)
except ZeroDivisionError:
raise ValueError

1️⃣: هیچ خطایی
️0%(0)
2️⃣: ZeroDivisionError
️||4%(2)
3️⃣: ValueError
️||||||13%(7)
4️⃣: ZeroDivisionError and ValueError
️|||||||||||||||||||||||||||||||||||||||||83%(44)

👥: 53شرکت در نظر سنجی
✍️raising exceptions

شما می توانید با استفاده از عبارت raise باعث ایجاد استثناات شوید.

print(1)
raise ValueError
print(2)

خروجی :
>>>
1
ValueError
>>>

شما باید نوع استثنا ایجاد شده را مشخص کنید.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
✍️Raising Exceptions (2)

📌 استثنائات را می توان با عبارت هایی مطرح کرد که جزئیات را در مورد آنها بیان می کنند.

name="123"
raise NameError("Invalid name!")

Result :
>>>
NameError : Invalid name!
>>>

📌 در جلوی عبارت raise می تواند هیچ گونه استثنایی وجود نداشته باشد تا هرگونه استثنایی را دوباره ایجاد کند.

try:
num = 5 / 0
except:
print("An error occurred")
raise

Result :
>>
An error occurred

ZeroDivisionError: division by zero
>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 95 : آیا شما می توانید از عبارت raise در خارج از بلاک except استفاده کنید؟

1️⃣: بله
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(55)
2️⃣: خیر
️0%(0)

👥: 55شرکت در نظر سنجی
Forwarded from Python challenge️
This media is not supported in your browser
VIEW IN TELEGRAM

🙅‍♂️ مبارزه بین پایتون و جاوا

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
✍️Assertions

اظهارنظر(assertion) یک بررسی عقلانی است، که می توانید پس از اینکه تست برنامه به پایان رسید، آن را روشن یا خاموش کنید.
کد شما مورد بررسی قرار می گیرد و اگر نتیجه نادرست باشد، یک استثنا به وجود می آید. asserion ها از طریق استفاده از assert اعمال می شوند.

print(1)
assert 2 + 2 == 4
print(2)
assert 1 + 1 == 3
print(3)

Result :
>>>
1
2
AssertionError
>>>

📌برنامه نویس ها معمولا از assertion ها در ابتدای یک تابع استفاده می کنند تا از معتبر بودن یک ورودی اطمینان حاصل کنند. و همچنین بعد از تابع از آن استفاده می کنند تا از معتبر بودن خروجی مطمئن شوند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٩۵:بزرگترین عددی که چاپ می شود چیست؟

print(0)
assert "h" != "W"
print (1)
assert False
print(2)
assert True
print(3)

1️⃣: 0
️|2%(1)
2️⃣: 1
️|||||||||||||||||||||43%(22)
3️⃣: 2
️||||||||||20%(10)
4️⃣: 3
️|||||||||||||||||35%(18)

👥: 51شرکت در نظر سنجی
✍️assertions (2)

این assertion ها می توانند دومین ورودی را هم بگیرند، به این معنی که اگر assertion موفقیت آمیز نباشد، به AssertionError منتقل می شوند.

temp = -10
assert (temp >= 0), "Colder than absolute zero!"

Result :
>>>
AssertionError: Colder than absolute zero!
>>>

📌استثنائات AssertionError می توانند مانند دیگر استثنائات ، با عبارت های try-except کنترل شوند. اما اگر کنترل نشوند، این نوع از استثنائات باعث متوقف شدن کد برنامه می شوند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ٩۶:جای خالی زیر را با عبارت مناسب پرکنید.
def my_func(x):
....... X > 0, "Error!" print(x)

1️⃣: assert
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(49)
2️⃣: accept
️0%(0)
3️⃣: else
️0%(0)

👥: 49شرکت در نظر سنجی