User Defined Functions
पायथन में खुद के function बनाना सीखें। Define करना, call करना, arguments, function के types और recursion — सब कुछ यहाँ है! Date: 18/12/21
Introduction →
पायथन में built-in library function के अलावा user स्वयं function बना सकता है। यूजर के द्वारा बनाए गए function user defined function कहलाते हैं।
एक बार function बनाने के बाद उसे बार-बार call करके प्रयोग किया जा सकता है।
1. Define a function
2. Calling to function or Invoking a function
1. Define a function →
def keyword का प्रयोग करके नया function बनाया जाता है तथा उसमें codes लिखे जाते हैं। यह function की definition होती है। function कोई value return कर सकता है या नहीं भी।
def <function name> (<list of argument>):
<statement>
return <expression>def sum(a, b):
t = a + b
return t2. Invoking a function →
function define करने के बाद इसके result को प्राप्त करने के लिए function को call किया जाता है। function call करने को invoking कहा जाता है।
function के नाम invoking का प्रयोग करके call किया जा सकता है।
<function name> (<list of argument>)def sum(a, b):
t = a + b
return t
a = sum(5, 2)
print(a)
print(sum(5 + a))
# Output:
# 7
# 12Function Argument :-
फंक्शन के अंदर में प्रयोग किये गये variables function argument कहलाते हैं।
ये calling function से आने वाली value को प्राप्त करते हैं तथा store करते हैं।
(i) Positional argument— arguments की संख्या values के समान होनी चाहिएजिन arguments की संख्या arguments के समान मानों की आवश्यकता होती है positional argument कहलाते हैं।
def sum(a, b):
t = a + b
return t
x = y = z = 6
print(sum(5, 6)) # 11
c = sum(x, y) # 12
d = sum(5, z) # 11(ii) Default argument— function header में पहले से मान दिए जाते हैंfunction header में जिन arguments को पहले से मान दिए जाते हैं वे default argument होते हैं।
def sum(a, b=0):
t = a + b
return t
x = y = z = 6
print(sum(5, 6)) # → 11
c = sum(x, y) # → 12
d = sum(5, z) # → 11
e = sum(9) # → 9 (b uses default value 0)(iii) Named / keyword argument— arguments को उनके नाम से pass करनाfunction calling के समय arguments को उनके नाम से pass करने पर named argument प्रयोग किए जाते हैं। इसमें calling के समय sequence में मान देने की आवश्यकता नहीं होती।
def sum(b=4, a=5, c=6):
t = a + b + c
return t
z = sum(4, 5, 6) # positional — 15
x = sum(c=4, a=5, b=3) # named — 12
y = sum() # all defaults — 15Type of Function :-
function argument तथा return value के आधार पर function चार प्रकार के होते हैं —
Function with Input and Output :-
इस प्रकार के function एक या अधिक value argument के रूप में input करते हैं तथा एक value return करते हैं।
एक program लिखें जिसमें एक number input कर उसके factorial की गणना करें।
def fact(a):
f = 1
for i in range(a, 0, -1):
f = f * i
return f
# main program
n = int(input("Enter any no."))
print(fact(n))Function with Input without Return :-
इस प्रकार के function एक या अधिक argument input करते हैं तथा कोई भी value return नहीं करते।
एक program लिखें जिसमें एक number input कर उसकी table को 10 तक print करें।
def table(a):
for i in range(1, 11):
print(a, "*", i, "=", a * i)
# main program
n = int(input("Enter any value"))
table(n)Function without Input arg & with Return :-
इस प्रकार के function में input argument नहीं होते परन्तु यह एक value return करते हैं।
पहले 50 सम संख्याओं की गणना कर print करने के लिए एक program लिखें।
def even_sum():
t = 0
for a in range(1, 51):
t = t + a * 2
return t
print(even_sum())Function without Input & Output :-
इस प्रकार के function ना तो कोई argument input करते हैं और ना ही कोई value return करते हैं।
निम्न pattern उत्पन्न करने के लिए एक program लिखें।
def pattern():
for a in range(1, 6):
for b in range(a, 5):
print(" ", end=" ")
for c in range(1, a + 1):
print(c, end=" ")
print(" ")
# main program
pattern()
# Output Pattern:
# 1
# 1 2
# 1 2 3
# 1 2 3 4
# 1 2 3 4 5Recursion —
जब एक function स्वयं को call करता है तब यह प्रक्रिया recursion कहलाती है।
Recursion एक loop के समान कार्य करता है जिसे रोकने के लिए एक terminate condition दी जाती है।
Direct Recursion (खुद को call करना)
def test():
test()Indirect Recursion (दूसरे function के through)
def test():
retest()
def retest():
test()पहले N प्राकृतिक संख्याओं का योग print करने के लिए recursion program बनाएं।
def sum(a):
if a == 1:
return 1
else:
return a + sum(a - 1)
# main program
n = int(input("Enter any value"))
print(sum(n))
# Example: n = 5
# sum(5) = 5 + sum(4)
# sum(4) = 4 + sum(3)
# sum(3) = 3 + sum(2)
# sum(2) = 2 + sum(1)
# sum(1) = 1 ← base case
# Result = 5 + 4 + 3 + 2 + 1 = 15Recursion के Key Points :
- एक function जो खुद को call करे वह recursive function है
- Base condition अनिवार्य है — वरना Stack Overflow!
- हर recursive call problem को छोटा बनाती जाती है
- Python का default recursion limit = 1000
Practice Questions :-
इन programs को खुद लिखने का प्रयास करें — Chapter 7 को और अच्छे से समझने के लिए 💪