آشنایی با PIP و دستورات Try و Except

06 آبان 1398
آشنایی با PIP و دستورات Try و Except

آشنایی با PIP

PIP مدیریت کننده ی پکیجی (package manager) برای پکیج ها و ماژول های زبان پایتون است. ممکن است برایتان سوال پیش بیاید که پکیج چیست؟ پکیج ها شامل تمام فایل هایی هستند که مورد نیاز یک ماژول است و میدانید که ماژول ها نیز مانند کتابخانه های کد پایتون هستند. اگر از نسخه ی 3.4 زبان پایتون استفاده می کنید PIP به صورت پیش فرض برای استفاده ی شما موجود است اما اگر از نسخه های قدیمی تر استفاده می کنید می توانید با روش زیر وجود PIP را چک کنید:

command line خود را باز کرده و آن را به دیرکتوری اسکریپت پایتون خود ببرید. برای این کار یا باید از دستور Cd استفاده کنید و یا اینکه به دیرکتوری پایتون رفته و با نگه داشتن دکمه ی shift و کلیک راست گزینه ی open command window here را انتخاب کنید. حالا می توانید دستور pip --version را اجرا کنید. یک مثال:

C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip --version

در صورتی که PIP برای شما نصب نشده باشد با خطا مواجه می شوید. اگر مطمئن شدید که PIP برایتان نصب نیست می توانید با مراجعه به لینک https://pypi.org/project/pip/ آن را دانلود و نصب کنید.

دانلود و استفاده از پکیج ها

برای دانلود کردن پکیج ها باید command line را باز کرده و به PIP نام پکیج مورد نظر را بدهید. البته حواستان باشد که command line را در دیرکتوری اصلی پایتون باز کرده باشید. یک مثال ساده از نصب پکیجی به نام camelcase:

C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip install camelcase

با این دستور پکیج camelcase برای شما دانلود و نصب می شود. حالا برای استفاده از این پکیج باید آن را در پروژه ی خود import کنید:

import camelcase

c = camelcase.CamelCase()

txt = "lorem ipsum dolor sit amet"

print(c.hump(txt))

#This method capitalizes the first letter of each word.

این متد باعث می شود که حروف اول هر کلمه با حرف بزرگ انگلیسی نوشته شود. خروجی:

Lorem Ipsum Dolor Sit Amet

همچنین اگر دوست دارید بین پکیج های مختلف پایتون گشت و گذاری داشته باشید می توانید به وب سایت رسمی PIP به آدرس  https://pypi.org/ مراجعه کنید.

مشاهده ی لیست پکیج ها و حذف آن ها

شما می توانید با استفاده از دستور uninstall در command line پکیج مورد نظر خود را حذف کنید. به طور مثال اگر بخواهیم همان پکیج camelcase را حذف کنیم، می گوییم:

C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip uninstall camelcase

پس از اجرای این دستور یک بار از شما سوال می شود که آیا از تصمیم خود اطمینان دارید؟

Uninstalling camelcase-02.1:
  Would remove:
    c:\users\Your Name\appdata\local\programs\python\python36-32\lib\site-packages\camecase-0.2-py3.6.egg-info
    c:\users\Your Name\appdata\local\programs\python\python36-32\lib\site-packages\camecase\*
Proceed (y/n)?

شما می توانید با نوشتن حرف n عملیات را لغو و یا با y پکیج را به طور کامل حذف کنید.

همچنین برای مشاهده ی لیست پکیج های باقی مانده می توانید از دستور list در command line استفاده کنید:

C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip list

خروجی این دستور لیستی از تمام پکیج های موجود و نصب شده در سیستم شما می باشد:

Package         Version
-----------------------
camelcase       0.2
mysql-connector 2.1.6
pip             18.1
pymongo         3.6.1
setuptools      39.0.1

دستورات Try و Except

