एक फ़ंक्शन में कई return स्टेटमेंट हो सकते हैं। यह एक मान if स्टेटमेंट में लौटा सकता है और दूसरा मान else स्टेटमेंट में। यह याद रखना महत्वपूर्ण है कि जैसे ही फ़ंक्शन किसी मान को return करता है, उसका निष्पादन रुक जाता है। जब फ़ंक्शन return स्टेटमेंट तक पहुंचता है, तो प्रोग्राम का निष्पादन वहीं से जारी रहता है जहाँ से फ़ंक्शन को कॉल किया गया था:
def process_only_even(n):
if n % 2 == 1:
return 'This was an odd number!'
print('Very interesting number ...', n)
n += 18
print('Adding 18 will result in:', n)
return n
print(process_only_even(5))
# This was an odd number!
print(process_only_even(6))
# Very interesting number ... 6
# Adding 18 will result in: 24
# 24
तो, फ़ंक्शन केवल एक बार ही परिणाम लौटाता है, और प्रोग्राम का निष्पादन वहीं से जारी रहता है जहाँ से फ़ंक्शन को कॉल किया गया था।
यह विशेष रूप से तब उपयोगी होता है जब आप लूप में किसी मान को return कर सकते हैं; इस प्रकार, लूप और फ़ंक्शन दोनों ही उस बिंदु पर रुक जाते हैं, और प्रोग्राम वापस वहीं पहुंचता है जहाँ से फ़ंक्शन को कॉल किया गया था। हम इस तरह के लूप में break का उपयोग करने से बच सकते हैं।
चुनौती
हम किसी संख्या को "विशेष" तब कहेंगे जब वह सम हो और उसके अंतिम दो अंकों का योग 7 हो।
एक फ़ंक्शन is_special(n) को लागू करें जो यदि n विशेष है तो True लौटाएगा, अन्यथा False। यदि संख्या "विशेष" नहीं है, तो फ़ंक्शन को परिणाम लौटाने से पहले आउटपुट में Not special भी प्रिंट करना चाहिए।
इनपुट में एक एकल पूर्णांक n होता है (100 ≤ n ≤ )।
प्रोग्राम को यदि n विशेष है तो Yes प्रिंट करना चाहिए, अन्यथा No। यदि No प्रिंट हो रहा है, तो प्रोग्राम को No से पहले Not special भी प्रिंट करना चाहिए।