مقدمه
پایتون یکی از زبانهای برنامه نویسی بسیار قدرتمند و پرطرفدار است که در حوزه هوش مصنوعی، علم داده و یادگیری ماشین کاربرد بسیار زیادی دارد. این زبان به ظاهر تازه، میتواند با ترفندهایش تنها در چند خط کوتاه کارهایی انجام دهد که با دیگر زبانهای برنامه نویسی در چندین خط هم نمیتوان انجام داد. حالا که از قدرتمند بودن این زبان آگاه شدید، بیایید چند ترفند جالب را با هم، به کمک فیلم آموزشی پایتون فرادرس یاد بگیریم.
تابع any و all در پایتون
در زبان برنامه نویسی پایتون دو تابع به نامهای any و all داریم که کارشان جستجو و بررسی آیتمهای داخل آرایه است. هر کدام از این دو تابع کاربرد شبیه به هم دارند اما تفاوتهایی نیز دارند. این تابعها هر کدام به همراه یک شرط، مقادیر موجود در آرایه را آنالیز میکنند و در نهایت یک پاسخ منطقی یا همان True یا False به ما برمیگرداند. توجه داشته باشید که با وجود شبیه بودن این دو تابع، پاسخ خروجی همیشه یکسان نیست و در برخی موارد ممکن است متفاوت باشند.
کاربردهای تابع any در پایتون
تابع any به جستجوی حداقل در آرایه می پردازد. یعنی چه؟ یعنی حتی اگر یکی از آیتمها در آرایه برابر با شرط باشد پاسخ True برگردانده میشود. این تابع شبیه گیت OR در مدار منطقی است. یک نمونه از تابع any به صورت زیر است:
A = [true, false, false, true] any(A) >>True
پس دانستیم اگر فقط یکی یا بیشتر از یک آیتم برابر با شرط باشد، پاسخ True خواهد بود. برای مثال به تکه کد زیر توجه فرمایید.
A = [1,2,3,4,5,6,7] any([x==1 for x in A]) >>True
همانطور که میبینید تابع any مقدار True را به ما برمیگرداند زیرا حداقل یکی از آیتمها برابر با True است.
کاربردهای تابع all در پایتون
تابع all به حداقل بسنده نمیکند و برای اینکه مقدار True را برگرداند میبایست تمامی آیتمها در آرایه برابر با شرط باشند. این تابع شبیه گیت AND در مدار منطقی عمل میکند. یک نمونه از تابع all به صورت زیر است:
B = [true, false, false, true] all(B) >>False
حال اگر بخواهیم مثال بالا را اجرا کنیم فکر میکنید پاسخ چه خواهد بود؟ درست است! تابع مقدار False را به ما برمیگرداند زیرا تمامی آیتمها در آرایه برابر با True نیستند.
تفاوت های توابع any و all
همانطور که دیدید، استفاده از این ترفندهای پایتون بسیار آسان است. حال میخواهیم کد بالا را به صورت زیر تغییر دهیم، فکر میکنید مقداری که هر کدام از متدهای any و all به ما برمیگردانند چه خواهد بود؟
A = [7,7,7,7,7,7,7] any([x==7 for x in A]) >>True
B = [7,7,7,7,7,7,7] all([x==7 for x in B]) >>True
طبق توضیحات بالا توابع any و all هر دو مقدار True را چاپ خواهند کرد. به این نکته توجه کنید که مقدار all همیشه کمتر یا مساوی any است. اگر all مقدار True را برگرداند، any نیز همان مقدار را برمیگرداند؛ و برعکس، اگر any مقدار False را برگرداند، بنابراین all نیز False خواهد بود.
برای یادگیری بهتر به همراه مثالهای بیشتر میتوانید ویدیو آموزشی زیر را مشاهده نمایید.
تعریف مفهومی (Comprehension) در پایتون
یکی دیگر از ترفندهای پایتون که بسیار جالب و تأمل برانگیز است، تعریف مفهومی یا به اصطلاح Comprehension نامیده میشود. قبل از اینکه نحوه استفاده از این ترفند را توضیح دهیم، باید ذکر شود که برای درک این موضوع میبایست آشنایی مقدماتی با زبان برنامه نویسی پایتون داشته باشید.
اگر بخواهیم به صورت خلاصه توضیح دهیم، از Comprehension برای خوانایی بیشتر کدها استفاده میشود. به طوری که اگر به روش عادی کد بنویسیم ممکن است در چندین خط نوشته شود. برای مثال میخواهیم تکه کد کوتاهی بنویسیم که در آن اعداد زوج بین ۱ تا ۵ مشخص شده و با خود عدد جمع شود. در حالت عادی کد به صورت زیر نوشته میشود:
for x in range(1,5): if x%2==0: print(x+x) >>4 >>8
و اگر بخواهیم از Comprehension استفاده کنیم کد به صورت زیر خواهد بود:
[x+x for x in range(1,5) if x%2==0] >>[4, 8]
اما آیا کار Comprehension فقط کم کردن تعداد خط کدها است؟ خیر، این ویژگی میتواند کاربردهای فراوانی در حوزههای مختلف داشته باشد.
برای درک بهتر این ویژگی میتوانید ویدیو آموزشی زیر را مشاهده کنید.
سخن آخر درمورد ترفندهای پایتون
زبان پایتون جزو آسانترین زبانهای برنامه نویسی است که میتوانید یاد بگیرید، به همین دلیل است که برای مبتدیها، یادگیری این زبان پیشنهاد میشود به شرطی که منجر به تغییر نگرش کاربر نسبت به دیگر زبانهای برنامه نویسی نشود. اگر قصد دارید شروع به یادگیری پایتون کنید پیشنهاد میشود همین الان شروع کنید و با فیلمهای آموزشی پایتون فرادرس خود را محک بزنید. امیدواریم که این پست برای شما مفید بوده باشد.
3 پاسخ
سلام و وقت بخیر
بسیار عالی نوشتید ممنونممممم
خیلی خوب و عالی. تدریس آقای کلامی همیشه بهترین بوده.
جالب بود