اگر سررشته ای در زبان های دیگر برنامه نویسی داشته باشید حتما با دستورات try و امثال آن آشنا هستید. بلوکه ی try به شما اجازه می دهد که کد خاصی را برای خطایابی تست کنید، سپس بلوکه ی except به شما اجازه می دهد که آن خطا را مدیریت کنید. امثال این کدها در زبان های مختلف برنامه نویسی مانند PHP نیز وجود دارد و مفهوم پیچیده ای نیستند. در آخر بلوکه ی finally به شما اجازه می دهد بدون توجه به نتیجه ی try یا except کد مورد نظرتان را اجرا کنید.

exception در لغت به معنی «استثناء» است اما در برنامه نویسی منظورمان از exception همان خطا یا error می باشد. زمانی که در اسکریپت شما exception ای وجود داشته باشد زبان پایتون اجرای برنامه را متوقف کرده و پیام خطایی به شما نمایش می دهد. بنابراین بهتر است برای قسمت های حساس برنامه از try استفاده کنیم تا بتوانیم این خطاها را مدیریت کنیم. به مثال زیر دقت کنید:

try:
  print(x)
except:
  print("An exception occurred")

در کد بالا متغیر x که ما قصد print کردن آن را داریم اصلا تعریف نشده است بنابراین یک خطا محسوب می شود. اگر کد را به شکل عادی می نوشتیم یک خطای نسبتا طولانی و زشت برایمان نمایش داده شده و کل برنامه crash میشد که اصلا حالت ایده آلی نیست اما حالا که از بلوکه ی try استفاده کرده ایم می توانیم خطا را مدیریت کرده و پیام خطای شخصی سازی شده ی خودمان را نمایش دهیم، همچنین از crash شدن و متوقف شدن کل برنامه نیز جلوگیری کرده ایم. خروجی کد بالا عبارت An exception occurred خواهد بود.

شما می توانید بلوکه های except را شخصی سازی کنید. به طور مثال:

try:
  print(x)
except NameError:
  print("Variable x is not defined")
except:
  print("Something else went wrong")

در کد بالا یک بلوکه یexcept تعریف کرده ایم که مخصوص خطاهای NameError است (خطاهایی مربوط به نام گذاری مانند تعریف نشدن توابع). سپس یک بلوکه یexcept دیگر نیز برای خطاهای دیگر داریم. خروجی این کد عبارت Variable x is not defined است.

بلوکه ی else و finally

شما می توانید بلوکه ی دیگری به نام else را تعریف کنید تا در صورت نبود هیچ خطایی در بلوکه ی try کدهای آن قسمت اجرا شوند:

try:
  print("Hello")
except:
  print("Something went wrong")
else:
  print("Nothing went wrong")

خروجی:

Hello
Nothing went wrong

کدهای بلوکه ی try هیچ خطایی ندارند بنابراین اجرا شده و hello را چاپ می کنند سپس کدهای قسمت else نیز به دلیل عدم وجود خطا در try اجرا خواهند شد.

از طرفی بلوکه ی finally بدون توجه به اینکه آیا خطایی اتفاق افتاده یا نه، اجرا می شود:

try:
  print(x)
except:
  print("Something went wrong")
finally:
  print("The 'try except' is finished")

خروجی:

Something went wrong
The 'try except' is finished

این بلوکه برای بستن اشیاء و تمیز کاری های پس از اجرای کد بسیار کاربردی است:

try:
  f = open("demofile.txt")
  f.write("Lorum Ipsum")
except:
  print("Something went wrong when writing to the file")
finally:
  f.close()

خروجی:

Something went wrong when writing to the file

بلوکه ی try یک خطا برمی گرداند (فایلی که می خواهد در آن چیزی بنویسد از نوع read-only) است. اگر شیء را در آخر نبندیم برنامه ادامه پیدا می کند و مشکلی پیش نمی آید اما مموری ما اشغال خواهد شد.

امیدوارم از این قسمت لذت برده باشید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری از مقدماتی تا پیشرفته با پایتون توصیه می‌کند:
نویسنده شوید
دیدگاه‌های شما

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