پنج ترفند پایتون که باید حتماً بدانید – به زبان ساده


شما چه یک مهندس هوش مصنوعی ارشد و چه یک دانشجوی سال اول زیستشناسی باشید، به هر حال در مقطعی با زبان برنامهنویسی پایتون مواجه خواهید شد. پایتون نخستین بار در سال 1991 انتشار یافت و به زبان محبوبی تبدیل شد که از سوی برنامهنویسها و اهالی فناوری مورد استفاده قرار میگیرد. بر اساس میزان نمایش سؤالهای وبسایت Stack Overflow، پایتون به سرعت در حال تبدیل شدن به محبوبترین زبان برنامهنویسها است.
پایتون چیست ؟
پایتون یک زبان سطح بالا و تفسیری با ساختار نسبتاً ساده است و حتی برای افرادی که هیچ تجربه قبلی برنامهنویسی ندارند نیز عالی است. کتابخانههای محبوب پایتون کاملاً با آن یکپارچه شدهاند و در رشتههای مختلفی مانند بیوانفورماتیک (biopython)، علم داده (pandas)، یادگیری ماشین (keras/ tensorflow) و حتی نجوم (astropy) مورد استفاده قرار میگیرند. افرادی که زبانهای جاوا و C را آموخته باشند، احتمالاً میتوانند پایتون را به صورت خودآموز یاد بگیرند. با این که پایتون بسیار کندتر از جاوا و دیگر زبانها اجرا میشود؛ اما در عمل با داشتن امکانات یکپارچهای که به خوبی توسعه یافتهاند، موجب بهبود بهرهوری میشود. در تصویر زیر رشد شگفتانگیز زبان پایتون ملاحظه میشود.

