جلسه هجدهم
جلسه هجدهم
توابع
توابع در پایتون را برایتان توضیح می دهم. توابع (Functions) در پایتون، بخشی از کد هستند که می توانند انجام وظایف خاصی را برعهده گیرند و به عنوان یک واحد مجزا از کل برنامه عمل کنند. زمانی که از یک کد می خواهید چندین بار تکرار کنید، تنها یک بار آن را می نویسید و هر زمان که نیاز بود، با فراخوانی از آن استفاده میکنید.
تعریف تابع در پایتون به شکل زیر است:
def function_name(parameters):
# کد تابع
return value
توضیح قسمت های مختلف:
1. def
: کلمه کلیدی برای تعریف تابع.
2. function_name
: نام تابع که باید منحصر به فرد باشد.
3. parameters
: اختیاری، پارامترهای ورودی تابع که به آن ها نیاز دارد.
4. # کد تابع
: دستورات و کدی که تابع باید انجام دهد.
5. return
: اختیاری، مقداری که تابع باید برگرداند.
برخی ویژگی های مهم توابع:
– توابع می توانند پارامترهای ورودی داشته باشند و مقادیر خروجی را برگردانند.
– توابع می توانند تابع دیگری را صدا بزنند (فراخوانی تابع).
– توابع می توانند مقادیر پیش فرض برای پارامترهای ورودی تعیین کنند.
– توابع می توانند مقادیر نامحدود (args) و کلیدی (kwargs) را به عنوان پارامتر بپذیرند.
– توابع می توانند دکیومنت داشته باشند که شامل توضیحات درباره کاربرد آن ها است.
مثال های ساده از توابع:
1 2 3 4 5 6 7 8 9 10 11 |
<xmp>def greet(name): """این تابع یک سلام ساده به کاربر نشان می دهد""" print(f"Hello, {name}!") greet("Alice") # Output: Hello, Alice! def add(a, b): """این تابع دو عدد را جمع می کند""" return a + b result = add(5, 3) print(result) # Output: 8</xmp> |
در مثال اول، تابع greet()
یک سلام ساده به کاربر نشان می دهد. در مثال دوم، تابع add()
دو عدد را جمع می کند و مقدار حاصل را برمی گرداند.
توابع در پایتون بسیار قدرتمند و کاربردی هستند و می توانند به ساختاربندی و سازماندهی کد کمک کنند. همچنین استفاده از آن ها در برنامه نویسی شی گرا یا برنامه نویسی تابعی نیز مفید است.
مثال 1: تابع جمع دوعدد را بنویسید.
1 2 3 4 5 6 |
<xmp>def add_number(a , b): return a+b result = add_number(5 , 3) print(result) #output : 8</xmp> |
مثال 2: تابع محاسبه مساحت مستطیل را بنویسید.
1 2 3 4 5 6 |
<xmp>def calculate_rectangle_area(lenght , width): return lenght *width area = calculate_rectangle_area(4 , 6) print(area) #output 24</xmp> |
مثال 3: تابعی برای استخراج حروف اول کلمات در جمله بنویسید.
1 2 3 4 5 6 7 8 |
<xmp>def extract_first_letters(sentence): words = sentence.split() first_letters = [word[0] for word in words] return first_letters letters = extract_first_letters('hello world') print(letters) #output : ['H' , 'W']</xmp> |
append()(درج)
append()
یک متد در پایتون است که به شما امکان می دهد تا یک عنصر جدید را به انتهای یک لیست اضافه کنید. وقتی که شما append()
را روی یک لیست فراخوانی می کنید، عنصر جدید به انتهای لیست اضافه می شود. این به معنی افزایش طول لیست به اندازه یک است. append()
یک متد درجا (in-place) است، به این معنی که تغییرات را مستقیماً روی لیست اصلی اعمال می کند و نیازی به اختصاص دادن مجدد متغیر نیست.
ساختار کلی استفاده از append()
به صورت زیر است:
list.append(element)
– list
به لیستی که می خواهید عنصر جدید را به آن اضافه کنید اشاره می کند.
– element
عنصری است که می خواهید به انتهای لیست اضافه کنید.
مثال های استفاده از append()
:
1 2 3 4 5 6 7 8 9 10 11 12 |
<xmp>fruits = ["apple", "banana", "cherry"] fruits.append("orange") print(fruits) # Output: ['apple', 'banana', 'cherry', 'orange'] numbers = [1, 2, 3] numbers.append(4) print(numbers) # Output: [1, 2, 3, 4] empty_list = [] empty_list.append("new element") print(empty_list) # Output: ['new element'] </xmp> |
در مثال اول، لیست fruits
با عنصر "orange"
به انتهای آن افزوده می شود.
در مثال دوم، لیست numbers
با عنصر 4
به انتهای آن افزوده می شود.
در مثال سوم، یک لیست خالی empty_list
ایجاد شده و سپس عنصر "new element"
به انتهای آن افزوده می شود.
()insert(درج در موقعیت خاص)
insert()
یک متد در پایتون است که به شما امکان می دهد تا یک عنصر جدید را در موقعیت خاصی در یک لیست قرار دهید. وقتی که شما insert()
را روی یک لیست فراخوانی می کنید، عنصر جدید در موقعیت مشخص شده قرار می گیرد و سایر عناصر به سمت راست جابه جا می شوند. این به معنی افزایش طول لیست به اندازه یک است. insert()
یک متد درجا (in-place) است، به این معنی که تغییرات را مستقیماً روی لیست اصلی اعمال می کند و نیازی به اختصاص دادن مجدد متغیر نیست.
ساختار کلی استفاده از insert()
به صورت زیر است:
list.insert(index, element)
– list
به لیستی که می خواهید عنصر جدید را به آن اضافه کنید اشاره می کند.
– index
موقعیتی است که عنصر جدید باید در آن قرار گیرد.
– element
عنصری است که می خواهید در موقعیت مشخص شده قرار دهید.
مثال های استفاده از insert()
:
1 2 3 4 5 6 7 8 9 10 11 |
<xmp>fruits = ["apple", "banana", "cherry"] fruits.insert(1, "orange") print(fruits) # Output: ['apple', 'orange', 'banana', 'cherry'] numbers = [1, 2, 3] numbers.insert(0, 0) print(numbers) # Output: [0, 1, 2, 3] empty_list = [] empty_list.insert(0, "new element") print(empty_list) # Output: ['new element']</xmp> |
در مثال اول، عنصر "orange"
در موقعیت 1 (بعد از "apple"
) در لیست fruits
قرار داده می شود.
در مثال دوم، عنصر 0
در موقعیت 0 (ابتدای لیست) در لیست numbers
قرار داده می شود.
در مثال سوم، عنصر "new element"
در موقعیت 0 (ابتدای لیست) در لیست خالی empty_list
قرار داده می شود.
باشد، با کمال میل متدهای del
، pop()
و remove()
در پایتون را به صورت جداگانه توضیح می دهم:
del (حذف):
– del
یک عملگر در پایتون است که به شما امکان می دهد تا عناصر را از لیست ها، دیکشنری ها و سایر ساختارهای داده ای حذف کنید.
– ساختار استفاده از del
به صورت زیر است:
del list[index]
del dictionary[key]
– با استفاده از del
می توانید یک عنصر در موقعیت خاص را از لیست حذف کنید یا یک کلید-مقدار را از دیکشنری حذف نمایید.
– del
به طور مستقیم ساختار داده را تغییر می دهد و نیاز به اختصاص دادن مجدد متغیر ندارد.
– مثال:
1 2 3 4 5 |
<xmp>my_list = [1, 2, 3, 4, 5] del my_list[2] # حذف عنصر در موقعیت 2 (عدد 3) print(my_list) # Output: [1, 2, 4, 5]</xmp> |
pop() (خارج کردن):
– pop()
یک متد در پایتون است که به شما امکان می دهد تا عناصر را از لیست ها خارج کنید.
– ساختار استفاده از pop()
به صورت زیر است:
list.pop(index)
– با استفاده از pop()
می توانید عنصری را در موقعیت خاص از لیست خارج کنید. اگر index
ارائه نشود، pop()
آخرین عنصر لیست را خارج می کند.
– pop()
علاوه بر حذف عنصر از لیست، مقدار آن را نیز برمی گرداند.
– pop()
به طور مستقیم ساختار داده را تغییر می دهد و نیاز به اختصاص دادن مجدد متغیر ندارد.
– مثال:
1 2 3 4 5 6 |
<xmp>my_list = [1, 2, 3, 4, 5] popped_item = my_list.pop(2) # خارج کردن عنصر در موقعیت 2 (عدد 3) print(my_list) # Output: [1, 2, 4, 5] print(popped_item) # Output: 3</xmp> |
remove() (حذف):
– remove()
یک متد در پایتون است که به شما امکان می دهد تا عناصر را از لیست ها حذف کنید.
– ساختار استفاده از remove()
به صورت زیر است:
list.remove(element)
– با استفاده از remove()
می توانید عنصری را از لیست حذف کنید. اگر عنصر مورد نظر در لیست وجود نداشته باشد، خطای ValueError
ایجاد می شود.
– remove()
به طور مستقیم ساختار داده را تغییر می دهد و نیاز به اختصاص دادن مجدد متغیر ندارد.
– مثال:
1 2 3 4 5 |
<xmp>my_list = [1, 2, 3, 4, 5] my_list.remove(3) # حذف عنصر 3 از لیست print(my_list) # Output: [1, 2, 4, 5]</xmp> |
() len (طول):
– len()
یک تابع (bilt_in) داخلی در پایتون است که به شما امکان می دهد تا طول و اندازه یک ساختار داده را به دست آورید.
– ساختار استفاده از len()
به صورت زیر است:
len(object)
– object
می تواند انواع مختلفی از ساختارهای داده در پایتون باشد، مانند لیست، تاپل، رشته، دیکشنری و مجموعه.
– len()
مقدار عددی که نشان دهنده تعداد اعضای ساختار داده است را برمی گرداند.
– مثال:
1 2 3 4 |
<xmp>my_list = [1, 2, 3, 4, 5] print(len(my_list)) # Output: 5</xmp> |
sort() (مرتب سازی):
– sort()
یک متد در پایتون است که به شما امکان می دهد تا لیست ها را به ترتیب صعودی یا نزولی مرتب کنید.
– ساختار استفاده از sort()
به صورت زیر است:
list.sort(reverse=False)
– reverse
پارامتر اختیاری است که اگر True
باشد، لیست به ترتیب نزولی مرتب می شود.
– sort()
به طور مستقیم عناصر لیست را تغییر می دهد و نیاز به اختصاص دادن مجدد متغیر ندارد.
– مثال:
1 2 3 4 5 |
<xmp>my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5] my_list.sort() print(my_list) # Output: [1, 1, 2, 3, 4, 5, 5, 6, 9]</xmp> |
reverse()
(معکوس کردن):
– reverse()
یک متد در پایتون است که به شما امکان می دهد تا ترتیب عناصر در یک لیست را معکوس کنید.
– ساختار استفاده از reverse()
به صورت زیر است:
list.reverse()
– reverse()
به طور مستقیم عناصر لیست را معکوس می کند و نیاز به اختصاص دادن مجدد متغیر ندارد.
– مثال:
1 2 3 4 5 |
<xmp>my_list = [1, 2, 3, 4, 5] my_list.reverse() print(my_list) # Output: [5, 4, 3, 2, 1]</xmp> |
range() (دامنه):
– range()
یک تابع داخلی در پایتون است که به شما امکان می دهد تا یک سری اعداد صحیح را به راحتی ایجاد کنید.
– ساختار استفاده از range()
به صورت زیر است:
range(start, stop, step)
– start
(اختیاری): عدد اولیه در دامنه (پیش فرض 0 است).
– stop
: عدد آخری در دامنه (اما خود این عدد شامل نمی شود).
– step
(اختیاری): مقدار افزایش بین هر عدد (پیش فرض 1 است).
– range()
یک شیء ایتراتور را برمی گرداند که می توان آن را به لیست تبدیل کرد.
– مثال:
1 2 3 4 5 |
<xmp>print(list(range(1, 6))) # Output: [1, 2, 3, 4, 5] print(list(range(0, 10, 2))) # Output: [0, 2, 4, 6, 8] </xmp> |
min()
(کمترین):
– min()
یک تابع داخلی در پایتون است که به شما امکان می دهد تا کمترین مقدار در یک ساختار داده را پیدا کنید.
– ساختار استفاده از min()
به صورت زیر است:
1 2 3 4 5 |
<xmp>print(min([5, 2, 8, 1, 9])) # Output: 1 print(min(10, 5, 3)) # Output: 3 </xmp> |
– iterable
می تواند یک لیست، تاپل، رشته یا هر ساختار داده ایتراتور دیگری باشد.
– min()
کوچکترین مقدار موجود در ورودی را برمی گرداند.
– مثال:
1 2 3 4 5 |
<xmp>print(min([5, 2, 8, 1, 9])) # Output: 1 print(min(10, 5, 3)) # Output: 3 </xmp> |
max()
(بیشترین):
– max()
یک تابع داخلی در پایتون است که به شما امکان می دهد تا بیشترین مقدار در یک ساختار داده را پیدا کنید.
– ساختار استفاده از max()
به صورت زیر است:
max(iterable)
– iterable
می تواند یک لیست، تاپل، رشته یا هر ساختار داده ایتراتور دیگری باشد.
– arg1
, arg2
, *args
می تواند مجموعه ای از آرگومان های جداگانه باشد.
– max()
بزرگترین مقدار موجود در ورودی را برمی گرداند.
– مثال:
1 2 3 4 |
<xmp>print(max([5, 2, 8, 1, 9])) # Output: 9 print(max(10, 5, 3)) # Output: 10</xmp> |
sum() (جمع):
– sum()
یک تابع داخلی در پایتون است که به شما امکان می دهد تا مجموع عناصر موجود در یک ساختار داده را محاسبه کنید.
– ساختار استفاده از sum()
به صورت زیر است:
sum(iterable)
– iterable
می تواند یک لیست، تاپل، رشته یا هر ساختار داده ایتراتور دیگری باشد.
– sum()
مجموع عناصر موجود در ورودی را برمی گرداند.
– مثال:
1 2 3 4 |
<xmp>print(sum([1, 2, 3, 4, 5])) # Output: 15 print(sum(range(1, 11))) # Output: 55</xmp> |
حتما، با کمال میل متد های اسلایسینگ (Slicing) در پایتون را توضیح می دهم.
اسلایسینگ به شما امکان می دهد تا بخش های خاصی از یک ساختار داده مانند لیست، تاپل یا رشته را انتخاب کنید. این ویژگی بسیار قدرتمند و کاربردی است.
ساختار کلی اسلایسینگ به صورت زیر است:
sequence[start:stop:step]
در اینجا:
– sequence
می تواند نام لیست، تاپل یا رشته باشد.
– start
(اختیاری): شروع اسلایس (اگر مقداردهی نشود، پیش فرض 0 است).
– stop
(اختیاری): پایان اسلایس (اما خود این عنصر شامل نمی شود).
– step
(اختیاری): گام بین عناصر اسلایس (اگر مقداردهی نشود، پیش فرض 1 است).
چند مثال برای اسلایسینگ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<xmp>my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # گرفتن عناصر از موقعیت 2 تا 6 (عددهای 3 تا 7) print(my_list[2:7]) # Output: [3, 4, 5, 6, 7] # گرفتن عناصر از ابتدا تا موقعیت 5 (عددهای 1 تا 6) print(my_list[:6]) # Output: [1, 2, 3, 4, 5, 6] # گرفتن عناصر از موقعیت 3 تا انتها (عددهای 4 تا 10) print(my_list[3:]) # Output: [4, 5, 6, 7, 8, 9, 10] # گرفتن هر دومی از عناصر (عددهای 1، 3، 5، 7، 9) print(my_list[::2]) # Output: [1, 3, 5, 7, 9] # گرفتن عناصر به صورت معکوس (عددهای 10 تا 1) print(my_list[::-1]) # Output: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] # کپی گرفتن print(my_list[:]) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</xmp> |
اسلایسینگ بسیار قدرتمند و مفید است و می تواند به شما در دستکاری و انتخاب بخش های خاصی از ساختارهای داده کمک کند. این ویژگی به طور گسترده ای در برنامه نویسی پایتون استفاده می شود.