فانکشنەکان (Functions) لە پایثون
وانەی شەشەم: فەنکشنەکان و چۆنیەتی بەکارهێنانیان بۆ ڕێکخستنی کۆد و دووبارە بەکارهێنانەوەی زیاتر.
فێربوونی پایتۆن
February 4, 2025

وانە شەشەم: فانکشنەکان (Functions) لە پایثون
بەخێربێیت بۆ وانە شەشەم لە سلسلەی فێربوونی زمانی پایثون! لەم وانەیەدا، ئێمە بە تێکچوونی فانکشنەکان (Functions) دەچینە سەر و چۆنیەتی بەکارهێنانیان بۆ ڕێکخستنی کۆد و باشترکردنی دووبارە بەکارهێنان. فانکشنەکان یەکێک لە مفهومە بنچینەییەکانی بەرنامەنووسییە، کە بۆ دابەشکردنی بەرنامە بۆ بەشە کڵاو و ئاسان بەڕێوەبردن بەکاردێنرێن.
1. فانکشنەکان چییە؟
فانکشنەکان کۆیەکی کۆدەکانن کە کارێکی دیاریکراو ئەنجام دەدەن و دەتوانرێت لە کاتی پێویستدا بەکاربهێنرێن. بە بەکارهێنانی فانکشنەکان، ئێمە دەتوانین:
- هێنانەوەی کۆد لە دووبارەبوونەوە بڕوانێت.
- کۆد بە شێوەی باشتر ڕێکبخەین.
- بەرنامەکە بە شێوەی باشتر و ئاسانتر بخوێنرێت و بەردەوام بمێنێت.
أ. دیاریکردنی فانکشن
فانکشنەکە بە بەکارهێنانی وشەی کلیلی def دیاری دەکرێت، دواتر ناوی فانکشنەکە و کورسییەکانی () کە پارامەترەکانی لە ناویدا دەبن.
def greet():
print("Hello, World!")
ب. بەکارهێنانی فانکشن
دوای دیاریکردنی فانکشن، ئێمە دەتوانین بەکاری بهێنین بە بەکارهێنانی ناوی فانکشنەکە و کورسییەکانی.
greet() # ئەنجام: Hello, World!
2. فانکشنەکان بە پارامەترەکان
پارامەترەکان بەهایەکانن کە لە کاتی بەکارهێنانی فانکشن بۆیان دەگوازرێت. فانکشنەکان دەتوانن بێ پارامەتر بن یان یەک یان زیاتر پارامەتریان هەبێت.
أ. فانکشن بە پارامەترێک
def greet(name):
print(f"Hello, {name}!")
greet("Ali") # ئەنجام: Hello, Ali!
ب. فانکشن بە چەندین پارامەتر
def add(a, b):
print(a + b)
add(5, 3) # ئەنجام: ٨
3. گەڕاندنی بەهایەکان لە فانکشنەکان
لە جیاتی نووسینی ئەنجامەکان لە ناو فانکشن، ئێمە دەتوانین بەهایەکان بگەڕێنین بە بەکارهێنانی وشەی return . ئەم بەهایانە دەتوانرێن لە گۆڕاوێکدا هێندەکرابێت یان بە شێوەی دەرئەنجام بەکاربێنرێن.
def multiply(a, b):
return a * b
result = multiply(4, 5)
print(result) # ئەنجام: ٢٠
تێبینی: کاتێک بە دەرئەنجامی return بگەڕێت، فانکشنەکە لە کارکردندا وەستێت و هیچ کۆدێکی دواتر ناکرێتەوە.
4. بەهایەکانی بنچینەیی بۆ پارامەترەکان
ئێمە دەتوانین بەهایە بنچینەییانە بۆ پارامەترەکان دیاری بکەین، بەم شێوەیە ئەگەر هیچ بەهایەک بۆ پارامەتر نەدرێت، بەهایە بنچینەییەکە بەکاردێت.
def greet(name="Guest"):
print(f"Hello, {name}!")
greet() # ئەنجام: Hello, Guest!
greet("Ali") # ئەنجام: Hello, Ali!
5. فانکشنەکان بە ژمارەی نەناسراوی پارامەترەکان
ئەگەر نازانیت چەند پارامەترێک بۆ فانکشن دروست دەکەیت، ئێمە دەتوانین بەکاربێنین *args بۆ گواستنەوەی ژمارەی نەناسراوی پارامەترەکان.
أ. بەکارهێنانی *args
def sum_all(*args):
total = 0
for num in args:
total += num
return total
print(sum_all(1, 2, 3, 4)) # ئەنجام: ١٠
ب. بەکارهێنانی **kwargs
ئەگەر بەهایەکان بە شێوەی جووتەی کلیل-بەها بەکاربێنرێن، ئێمە دەتوانین **kwargs بەکاربێنین.
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Ali", age=25, city="Riyadh")
# ئەنجام:
# name: Ali
# age: 25
# city: Riyadh
6. فانکشنەکانی ناوەندی (Nested Functions)
ئێمە دەتوانین فانکشنێک لە ناو فانکشنێکی تر دروست بکەین. ئەم فانکشنە ناوەندییەکان دەتوانن تەنها لە ناو فانکشنی بابەتدا بەکاربێنرێن.
def outer_function():
print("This is the outer function.")
def inner_function():
print("This is the inner function.")
inner_function()
outer_function()
# ئەنجام:
# This is the outer function.
# This is the inner function.
7. فانکشنەکانی نادیار (Lambda Functions)
فانکشنە نادیارەکان (یان lambda ) فانکشنە کڵاوەکانن کە دەتوانرێن لە ڕیزێکدا بنوسرێن. ئەمە بەکاردێت کاتێک پێویستت بە فانکشنێکی سادە بۆ بەکارهێنانی کاتییەوە.
أ. شێوەپێدانی فانکشنی Lambda
square = lambda x: x ** 2
print(square(5)) # ئەنجام: ٢٥
ب. بەکارهێنانی Lambda لەگەڵ فانکشنەکانی تر
ئێمە دەتوانین lambda بەکاربێنین لەگەڵ فانکشنەکانی وەک map() و filter() .
# بەکارهێنانی map() بۆ بەکارهێنانی فانکشن لەسەر هەموو تەنکەکانی لیست
numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x ** 2, numbers))
print(squares) # ئەنجام: [١, ٤, ٩, ١٦]
# بەکارهێنانی filter() بۆ ڕەتکردنەوەی تەنکەکان بە پشتڕاستی بە شەرط
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # ئەنجام: [٢, ٤]
8. ناوبەری گۆڕاوەکان (Scope)
ناوبەری گۆڕاوەکان شوێنی بەکارهێنانیان دیاری دەکات لە ناو بەرنامەدا. دوو جۆری سەرەکییەکانی ناوبەر هەیە:
- گۆڕاوە محلییەکان (Local): گۆڕاوەکانی دیاریکراو لە ناو فانکشن و ناتوانرێت بەرەو دەرەوەی فانکشن بگەین.
- گۆڕاوە عامەکان (Global): گۆڕاوەکانی دیاریکراو لە دەرەوەی فانکشن و دەتوانرێت لە هەموو شوێنێکدا بەکاربێنرێن.
أ. گۆڕاوە محلییەکان
def my_function():
x = 10 # گۆڕاوی محلی
print(x)
my_function() # ئەنجام: ١٠
# print(x) # هەڵە: x لێرەدا دیاری نەکراوە
ب. گۆڕاوە عامەکان
x = 10 # گۆڕاوی عام
def my_function():
print(x)
my_function() # ئەنجام: ١٠
print(x) # ئەنجام: ١٠
تێبینی: ئەگەر بەرنامەکەت پێویست بێت گۆڕاوی عام بگۆڕێت لە ناو فانکشن، پێویستە بەکاربێنیت وشەی global .
x = 10
def modify_global():
global x
x = 20
modify_global()
print(x) # ئەنجام: ٢٠
9. کارەکانی کارا
کارەکانی ١: ژمارەی ناوەندی
def calculate_average(numbers):
if len(numbers) == 0:
return 0
return sum(numbers) / len(numbers)
nums = [10, 20, 30, 40, 50]
average = calculate_average(nums)
print(f"The average is: {average}") # ئەنجام: The average is: ٣٠.٠
کارەکانی ٢: سەیرکردنی ژمارە تاکەکان
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
print(is_prime(11)) # ئەنجام: True
print(is_prime(15)) # ئەنجام: False
کارەکانی ٣: بەکارهێنانی Lambda لەگەڵ filter()
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # ئەنجام: [٢, ٤, ٦]
10. پێشنیارەکان لەسەر بەکارهێنانی فانکشنەکان
-
فانکشنەکان بچوک و دیاریکراو بکە: هەوڵبدە فانکشنێک تەنها بە پشتڕاستی بە کارێک دابنێت. ئەمە کۆدەکە بە شێوەی باشتر و ئاسانتر بخوێنێت و بەردەوام بمێنێت.
-
ناوەکانی ڕوون بەکاربھێنە: ناوەکانی دیاری بکە کە وەسفی کاری فانکشن بە شێوەی ڕوون بکەن.
-
کەمتر بەکاربهێنە گۆڕاوە عامەکان: هەوڵبدە کەمتر بەکاربهێنیت گۆڕاوە عامەکان، چونکە لە بەرنامەی گەورەدا دەکرێت کێشە دروست بکەن.
کۆتایی
لەم وانەیەدا، ئێمە فێر بووین چۆن فانکشنەکان دروست بکەین و بەکاربهێنین بۆ ڕێکخستنی کۆد و باشترکردنی دووبارە بەکارهێنان. فانکشنەکان ئامرازێکی هێزمندە بۆ دابەشکردنی بەرنامە بۆ بەشە کڵاو و ئاسان بەڕێوەبردن.
لە وانەی داهاتوودا، ئێمە بیردەردەچینەوە بۆ کارکردن لەگەڵ هەڵەکان (Error Handling) و چۆنیەتی شاردنی استثناکان لە بەرنامەکان. بەردەوام بمێنە لە چارەسەرکردن و هیچ شک نەکە لە پرسینەوەی پرسیارەکانت ئەگەر پێویست بە یارمەتیت هەبێت!
🚀 ئێستاش ئەتوانیت بەردەوام بمێنە لە ڕێگایەکی راستەقینە بۆ بوونی بەرنامەنووسێکی پێشکەوتوو!
کۆمێنتەکان

هیچ کۆمێنتێک نییە
تکایە بچۆرە ژوورەوە بۆ ئەوەی کۆمێنتێک بنوسیت