मॉड्यूल पाठ (1/4)
def और वापसी
एक फ़ंक्शन कोड का एक पुन: प्रयोज्य ब्लॉक है: आप इसे एक बार def से परिभाषित करते हैं,
फिर इसे जितनी बार चाहें कॉल करें। फ़ंक्शन कोड को मॉड्यूलर बनाते हैं,
परीक्षण योग्य, और स्व-दस्तावेजीकरण।
मूल वाक्यविन्यास
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defफ़ंक्शन का परिचय देता है, उसके बाद नाम और पैरामीटर का परिचय देता है कोष्ठक:इंडेंटेड ब्लॉक खोलता है।returnकॉलर को एक मान वापस भेजता है और फ़ंक्शन समाप्त करता है।
स्पष्ट return बनाम अंतर्निहित None
यदि आप return नहीं लिखते हैं, तो फ़ंक्शन स्पष्ट रूप से None लौटाता है:
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # Noneएक खाली return (कोई मान नहीं) भी None लौटाता है, लेकिन यह प्रारंभिक के रूप में काम कर सकता है
बाहर निकलें:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"अनेक मान? एक टुपल लौटाएँ
पायथन में कोई "आउट पैरामीटर" नहीं है: एक से अधिक चीज़ें लौटाने के लिए, a लौटाएँ टुपल (अक्सर कॉल करने वाले द्वारा अनपैक किया जाता है)।
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2डॉकस्ट्रिंग: अंतर्निहित दस्तावेज़ीकरण
फ़ंक्शन के अंदर पहली स्ट्रिंग docstring है: यह इसमें दिखाई देती है
help(fn) और IDEs में टूलटिप के रूप में।
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2दायरा: स्थानीय चर
किसी फ़ंक्शन के अंदर परिभाषित वेरिएबल स्थानीय हैं: वे मौजूद नहीं हैं बाहर.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedफ़ंक्शंस हमेशा कुछ न कुछ लौटाते हैं
पायथन में, यदि कोई फ़ंक्शन स्पष्ट रूप से return कथन घोषित नहीं करता है या एक खाली return प्रदर्शित नहीं करता है, तो यह अंतर्निहित रूप से विशेष मान None लौटा देगा। ऐसा कोई फ़ंक्शन नहीं है जो मान नहीं लौटाता हो।
इसे अजमाएं
एक फ़ंक्शन `double(x)` को परिभाषित करें जो `x * 2` लौटाता है। फिर इसे 7 से कॉल करें और परिणाम को `परिणाम` पर निर्दिष्ट करें। 'परिणाम' का मूल्यांकन करें.
संकेत दिखाएँ
रिटर्न x*2 का प्रयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`min_max(nums)` को परिभाषित करें जो एक टपल `(न्यूनतम, अधिकतम)` लौटाता है। इसे `[3, 1, 4, 1, 5, 9, 2, 6]` पर कॉल करें और परिणाम को `एमएन, एमएक्स` में अनपैक करें। `(mn, mx)` का मूल्यांकन करें।
संकेत दिखाएँ
वापसी न्यूनतम(संख्या), अधिकतम(संख्या)
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
एक फ़ंक्शन को परिभाषित करें \`is_palindrome(text)\` जो इनपुट स्ट्रिंग इसके उलटे संस्करण के बराबर होने पर \`True\` लौटाता है, और अन्यथा \`False\` लौटाता है। अंतिम अभिव्यक्ति के रूप में \`is_palindrome("radar")\` के साथ फ़ंक्शन का परीक्षण करें।
संकेत दिखाएँ
स्ट्रिंग को उलटने और मूल पाठ से तुलना करने के लिए स्लाइसिंग टेक्स्ट[::-1] का उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है