Funksiyalar kodni qayta ishlatish imkonini beradi.

Oddiy funksiya

def salomlash(ism):
    return f'Salom, {ism}!'

print(salomlash('Sherali'))

Default qiymatlar

def tanishtirish(ism, yosh=25, shahar='Toshkent'):
    return f'{ism}, {yosh} yosh, {shahar}'

print(tanishtirish('Ali'))
print(tanishtirish('Vali', yosh=30))

*args β€” o'zgaruvchi argumentlar

def yig'indisi(*sonlar):
    return sum(sonlar)

print(yig'indisi(1, 2, 3, 4, 5))   # 15

**kwargs β€” kalit so'zli argumentlar

def ma'lumot(**kwargs):
    for kalit, qiymat in kwargs.items():
        print(f'{kalit}: {qiymat}')

ma'lumot(ism='Ali', yosh=25, shahar='Toshkent')

Lambda funksiyalar

kvadrat = lambda x: x**2
print(kvadrat(5))   # 25

# sorted() bilan
talabalar = [('Ali', 85), ('Vali', 92), ('Soli', 78)]
tartiblangan = sorted(talabalar, key=lambda x: x[1], reverse=True)

Dekorator

def vaqt_oluvchi(func):
    import time
    def wrapper(*args, **kwargs):
        boshi = time.time()
        natija = func(*args, **kwargs)
        print(f'Vaqt: {time.time() - boshi:.2f} sek')
        return natija
    return wrapper

@vaqt_oluvchi
def sekin_funksiya():
    import time
    time.sleep(1)

sekin_funksiya()