مرکزی مواد پر جائیں
ماڈیول 5 · سبق 1 از 4کورس میں 17/36~12 min
ماڈیول اسباق (1/4)

def اور واپسی

ایک فنکشن کوڈ کا دوبارہ قابل استعمال بلاک ہے: آپ اسے ایک بار def کے ساتھ بیان کرتے ہیں، پھر اسے جتنی بار چاہیں کال کریں۔ افعال کوڈ ماڈیولر بناتے ہیں، قابل امتحان، اور خود دستاویزی.

بنیادی نحو

Python
def saluta(nome):
    return f"Ciao, {nome}!"

saluta("Ada")     # 'Ciao, Ada!'
  • def فنکشن متعارف کراتا ہے، اس کے بعد نام اور پیرامیٹرز قوسین
  • : انڈینٹڈ بلاک کو کھولتا ہے۔
  • return کالر کو ایک قدر واپس بھیجتا ہے اور فنکشن کو ختم کرتا ہے۔

واضح return بمقابلہ مضمر None

اگر آپ return نہیں لکھتے ہیں، تو فنکشن None واپس آتا ہے:

Python
def stampa_e_basta(x):
    print(x)

risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato)   # None

ایک ننگا return (کوئی قدر نہیں) بھی None لوٹاتا ہے، لیکن یہ ابتدائی طور پر کام کر سکتا ہے باہر نکلیں:

Python
def primo_pari(nums):
    for n in nums:
        if n % 2 == 0:
            return n
    return None   # explicit: communicates "not found"

ایک سے زیادہ اقدار؟ ایک ٹوپل واپس کریں۔

Python کے پاس کوئی "آؤٹ پیرامیٹر" نہیں ہے: ایک سے زیادہ چیزوں کو واپس کرنے کے لیے، a ٹوپل (اکثر کال کرنے والے کے ذریعہ پیک کیا جاتا ہے)۔

Python
def divisione_resto(a, b):
    return a // b, a % b

quoziente, resto = divisione_resto(17, 5)
# 3, 2

Docstring: بلٹ ان دستاویزات

فنکشن کے اندر پہلی سٹرنگ ڈاکسٹرینگ ہے: یہ اس میں ظاہر ہوتی ہے۔ help(fn) اور IDEs میں ٹول ٹِپ کے طور پر۔

Python
def area_cerchio(raggio):
    """Calcola l'area di un cerchio dato il raggio."""
    import math
    return math.pi * raggio ** 2

دائرہ کار: مقامی متغیرات

فنکشن کے اندر متعین کردہ متغیرات مقامی ہیں: وہ موجود نہیں ہیں۔ باہر

Python
def f():
    x = 10
    return x

f()    # 10
x      # NameError: name 'x' is not defined

افعال ہمیشہ کچھ واپس کرتے ہیں۔

Python میں، اگر کوئی فنکشن واضح طور پر return اسٹیٹمنٹ کا اعلان نہیں کرتا ہے یا خالی return کو نمایاں نہیں کرتا ہے، تو یہ واضح طور پر اسپیشل ویلیو None کو لوٹائے گا۔ ایسا کوئی فنکشن نہیں ہے جو قدر واپس نہ کرے۔

اسے آزمائیں

ورزش#python.m5.l1.e1
کوششیں: 0لوڈ ہو رہا ہے…

ایک فنکشن `ڈبل(x)` کی وضاحت کریں جو `x * 2` لوٹاتا ہے۔ پھر اسے 7 کے ساتھ کال کریں اور نتیجہ کو 'نتیجہ' پر تفویض کریں۔ `نتائج` کا اندازہ لگائیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

واپسی x * 2 استعمال کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#python.m5.l1.e2
کوششیں: 0لوڈ ہو رہا ہے…

`min_max(nums)` کی وضاحت کریں جو ٹپل `(کم سے کم، زیادہ سے زیادہ)` لوٹاتا ہے۔ اسے `[3, 1, 4, 1, 5, 9, 2, 6]` پر کال کریں اور نتیجہ کو `mn, mx` میں کھولیں۔ اندازہ کریں `(mn, mx)`۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

واپسی کم سے کم (عدد)، زیادہ سے زیادہ (عدد)

3 کوششوں کے بعد حل دستیاب ہے۔

اضافی چیلنج

ورزش#python.m5.l1.e3
کوششیں: 0لوڈ ہو رہا ہے…

ایک فنکشن کی وضاحت کریں \`is_palindrome(text)\` جو واپس کرتا ہے \`True\` اگر ان پٹ سٹرنگ اس کے الٹ ورژن کے برابر ہے، اور \`False\` دوسری صورت میں۔ آخری اظہار کے طور پر \`is_palindrome("radar")\` کے ساتھ فنکشن کی جانچ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

سٹرنگ کو ریورس کرنے کے لیے سلائسنگ ٹیکسٹ [::-1] کا استعمال کریں اور اس کا اصل متن سے موازنہ کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