پیش از آن که شروع به معرفی ترفندهای پایتون بکنیم، توصیه میکنیم که «تقلب نامه (Cheat Sheet) دستورهای پایتون» را مطالعه کنید. در این تقلب نامه، برخی نکات و ترفندهای مفید در مورد روش کدنویسی کارآمدتر در پایتون معرفی شده است. اگر از پایتون هیچ اطلاعاتی ندارید، پیشنهاد میکنیم مسیر یادگیری خود را از «آموزش برنامهنویسی پایتون – مقدماتی» آغاز کنید.
ترفند یکم: تکخطیهای قدرتمند
آیا تاکنون تلاش کردهاید چندین خط را بخوانید و در میان گزارههای شرطی گم شده باشید؟ بنابراین گزارههای تکخطی پایتون مناسب شما هستند. برای نمونه گزارههای شرطی زیر را در نظر بگیرید:
این کد را میتوان به صورت زیر کاملاً سادهسازی کرد:
این قابلیت بینظیری است. شما میتوانید به کدهایی که مینویسید توجه کنید و همواره جاهایی را پیدا خواهید کرد که میتوانید از گزارههای تکخطی در آنها استفاده کنید. علاوه بر گزارههای شرطی، حلقههای for را نیز میتوان سادهسازی کرد. برای نمونه کد دوبل کردن لیستی از اعداد صحیح در چهار خط به صورت زیر:
را میتوان به صورت تک خطی زیر سادهسازی کرد:
البته در صورتی که همه چیز را در گزارههای تکخطی به صورت زنجیری بنویسید ممکن است موجب سردرگمی شود. باید اطمینان حاصل کنید که در کدهای خود بیش از حد از گزارههای تکخطی استفاده نمیکنید چون برخی افراد بر این باور هستند که استفاده فراوان از گزارههای تکخطی کاری «غیر پایتونی» محسوب میشود.
ترفند دوم: دستکاری سریع رشتهها
دستکاری رشتهها میتواند کاری پردردسر باشد؛ اما پایتون برخی میانبرهای پنهان برای سادهسازی عمده این قبیل کارها دارد. برای معکوس ساختن یک رشته میتوانیم 1-:: را مانند اندیسهای لیست اضافه کنیم:
همین ترفند را میتوانیم در مورد یک لیست از اعداد صحیح نیز به کار بگیریم. دستکاری رشتهها در پایتون کاری بسیار آسان است. برای نمونه اگر میخواهید یک جمله را با استفاده از متغیرهای از پیش تعریف شده str1, str2 و lst3 در خروجی به صورت زیر ارائه کنید:
کافی است از متد ()join. و عملگرهای حسابی برای ایجاد جمله مطلوب خود استفاده کنید:
علاوه بر دستکاری رشته، معمولاً توصیه میشود که از عبارتهای منظم (regex) نیز برای جستجوی مؤثر رشتهها و الگوهای فیلتراسیون استفاده کنید.
ترفند سوم: ترکیب تو در توی لیستها
Itertools احتمالاً یکی از محبوبترین کتابخانههای پایتون است. تصور کنید کد شما حاوی دهها لیست است و پس از برخی دستکاری ها با لیستهای تو در توی کاملاً درهمتنیدهای مواجه میشوید. Itertools دقیقاً آن چیزی است که برای رفع این آشفتگی نیاز دارید.
همان طور که در مثال فوق میبینید، میتوانیم لیستها و رشتههای تو در تو را با استفاده از ()join. و itertools با هم ترکیب کنیم. متد ()combinations. در itertools نیز ابزار قدرتمندی برای بازگشت دادن طول زیر دنبالهای از عناصر iterable ورودی است. برای مطالعه بیشتر در مورد intertools به این آدرس (+) مراجعه کنید.
ترفند چهارم: ساختمانهای داده ساده
اگر به ترفند یکم این راهنما مراجعه کنید، میبینید که استفاده از گزارههای تکخطی برای مقداردهی اولیه ساختمانهای داده در پایتون بسیار ساده است. هارولد کوپر (Harold Cooper) یک ساختمان داده درخت تکخطی را با استفاده از کد زیر پیادهسازی کرده است:
در کدی که در بخش فوق نشان داده شده است، یک درخت تعریف میشود که یک دیکشنری است که مقدارهای پیشفرض آن درختها هستند. تابعهای تکخطی دیگری مانند تولیدکننده اعداد اول نیز وجود دارند:
این نوع تابعها را میتوانید روی گیتهاب یا Stack Overflow مشاهده کنید. پایتون کتابخانههای قدرتمندی مانند Collections نیز دارد که به حل طیف متنوعی از مسائل واقعی بدون نوشتن کدهای طولانی کمک میکنند.
ترفند پنجم: پرینت آسان
آخرین ترفندی که در این نوشته معرفی میکنیم موردی است که شاید بسیاری از افراد آرزو کنند کاش زودتر آن را یاد گرفته بودند. برای پرینت کردن یک آرایه با رشتهها به صورت رشتهای جدا شده با کاما، نیازی نیست که از ()join. و حلقهها استفاده کنیم:
دستور ساده تکخطی زیر این کار را انجام میدهد:
ترفند جالب دیگر برای پرینت کردن، بهرهگیری از enumerate است. enumerate یک تابع درونی پایتون است که به طرز خارقالعادهای مفید محسوب میشود. بنابراین به جای نوشتن یک کد چهار خطی برای پرینت کردن:
کافی است همان کد را در دو خط بنویسید:
ترفندهای مختلفی برای پرینت کردن دیگر نیز در پایتون وجود دارند که یکی از آنها پرینت pretty به صورت pprint است. شما نیز اگر ترفندهای از پایتون را میشناسید که فکر میکنید برای خوانندگان مقاله ما مفید خواهند بود در بخش نظرات با ما و دیگر خوانندگان فرادرس در میان بگذارید.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- مجموعه آموزش های برنامه نویسی پایتون
- آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)
- زبان برنامه نویسی پایتون (Python) — از صفر تا صد
- متدهای وهلهای، استاتیک و کلاس در پایتون — تفاوتهای مهمی که باید بدانید
- پایتون و روش کار با فایل های اکسل — از صفر تا صد
==
سپاس فراوان