मुख्य सामग्री पर जाएं
मॉड्यूल 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"

अनेक मान? एक टुपल लौटाएँ

पायथन में कोई "आउट पैरामीटर" नहीं है: एक से अधिक चीज़ें लौटाने के लिए, 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

फ़ंक्शंस हमेशा कुछ न कुछ लौटाते हैं

पायथन में, यदि कोई फ़ंक्शन स्पष्ट रूप से return कथन घोषित नहीं करता है या एक खाली return प्रदर्शित नहीं करता है, तो यह अंतर्निहित रूप से विशेष मान None लौटा देगा। ऐसा कोई फ़ंक्शन नहीं है जो मान नहीं लौटाता हो।

इसे अजमाएं

व्यायाम#python.m5.l1.e1
प्रयास: 0लोड हो रहा है...

एक फ़ंक्शन `double(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)` का मूल्यांकन करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

वापसी न्यूनतम(संख्या), अधिकतम(संख्या)

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#python.m5.l1.e3
प्रयास: 0लोड हो रहा है...

एक फ़ंक्शन को परिभाषित करें \`is_palindrome(text)\` जो इनपुट स्ट्रिंग इसके उलटे संस्करण के बराबर होने पर \`True\` लौटाता है, और अन्यथा \`False\` लौटाता है। अंतिम अभिव्यक्ति के रूप में \`is_palindrome("radar")\` के साथ फ़ंक्शन का परीक्षण करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

स्ट्रिंग को उलटने और मूल पाठ से तुलना करने के लिए स्लाइसिंग टेक्स्ट[::-1] का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है