Proqramlaşdırma

Funksiyalar

Funksiya təyini, parametrlər, lokal dəyişənlər, return və docstring.

Bütün dərslər · Python dərsləri: sıfırdan öyrən

Funksiyanı təyin etmək

Funksiya adı olan kod parçasıdır; bir dəfə yazıb dəfələrlə çağırırsan. def ilə təyin olunur, mötərizədə parametrlər yazılır, nəticə return ilə qaytarılır. return olmasa funksiya None qaytarır.

def area(width, height):
    return width * height

print(area(4, 5))        # 20
room = area(3.5, 2)
print(room)              # 7.0

Funksiyanın ilk sətri kimi mətn yazsan, bu docstring olur və help(area) ilə oxunur. Yaxşı funksiya bir iş görür və adı bu işi deyir.

def is_adult(age):
    """Return True if age is 18 or more."""
    return age >= 18

Parametrlər

Parametrə ilkin qiymət vermək olar; onda çağırışda onu yazmaq məcburi deyil. Arqumentləri sıra ilə və ya adla ötürə bilərsən.

def greet(name, greeting="Hello", mark="!"):
    return f"{greeting}, {name}{mark}"

print(greet("Leyla"))
print(greet("Leyla", mark="?"))
print(greet(greeting="Salam", name="Kamran"))

Sayı bilinməyən arqumentlər üçün *args (mövqeli) və **kwargs (adlı) var. Diqqət: ilkin qiymət kimi boş list [] yazma; o, çağırışlar arasında paylaşılır. Əvəzinə None yaz və funksiyanın içində yeni list yarat.

def total(*numbers):
    return sum(numbers)

def add_tag(tag, bucket=None):
    if bucket is None:
        bucket = []
    bucket.append(tag)
    return bucket

print(total(1, 2, 3, 4))   # 10
print(add_tag("a"), add_tag("b"))   # ['a'] ['b']

Dəyişənin görünmə sahəsi

Funksiyanın içində yaradılan dəyişən lokaldır və kənarda görünmür. Kənardakı (qlobal) dəyişəni oxumaq olar, amma dəyişmək üçün global sözü lazımdır. Praktikada qlobal dəyişəndən qaçmaq və lazım olanı parametrlə ötürmək daha yaxşıdır.

rate = 0.18

def with_tax(price):
    tax = price * rate      # reads the global
    return price + tax

print(with_tax(100))
# print(tax)  -> NameError: tax exists only inside the function

Müəllif: Nibras Code