معرفی 5 تابع زبان برنامه نویسی پایتون و نحوه استفاده از آنها
پایتون زبان سادهای برای استفاده و در عین حال قدرتمند، برای بیان است. اما آیا از همه چیزهایی که در زبان برنامه نویسی پایتون ارائه شده، استفاده می کنید؟
ویژگی های پیشرفته هر زبان برنامه نویسی معمولاً با تجربه و کار کردن در آن زبان، کشف می شود. شاید در برنامه نویسی یک پروژه پیچیده، در جستجوی وب، با یک راه حل زیبا برای حل مشکل خود روبرو می شوید که از ویژگی پایتون استفاده می کند و آنجاست که می بینید که شما از وجود این دستورات بی اطلاع بوده اید. این کار سرگرم کننده ترین راه برای یادگیری است. در این آموزش، 5 مورد از مفیدترین ویژگی های پیشرفته زبان برنامه نویسی پایتون و مهمتر از همه نحوه استفاده از آنها توضیح داده می شود.
1- تابع lambda
یک تابع lambda یک تابع کوچک و ناشناس است – ناشناس به این معنا که در واقع نامی ندارد.
توابع پایتون معمولاً با استفاده از سبک def a_function_name تعریف می شوند، اما با توابع lambda ما اصلاً نامی برای آن نمی گذاریم. ما این کار را انجام می دهیم زیرا هدف از یک تابع lambda این است که یک نوع بیان ساده یا عملیات را بدون نیاز به تعریف کامل یک تابع انجام دهد.
یک تابع lambda می تواند هر تعداد آرگومان را بگیرد، اما همیشه باید فقط یک عبارت داشته باشد:
x = lambda a, b : a * b print(x(5, 6)) # prints '30' x = lambda a : a*3 + 3 print(x(3)) # prints '12'
ببینید که چقدر آسان است! کمی ریاضیات اولیه را بدون نیاز به تعریف یک تابع کامل انجام دادیم. این کار یکی از بسیاری از ویژگی های پایتون است که استفاده از آن را در یک زبان برنامه نویسی ساده می کند.
2- تابع Map
Map یک تابع پایتون داخلی است که برای اعمال یک تابع در دنباله ای از عناصر مانند لیست یا Dictionary استفاده می شود. این تابع یک روش بسیار تمیز و مهمتر از همه خواندن برای انجام چنین عملی است.
def square_it_func(a): return a * a x = map(square_it_func, [1, 4, 7]) print(x) # prints '[1, 16, 49]' def multiplier_func(a, b): return a * b x = map(multiplier_func, [1, 4, 7], [2, 5, 8]) print(x) # prints '[2, 20, 56]'
مثال بالا را بررسی کنید! ما می توانیم تابع خود را در یک لیست واحد یا چند لیست اعمال کنیم. در حقیقت، می توانید از Map با هر تابع پایتون که فکر می کنید استفاده کنید، به شرطی که با عناصر دنباله ای که بر روی آنها کار می کنید سازگار باشد.
3- تابع Filter
تابع Filter کاملاً شبیه به تابع Map است زیرا یک تابع را در یک دنباله (لیست، Dictionary) اعمال می کند. تفاوت اصلی این است که فیلتر Filter فقط عناصری را که تابع اعمال شده به عنوان True برگردانده است، باز می گرداند.
برای توضیح به مثال زیر توجه کنید:
# Our numbers numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # Function that filters out all numbers which are odd def filter_odd_numbers(num): if num % 2 == 0: return True else: return False filtered_numbers = filter(filter_odd_numbers, numbers) print(filtered_numbers) # filtered_numbers = [2, 4, 6, 8, 10, 12, 14]
ما نه تنها True یا False را برای هر عنصر لیست ارزیابی کردیم ، بلکه تابع فیلتر نیز اطمینان حاصل کرد که فقط عناصری را که با True مطابقت دارند باز می گرداند. برای انجام دو مرحله بررسی یک عبارت و ایجاد یک لیست بازگشت بسیار مناسب است.
4- ماژول Itertools
ماژول Python Itertools مجموعه ای از ابزارها برای مدیریت تکرار است. تکرار کننده یک نوع داده است که می تواند در حلقه for از جمله لیست ها و Dictionary استفاده شود.
استفاده از توابع موجود در ماژول Itertools به شما امکان می دهد بسیاری از عملیات تکرار کننده را انجام دهید که معمولاً به توابع چند خطی و درک لیست پیچیده نیاز دارد. نمونه های زیر را برای یک تصویر فوق العاده از جادوی Itertools بررسی کنید!
from itertools import * # Easy joining of two lists into a list of tuples for i in izip([1, 2, 3], ['a', 'b', 'c']): print i # ('a', 1) # ('b', 2) # ('c', 3) # The count() function returns an interator that # produces consecutive integers, forever. This # one is great for adding indices next to your list # elements for readability and convenience for i in izip(count(1), ['Bob', 'Emily', 'Joe']): print i # (1, 'Bob') # (2, 'Emily') # (3, 'Joe') # The dropwhile() function returns an iterator that returns # all the elements of the input which come after a certain # condition becomes false for the first time. def check_for_drop(x): print 'Checking: ', x return (x > 5) for i in dropwhile(should_drop, [2, 4, 6, 8, 10, 12]): print 'Result: ', i # Checking: 2 # Checking: 4 # Result: 6 # Result: 8 # Result: 10 # Result: 12 # The groupby() function is great for retrieving bunches # of iterator elements which are the same or have similar # properties a = sorted([1, 2, 1, 3, 2, 1, 2, 3, 4, 5]) for key, value in groupby(a): print(key, value), end=' ') # (1, [1, 1, 1]) # (2, [2, 2, 2]) # (3, [3, 3]) # (4, [4]) # (5, [5])
5- توابع Generator
توابع Generator به شما امکان می دهد تابعی را که شبیه یک تکرار کننده عمل می کند اعلام کنید، یعنی می توان از آن در حلقه for استفاده کرد. این کار کد شما را بسیار ساده کرده و از نظر حافظه بسیار کارآمدتر از یک حلقه ساده است.
مثالی را در نظر بگیرید که می خواهیم همه اعداد را از 1 تا 1000 جمع کنیم. قسمت اول کد زیر نشان می دهد که چگونه این کار را با استفاده از حلقه for انجام می دهید.
در نگاه اول همه چیز خوب و جالب است بشرطی لیست کوچک باشد، مثلاً طول آن 1000 باشد. مشکل زمانی بوجود می آید که بخواهید این کار را با یک لیست بزرگتر انجام دهید، مثلاً 1 میلیارد. با حلقه for، آن لیست بزرگ در حافظه ایجاد قحطی خواهد کرد ( همه افراد RAM نامحدودی برای ذخیره چنین چیزی ندارند!) تابع range در پایتون همین کار را انجام می دهد، این لیست را در حافظه ایجاد می کند.
بخش 2 کد خلاصه لیست اعداد را با استفاده از Generator پایتون را نشان می دهد. یک Generator عناصری را ایجاد می کند و آنها را فقط در صورت نیاز در حافظه ذخیره می کند، یعنی یک به یک. این بدان معناست که اگر مجبور شوید 1 میلیارد عدد ایجاد کنید ، فقط آنها را یک به یک در حافظه ذخیره می کنید! تابع xrange در پایتون از Generator برای ایجاد لیست استفاده می کند.
اگر محدوده وسیعی دارید که می خواهید فهرستی برای آن تهیه کنید، از Generator یا تابع xrange استفاده کنید. این امر به ویژه در مورد سیستم حساس به حافظه مانند موبای ها صادق است.
با این اوصاف، اگر می خواهید چندین بار لیست را تکرار کنید و به اندازه کافی کوچک باشد تا در حافظه جا بیفتد، بهتر است از حلقه ها و عملکرد محدوده استفاده کنید. این به این دلیل است که Generator و xrange هر بار که به آنها دسترسی پیدا می کنید، ارزش لیست را ایجاد می کنند، در حالی که محدوده یک لیست ایستا است و اعداد صحیح از قبل برای دسترسی سریع در حافظه وجود دارد.
# (1) Using a for loop numbers = list() for i in range(1000): numbers.append(i+1) total = sum(numbers) # (2) Using a generator def generate_numbers(n): num = 0 while num < n: yield num num += 1 total = sum(generate_numbers(1000)) # (3) range() vs xrange() total = sum(range(1000 + 1)) total = sum(xrange(1000 + 1))
شما عزیزان همچنین می توانید آموزش های متنوعی از جمله مقدمات برنامه نویسی پایتون – شروع کار با پایتون، آموزش نصب پکیج در پایتون Python – نصب کتابخانه در پایتون، فرصت های شغلی برنامه نویسی پایتون – معرفی 10 شغل مهم و پردرآمد برنامه نویسی پایتون و آموزش برنامه نویسی اندروید با پایتون در ویندوز 10 را از سایت پی استور مطالعه فرمایید.
پاورپوینت بازار کار برنامه نویسی پایتون
همانطور که میدانیم پایتون یکی از زبانهای برنامه نویسی شی گرا میباشد که به تازگی طرفداران زیادی پیدا کرده است. این پاورپوینت آماده در 21 اسلاید در قالب ppt. یا pptx. با قابلیت ویرایش برای ارائه درسی آماده دانلود میباشد. جهت دانلود این پاورپوینت میتوانید بر روی لینک زیر کلیک کنید.
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.
میتونم برای برنامه نویسی از شما کمک بگیرم