|
कब Built-in Function और कब User Defined Function का उपयोग करें? |
|
Python Function Parameters, Arguments, Return Statement, pass Statement और Docstring |
जब हम कोई बड़ा Python Program बनाते हैं, तो उसमें कई बार एक ही प्रकार का Code बार-बार लिखना पड़ता है। उदाहरण के लिए किसी विद्यार्थी का Result निकालना, किसी संख्या का Square निकालना, Interest की गणना करना या किसी सूची का Total निकालना।
यदि हर बार वही Code दोबारा लिखा जाए, तो Program लंबा, जटिल और समझने में कठिन हो जाता है। इसके अलावा यदि भविष्य में उस Code में कोई परिवर्तन करना पड़े, तो हर स्थान पर बदलाव करना होगा।
इसी समस्या का समाधान Function है।
Function Program का ऐसा भाग (Block of Code) होता है जो किसी विशेष कार्य (Specific Task) को पूरा करने के लिए बनाया जाता है। आवश्यकता पड़ने पर उस Function को Program में कई बार Call किया जा सकता है। इससे Code छोटा, व्यवस्थित (Organized), पुनः उपयोग योग्य (Reusable) और Maintain करना आसान हो जाता है।
Python में Functions दो प्रकार के होते हैं—पहला, Built-in Functions, जिन्हें Python पहले से उपलब्ध कराता है, जैसे print(), input(), len() और sum()। दूसरा, User Defined Functions, जिन्हें Programmer अपनी आवश्यकता के अनुसार स्वयं बनाता है।
इस अध्याय में हम Function की मूल अवधारणा से लेकर Function बनाना, Call करना, Parameters, Arguments, Return Statement, Nested Function, Multiple Return Values, Docstring तथा Practical Programs तक सभी महत्वपूर्ण विषयों का अध्ययन करेंगे।
Function Program का एक नामित (Named) Code Block होता है जो किसी विशेष कार्य को करने के लिए बनाया जाता है। Function को एक बार Define किया जाता है और आवश्यकता अनुसार कई बार Call किया जा सकता है।
सरल शब्दों में—
Function = एक ऐसा Code Block जिसे एक बार लिखकर कई बार उपयोग किया जा सके।
मान लीजिए आपके घर में एक मिक्सर (Mixer Grinder) है।
जब भी आपको मसाला पीसना हो, आप पूरा मिक्सर दोबारा नहीं बनाते, बल्कि केवल उसका Switch On करते हैं और वह अपना कार्य कर देता है।
इसी प्रकार Program में Function एक तैयार मशीन की तरह होता है। आवश्यकता होने पर केवल उसका नाम Call किया जाता है और वह अपना निर्धारित कार्य पूरा कर देता है।
Function की आवश्यकता (Need of Function)
यदि Program में Function का उपयोग न किया जाए, तो—
- एक ही Code बार-बार लिखना पड़ता है।
- Program बहुत लंबा हो जाता है।
- Debugging कठिन हो जाती है।
- Code Maintain करना मुश्किल हो जाता है।
- समय और मेहनत दोनों अधिक लगते हैं।
इन्हीं समस्याओं से बचने के लिए Function का उपयोग किया जाता है।
Function के लाभ (Advantages of Function)
Python में Function का उपयोग करने से कई लाभ प्राप्त होते हैं—
- Code Reusability बढ़ती है।
- Program छोटा और व्यवस्थित बनता है।
- Debugging आसान होती है।
- Code को Maintain करना सरल होता है।
- बड़े Program को छोटे-छोटे भागों में विभाजित किया जा सकता है।
- एक ही Function को कई बार उपयोग किया जा सकता है।
- Team Work में Code को अलग-अलग Modules में बाँटना आसान हो जाता है।
Python में Function को def Keyword की सहायता से बनाया जाता है।
def function_name(parameters):
# Function Body
statements
- def → Function बनाने के लिए Keyword
- function_name → Function का नाम
- () → Parameters लिखने के लिए
- : → Function Body शुरू होने का संकेत
- Indentation → Function के अंदर का Code
def greet():
print("Welcome to Python")
यहाँ Function केवल बनाया गया है।
अभी इसका Output नहीं आएगा क्योंकि इसे Call नहीं किया गया है।
Function को Execute करने के लिए उसका नाम लिखकर Parentheses लगाए जाते हैं।
def greet():
print("Welcome to Python")
greet()
Welcome to Python
जब Python Program चलता है—
- Function Define होता है।
- Function Memory में Store हो जाता है।
- Function तुरंत Execute नहीं होता।
- जब Function Call किया जाता है, तब उसका Code Execute होता है।
- कार्य पूरा होने के बाद Control वापस Program में लौट आता है।
Function Define
↓
Memory में Store
↓
Function Call
↓
Function Execute
↓
Control वापस Program में
Function का नाम रखते समय निम्न नियमों का पालन करना चाहिए—
- नाम Letter या Underscore (_) से शुरू होना चाहिए।
- नाम Number से शुरू नहीं हो सकता।
- Special Characters का उपयोग नहीं किया जा सकता।
- Keyword का उपयोग Function Name के रूप में नहीं किया जा सकता।
- Meaningful Name रखना चाहिए।
calculate_area()
student_result()
find_max()
2sum()
my-function()
class()
Python में Function का नाम snake_case में लिखा जाता है।
उदाहरण—
calculate_salary()
find_maximum()
student_result()
CamelCase की अपेक्षा snake_case को प्राथमिकता दी जाती है।
|
Function |
Method |
|
स्वतंत्र रूप से बनाया जाता है |
Object के साथ जुड़ा होता है |
|
def से बनाया जाता है |
Object के माध्यम से Call होता है |
|
उदाहरण: print() |
उदाहरण: list.append() |
Python में Built-in Function और User Defined Function
अब तक हमने Function की मूल अवधारणा, आवश्यकता, लाभ, Syntax और Function Calling के बारे में समझा। अब यह जानना आवश्यक है कि Python में Function कितने प्रकार के होते हैं और उनका उपयोग कब किया जाता है।
मुख्य रूप से Python में Functions दो प्रकार के होते हैं—
- Built-in Function (बिल्ट-इन फ़ंक्शन)
- User Defined Function (यूज़र डिफाइंड फ़ंक्शन)
इन दोनों प्रकार के Functions का उपयोग अलग-अलग परिस्थितियों में किया जाता है।
Built-in Functions वे Functions हैं जो Python Language के साथ पहले से उपलब्ध (Predefined) होते हैं। इन्हें Programmer को बनाने की आवश्यकता नहीं होती। आवश्यकता पड़ने पर केवल Function का नाम लिखकर उनका उपयोग किया जा सकता है।
Python में लगभग 70+ Built-in Functions उपलब्ध हैं, जो विभिन्न प्रकार के कार्यों जैसे Input लेना, Output दिखाना, गणना करना, Data Type बदलना, Collection पर कार्य करना आदि के लिए उपयोग किए जाते हैं।
function_name(arguments)
print("Welcome to Python")
Output
Welcome to Python
name = "Python"
print(len(name))
Output
6
numbers = [15, 45, 22, 89]
print(max(numbers))
Output
89
numbers = [15,45,22,89]
print(min(numbers))
Output
15
numbers = [10,20,30]
print(sum(numbers))
Output
60
|
Function |
कार्य |
|
print() |
Output दिखाना |
|
input() |
User से Input लेना |
|
len() |
Length ज्ञात करना |
|
type() |
Data Type बताना |
|
max() |
सबसे बड़ा मान |
|
min() |
सबसे छोटा मान |
|
sum() |
कुल योग |
|
round() |
संख्या को Round करना |
|
abs() |
Absolute Value |
|
sorted() |
Data को Sort करना |
|
range() |
Number Sequence बनाना |
|
id() |
Object ID प्राप्त करना |
नोट: Python के सभी Built-in Functions की Complete Guide हम आगे एक अलग अध्याय में विस्तार से पढ़ेंगे।
- Function पहले से बना हुआ होता है।
- समय की बचत होती है।
- Performance बेहतर होती है।
- Code छोटा और सरल बनता है।
- विश्वसनीय (Reliable) होता है क्योंकि यह Python द्वारा विकसित किया गया है।
User Defined Function क्या है?
जब Programmer अपनी आवश्यकता के अनुसार स्वयं Function बनाता है, तो उसे User Defined Function कहते हैं।
यदि Python में किसी कार्य के लिए Built-in Function उपलब्ध नहीं है, तो Programmer अपना स्वयं का Function बना सकता है।
User Defined Function का Syntax
def function_name():
statements
def welcome():
print("Welcome to Python Programming")
welcome()
Output
Welcome to Python Programming
उदाहरण 2 : Student Information
def student():
print("Name : Rahul")
print("Course : BCA")
student()
Output
Name : Rahul
Course : BCA
उदाहरण 3 : Multiple Function Calls
def hello():
print("Hello Students")
hello()
hello()
hello()
Output
Hello Students
Hello Students
Hello Students
User Defined Function कैसे कार्य करता है?
जब Program चलता है, तब—
- def Keyword द्वारा Function Define किया जाता है।
- Function Memory में Store हो जाता है।
- Function तब तक Execute नहीं होता जब तक उसे Call न किया जाए।
- Function Call होने पर उसका Code Execute होता है।
- कार्य पूरा होने के बाद Control वापस Main Program में लौट आता है।
Function Define
↓
Memory में Store
↓
Function Call
↓
Function Execute
↓
Back to Main Program
Built-in Function और User Defined Function में अंतर
|
Built-in Function |
User Defined Function |
|
Python द्वारा पहले से उपलब्ध |
Programmer द्वारा बनाया जाता है |
|
बनाने की आवश्यकता नहीं |
def Keyword से बनाया जाता है |
|
पहले से Tested और Optimized |
आवश्यकता के अनुसार Design किया जाता है |
|
सभी Programs में उपलब्ध |
केवल उसी Program में उपलब्ध जहाँ बनाया गया हो |
|
उदाहरण: print(), len() |
उदाहरण: calculate_area(), student_result() |
कब Built-in Function और कब User Defined Function का उपयोग करें?
Built-in Function का उपयोग करें जब—
- Python में पहले से Function उपलब्ध हो।
- सामान्य कार्य करना हो।
- कम Code लिखना हो।
User Defined Function का उपयोग करें जब—
- विशेष (Custom) कार्य करना हो।
- बार-बार उपयोग होने वाला Logic बनाना हो।
- बड़े Program को छोटे Modules में बाँटना हो।
def welcome():
print("Welcome to Python")
welcome()
def square():
num = 5
print(num * num)
square()
def student():
print("Name : Ravi")
print("Marks : 90")
student()
Program 4 – Built-in Function का उपयोग
numbers = [10,20,30,40]
print(sum(numbers))
print(max(numbers))
print(min(numbers))
def add():
print(10 + 20)
def sub():
print(30 - 10)
add()
sub()
Python Function Parameters, Arguments, Return Statement, pass Statement और Docstring
अब तक हमने Function की मूल अवधारणा, Built-in Functions और User Defined Functions के बारे में सीखा। लेकिन केवल Function बनाना पर्याप्त नहीं है। वास्तविक प्रोग्रामिंग में Function को Data देना, उससे परिणाम प्राप्त करना और उसे व्यवस्थित रूप से लिखना भी आवश्यक होता है।
इसी उद्देश्य से Python में Parameters, Arguments, Return Statement, pass Statement और Docstring का उपयोग किया जाता है।
इस भाग में हम इन सभी Concepts को विस्तार से समझेंगे।
जब Function बनाया जाता है, तब Parentheses ( ) के अंदर लिखे गए Variables को Parameters कहते हैं।
Parameters Function को Data प्राप्त करने के लिए Placeholder (स्थान) का कार्य करते हैं।
def function_name(parameter1, parameter2):
statements
def greet(name):
print("Hello", name)
यहाँ name एक Parameter है।
जब Function को Call करते समय वास्तविक Value भेजी जाती है, तो उसे Argument कहते हैं।
def greet(name):
print("Hello", name)
greet("Rahul")
Output
Hello Rahul
यहाँ
- name → Parameter
- "Rahul" → Argument
Parameters और Arguments में अंतर
|
Parameter |
Argument |
|
Function Definition में लिखा जाता है |
Function Call के समय दिया जाता है |
|
Variable होता है |
वास्तविक Value होती है |
|
Input प्राप्त करता है |
Input भेजता है |
def square(number):
print(number * number)
square(6)
Output
36
def add(a, b):
print(a + b)
add(20, 30)
Output
50
def student(name, course, marks):
print(name)
print(course)
print(marks)
student("Rahul", "BCA", 88)
def greet(name):
print("Welcome", name)
greet("Rahul")
greet("Amit")
greet("Neha")
Output
Welcome Rahul
Welcome Amit
Welcome Neha
यदि Function केवल Output दिखाने के बजाय कोई Result वापस (Return) करना चाहता है, तो return Statement का उपयोग किया जाता है।
def function_name():
return value
def add(a, b):
return a + b
result = add(10, 20)
print(result)
Output
30
def add():
print(10 + 20)
value = add()
print(value)
Output
30
None
def add():
return 10 + 20
value = add()
print(value)
Output
30
|
print() |
return |
|
केवल Output दिखाता है |
Value वापस भेजता है |
|
Value Store नहीं होती |
Value Variable में Store हो सकती है |
|
आगे Calculation नहीं कर सकते |
आगे Calculation कर सकते हैं |
Python एक Function से एक से अधिक Values Return कर सकता है।
def calculation(a, b):
return a + b, a - b
sum_value, sub_value = calculation(20, 10)
print(sum_value)
print(sub_value)
Output
30
10
def message():
print("Python Programming")
message()
ऐसे Function केवल कार्य करते हैं, कोई Value वापस नहीं भेजते।
कभी-कभी Function बनाना होता है लेकिन उसका Code बाद में लिखना होता है। ऐसी स्थिति में pass Statement का उपयोग किया जाता है।
def student():
pass
pass Python को बताता है कि Function अभी खाली है और बाद में पूरा किया जाएगा।
- Program की रूपरेखा (Skeleton) बनाते समय
- Function बाद में Implement करना हो
- Testing के दौरान
Function के बारे में जानकारी लिखने के लिए Triple Quotes (""" """) का उपयोग किया जाता है। इसे Docstring कहते हैं।
Docstring Function का Documentation होता है।
def add(a, b):
"""
यह Function दो संख्याओं का योग लौटाता है।
"""
return a + b
print(add.__doc__)
Output
यह Function दो संख्याओं का योग लौटाता है।
Function के अंदर बनाए गए Variables केवल उसी Function के अंदर उपयोग किए जा सकते हैं।
def demo():
x = 100
print(x)
demo()
def demo():
x = 100
print(x)
Output
NameError
def area(length, width):
return length * width
print(area(10, 5))
def maximum(a, b):
if a > b:
return a
return b
print(maximum(20, 50))
def even_odd(number):
if number % 2 == 0:
return "Even"
return "Odd"
print(even_odd(17))
Program 4 – Student Information
def student(name, marks):
print("Name:", name)
print("Marks:", marks)
student("Rahul", 90)
Program 5 – Multiple Return Values
def calculation(a, b):
return a + b, a * b
x, y = calculation(10, 5)
print(x)
print(y)
- Function का नाम Meaningful रखें।
- जहाँ संभव हो return का उपयोग करें।
- बड़े Function को छोटे Functions में विभाजित करें।
- प्रत्येक Function के लिए Docstring लिखें।
- अनावश्यक Global Variables से बचें।