Python in Hindi : Iterators

  • Introduction to python iterators in Hindi
  • Python iterable objects in Hindi
  • Creating custom python iterator in Hindi

Introduction to Python Iterators

Iterator एक tool होता है जिसके माध्यम से कुछ items की list को जल्दी और आसानी से iterate किया जा सकता है। Iterator feature कई popular programming languages द्वारा implement और support किया गया है।

हालाँकि python में iterators को अलग तरह से implement किया जाता है लेकिन ये कार्य बाकी programming languages की तरह ही करते है।

Object That Can Be Iterated Upon

Python में iterator एक object है जिसे iterate किया जा सकता है। Object के सभी items को at least एक बार access करना iterate करना कहलाता है।

Implements Iterator Protocol

Python में किसी भी object को iterator बनाने के लिए iterator protocol को implement करने की आवश्यकता होती है। यह protocol दो methods द्वारा बनता है जो iterating process को perform करते है।

  • __iter__() – Returns iterator object
  • __next__() – Iterate next item 

Python Iterable Objects

Python में ऐसे कुछ objects है जिनमें पहले से ही iterator protocol को built in रूप से implement किया गया है। ये objects __iter__() और __next__() methods provide करते है। ऐसे objects को iterable objects कहा जाता है।

Iterable objects के लिए आपको अलग से iterator protocol नहीं implement करना होता है। इन्हे directly iterate किया जा सकता है। Python में list, tuple, dictionary, set और strings iterable objects होते है।

List 

myList = [“Best”, “Hindi”, “Tutorials”]
list_Iterator = iter(myList)     #Returns an iterator of myList

print(next(list_Iterator))      #/Prints first item
print(next(list_Iterator))      #Prints second item
print(next(list_Iterator))    #Prints third item

Tuples

myTuple = (“Hello”, “Reader”)
tuple_Iterator = iter(myTuple)      #Returns an iterator of myTuple

print(next(tuple_iterator))   
print(next(tuple_iterator))

Strings

myString = “Best”
string_Iterator = iter(myString)

print(next(string_Iterator))
print(next(string_Iterator))
print(next(string_Iterator))
print(next(string_Iterator))

Lists और tuples की ही तरह sets और dictionaries भी iterable है, जिन्हें आप समान तरीके से iterate कर सकते है। 

Iterating Using For Loop

हालाँकि iterable objects default iterator protocol के साथ आते है लेकिन आप इन्हें for loop द्वारा भी iterate कर सकते है। For loop द्वारा iterate करना बहुत आसान होता है और आपको iterator object प्राप्त करने की भी जरुरत नहीं होती है। 

myList = [“Best”,”Hindi”,”Tutorials”]     #creating myList

for x in myList:      #Iterating all myList items using for loop
    print(x)            #print all list items

इसी प्रकार दूसरे python objects को भी for loop द्वारा iterate किया जा सकता है। For loop automatically iterator object create करता है और next() method को call करता है।

Custom Python Iterator

ऐसे objects जो by default iterator protocol implement नहीं करते है उनको iterate करने के लिए आपको उनमें iterator protocol implement करने की आवश्यकता होती है।

जैसा की मैने पहले बताया किसी भी object को iterator बनाने के लिए दो methods को implement करने की आवश्यकता होती है। आइये इनके बारे में detail से जानने का प्रयास करते है।

__iter__()

यदि आपने python class में define किये जाने वाले __init__() method के बारे में पढ़ रखा है तो में आपको बताना चाहूँगा की यह method init() method के जैसा ही है।

इन दोनों methods में जो main difference है वह यह की __iter__() method से आपको iterator object को return करना अनिवार्य होता है।

__next__()

यह method next item को return करता है। यह method मुख्यतः iterator operations perform करने के लिए use किया जाता है। 

Example of Python Custom Iterator

class myTable:
    def __iter__(self):
        self.n = 2
        return self

    def __next__(self):
        x = self.n
        self.n += 2
        return x

obj = myTable()
myIterObj = iter(obj)

print(next(myIterObj))
print(next(myIterObj))
print(next(myIterObj))

2
4
6

Previous: Python File Handling

Python in Hindi : File Handling

  • Introduction to python file handling in Hindi
  • Python file operations in Hindi
  • Python file handling methods in Hindi

Introduction to Python File Handling

सभी popular programming languages की तरह python भी file handling के लिए support provide करती है। इसके लिए python में कई methods available है।

Python द्वारा file handling ability provide किये जाने की कई advantages है।

  • आप disk पर available files को access और modify कर सकते है। 
  • बहुत सारा data जिसे manually insert किया जाना संभव नहीं है directly file से input के रूप में read किया जा सकता है। 
  • बहुत सारा data जिसे की screen पर देखा जाना संभव नहीं है आसानी से file में store किया जा सकता है और उसे बाद में analyse किया जा सकता है। 

Python file handling mechanism द्वारा आप कई operations perform कर सकते है।

  • Read a file
  • Write to a file
  • Append to a file
  • Close a file

Python द्वारा disk files के साथ किसी भी प्रकार का operation (read, write आदि) perform करने से पूर्व file को memory में load किया जाना आवश्यक होता है। इसे file को open करना भी कहते है। इसके लिए python में open() function available है।

Python open() Function

Python file handling mechanism में open() ही एक function है। बाकी आप जो operation perform करेंगे वे object methods द्वारा perform करेंगे।

जब आप open() function द्वारा किसी file को open करते है तो ऐसे में यह function उस file को object के रूप में memory में load कर देता है। जिसे file object भी कहा जाता है।

एक बार जब file object के रूप में available हो जाती है तो उसके साथ automatically कई methods available हो जाते है जिन्हे आप उस object द्वारा call कर सकते है और अलग अलग operations perform कर सकते है।

Python open() एक बहुत ही simple function है। यह दो arguments लेता है। 

obj = open(‘file’,’mode’)     #Opens a file in given mode

पहला argument एक string होता है जो की basically उस file का नाम होता है जिसे आप open करना चाहते है। यदि file same directory में है तो आप सिर्फ उसका नाम दे सकते है। यदि file अलग directory में है तो आपको उसका पूरा path देना होगा।

दूसरा argument भी एक string ही है लेकिन यह उस mode को दर्शाता है जिस mode में आप file को open करना चाहते है। उदाहरण के लिए यदि आप एक file को सिर्फ read करना चाहते है तो आप उसे read mode में open करेंगे। यदि आप file से data read करने के साथ write भी करना चाहते है तो इसके लिए आप read/write mode में file को open करेंगे।

Modes के लिए argument pass किया जाना optional है। यदि आप argument के रूप में कोई भी mode नहीं pass करते है तो file को read only mode में open किया जाता है।

ज्यादातर files को कुछ ही common modes में open किया जाता है।

  • r – Read 
  • w = Write 
  • a = Append 
  • r+ = Both read & write
  • b = Binary mode, data byte-objects की form में read और write किया जाता है। 

Opening File in Context 

जब open() function द्वारा file को open करते है तो एक stream open होती है जिसके द्वारा data को read और write किया जाता है। Operations perform करने के बाद close() method द्वारा उस stream को close किया जाना आवश्यक होता है।

यदि आप उस stream को close नहीं करते है या ऐसा करना भूल जाते है तो ऐसे में वह file काफी समय तक आपके system resources को occupy करके रखती है जो की programming की दृष्टि से सही नहीं है। आखिर में वह file object garbage collector द्वारा destroy किया जाता है।

इस situation से बचने के लिए आप file को context में open कर सकते है। इसके लिए with और as keywords का प्रयोग किया है। इससे एक block का निर्माण होता है जिसमे दिए गए statements के execute होने के बाद वह file object automatically destroy हो जाता है। यह python में file को open करने का most recommended तरीका भी है।

जब आप इस प्रकार किसी file को open करते है तो उसे close() method द्वारा manually close करना आवश्यक नहीं होता है।

Python File Object Handling Methods

जैसा की पहले बताया गया है open() function file को object के रूप में return करता है। File को object के रूप में प्राप्त कर लेने पर उस object के साथ आपको कई methods automatically available हो जाते है जिनके द्वारा आप विभिन्न operations perform कर सकते है।

read() 

इस method का प्रयोग file के content को read करने के लिए किया जाता है। इस method में एक argument pass किया जा सकता है जो एक number होता है जो दर्शाता है की आप कितनी bytes उस file से read करना चाहते है। यह argument optional होता है।

fileObj.read(size-in-bytes)    #reads given number of bytes

यदि आप कोई भी argument pass नहीं करते है या फिर negative argument pass करते है तो file का पूरा content read किया जायेगा।

fileObj.read(-1)     #reads all content of file

यदि file की size memory से अधिक है तो ऐसे में problem हो सकती है इसलिए यह optional argument provide किया गया है ताकि file के कुछ content को देखा जा सके। 

readline()

यह method file में से एक बार में एक ही line read करता है। Line string के रूप में read की जाती है और उसके आखिर में automatically new line character (n) add कर दिया जाता है।

fileObj.readline()

यदि कोई empty line encounter होती है तो उसे सिर्फ n द्वारा show किया जाता है और file के end और empty string द्वारा represent किया जाता है।

By default readline() method सिर्फ एक ही line return करता है। सभी lines को read करने के लिए एक for loop का प्रयोग किया जा सकता है।

for line in fileObj          #Iterating over fileObj file using for loop, line represents a line in file
    print(line,end=’ ‘)      #Printing line and defining how to end a line

आप f.readlines() method द्वारा list में एक file की सभी lines को भी read कर सकते है।

write()

यह method argument के रूप में string को लेता है और उसे file में write करता है। इसके बाद यह method characters की सँख्या return करता है जो की file में write किये गए है।

fileObj.write(‘content-to-write’)   #write passed given string to file

tell()

यह function file object की current location return करता है। उदाहरण के लिए यदि आपने readline() method द्वारा एक line read की है तो file object की location second line में होगी। 

fileObj.tell()       #Get current location of file object

यह function location को bytes के रूप में दर्शाता है जो की file की शुरआत से उस location तक की दुरी को दर्शाती है।

seek()

इस method का प्रयोग file object को file में किसी location पर ले जाने के लिए किया जाता है। उदाहरण के लिए आप किसी निश्चित location से file को read करना चाहते है या फिर आप किसी location पर data enter करना चाहते है तो ऐसे में उस location तक इस method द्वारा जाया जा सकता है।

fileObj.seek(offset, from_what)        #Go to specific position in file

यह method दो arguments लेता है। इनमें second argument optional है। First argument उस position को दर्शाता है जँहा पर आप जाना चाहते है और second argument उस file में उस जगह (beginning, end etc.) को दर्शाता है जँहा से आप जाना चाहते है।

Beginning से location पर जाने के लिए 0, current location से जाने के लिए 1 और file के end से जाने के लिए 2 का प्रयोग किया जाता है।

उदाहरण के लिए यदि आप file की beginning से 6th byte पर जाना चाहते है तो first argument के रूप में 5 और second argument के रूप में 6 pass किया जायेगा।

Previous: Python Lambda Functions
Next: Python Iterators

Python in Hindi : Lambda Functions

  • Introduction to python lambda functions in Hindi
  • Syntax of python lambda functions in Hindi
  • Example of python lambda functions in Hindi

Introduction to Python Lambda Functions

Mostly सभी popular programming languages में anonymous functions का concept available है। कई programming languages में इन्हे lambda expressions भी कहा जाता है।

किसी programming languages में यह आवश्यक नहीं है की lambda function और anonymous function एक ही चीज़ हो। एक anonymous function lambda category में तब ही आता है जब वह function object return करता है और उसे argument के रूप में pass किया जा सकता है।

Python में lambda function और anonymous function एक ही चीज़ है। इसलिए आपको इनके बीच confuse नहीं होना चाहिए।

Defined Anonymously

Lambda functions को बिना किसी नाम के anonymously define किया जाता है। इनको आप एक object को assign करते है और उसी object नाम के द्वारा इन्हे use किया जाता है। यह कई keywords का use करते हुए एक पूर्ण function लिखने की आवश्यकता को खत्म कर देता है।

Lambda Keyword

Python में normal functions को def keyword द्वारा और lambda functions को lambda keyword द्वारा define किया जाता है। 

lambda <arguments> : expression

Can Have Any Number of Arguments

Lambda keyword के बाद arguments को define किया जाता है। Normal functions की ही तरह python में lambda functions को भी आप अपनी इच्छा अनुसार कितने भी arguments pass कर सकते है।

lambda <x1, x2, x3, x4……xN> : <expression>

Can Only Have a Single Expression

Arguments के बाद colon (:) लगाकर expression define किया जाता है। इस expression को आप function की body की तरह समझ सकते है।

lambda <x1,x2,x3,….xN> : <single – Expression>

Lambda functions में केवल एक ही expression define किया जा सकता है। Lambda functions का syntax multiple expressions use किया जाना allow नहीं करता है। यही कारण है की lambda functions को one line functions भी कहा जाता है।

No Return Statement

Normal functions की तरह lambda functions में कोई return statement नहीं होता है। Define किये गए single expression को evaluate किया जाता है और उसके result को automatically return कर दिया जाता है।

When Function Object is Required

जैसा की मैने आपको पहले ऊपर बताया lambda functions को define करके एक object को assign किया जाता है। इसके बाद उस object के द्वारा ही आप lambda function को use करते है। यह एक function object होता है। 

obj = lambda <x1, x2, x3,…..xN> : <expression> 

इस प्रकार आप lambda functions को जँहा भी किसी function object की आवश्यकता हो वँही पर use कर सकते है।

Single Use Function

Lambda functions single use functions होते है। इसलिए आप इन्हें वँहा पर ही create करते है जँहा पर आपको इनकी आवश्यकता हो। इन्हे throwaway functions भी कहा जाता है।

जब भी आपको एक single expression logic की आवश्यकता हो तो आप एक सम्पूर्ण function create करने की बजाय lambda function create कर सकते है।

उदाहरण के लिए आप एक object को value पहले calculate करके assign करना चाहते है। ऐसे में lambda function द्वारा आप वह value evaluate कर सकते है और इसके बाद उसे object को assign किया जा सकता है।

Can Be Passed as an Argument to Another Function

क्योंकि एक lambda function object होता है। इसलिए आप एक lambda function को दूसरे function में argument के रूप में भी pass कर सकते है। ऐसी situation में expression द्वारा return की गयी और object द्वारा hold की गयी value ही argument के रूप में काम करेगी। 

LamObj = lambda x1, x2 : x1 + x2

def myFunction(LamObj):
    print(“Sum is”+LamObj)

Python में lambda functions का प्रयोग अधिकतर filter(), map() और reduce() functions में argument के रूप में किया जाता है।

filter() Function 

Python में filter एक ऐसा function है जो logic के आधार पर किसी list में से data को filter करके extract करने के लिए प्रयोग किया जाता है। इस function में आप एक function और एक list को argument के रूप में pass करते है।

List के सभी items के साथ logic perform किया जाता है जो item उस logic के अनुरूप होता है उसे store कर लिया जाता है। इस प्रकार वे सभी items जो उस logic को fulfil करते है उन्हें return कर दिया जाता है।

उदाहरण के लिए आप उन सब list items को list करना चाहते है जो 3 के multiple है तो ऐसे में lambda functions द्वारा ऐसा किया जा सकता है।

myList = (2, 3, 4, 6, 8, 9, 10 ,12)

result_List = list(filter(lambda x : x%3==0, myList))

//return 3 6 9 12

यँहा पर जैसा की आप महसूस कर सकते है normal function की बजाय lambda function एक शानदार fit होगा। क्योंकि आपको अलग से एक function create करने की आवश्यकता नहीं होगी। जँहा पर आपको आवश्यकता है आप वँही पर एक single line में उसे define कर लेते है।

इसी प्रकार आप map() function में argument के रूप में lambda expression को use कर सकते है और logic के आधार पर नयी list create कर सकते है।

Previous: Python Errors & Exceptions
Next: Python File Handling

Python in Hindi : Errors & Exceptions

  • Introduction to python errors & exceptions in Hindi
  • Handling python exceptions in Hindi
  • Python user defined exceptions in Hindi

Introduction to Python Errors & Exceptions

जब आप कोई application create करते है और उसके code को execute करने का प्रयास करते है तो आपको कई बार errors का सामना करना पड़ता है। Mostly errors या तो program को execute होने नहीं देती (compile-time) या फिर execute होते हुए program को रोक (run-time) देती है।

Python code को execute करते समय दो प्रकार की errors से आपका सामना हो सकता है।

  • Syntax Errors / Parsing Errors
  • Exceptions/ Run Time Errors 

Syntax Errors or Parsing Errors

Syntax errors basically गलत syntax लिखने की वजह से generate होती है। इन्हे आप grammatical errors कह सकते है। उदाहरण के लिए यदि function को define करते समय आप colon (:) ना लगाए और code को execute करने का प्रयास करे तो ऐसे में parser syntax-error generate करता है।

Syntax errors program को parse या compile करते समय ही parser द्वारा identify कर ली जाती है। इन errors को गलत syntax हटाकर और सही syntax apply करके remove किया जाता है। 

जब कोई syntax error आती है तो parser message show करता है। उस message में parser उस complete line को display करता है जिसमें error आयी है। इसके अलावा parser उस line में up arrow (^) के माध्यम से वह जगह भी show करता है जँहा पर error detect हुई है। 

ज्यादातर error parser द्वारा दिखाई गयी up arrow के बाद आती है। इसके अलावा parser द्वारा file name और line number भी show किये जाते है ताकि आप उस code को आसानी से ढूँढ सके जँहा पर error आयी है। 

Exceptions or Run Time Errors

Exceptions वे errors होती है जो code execution के दौरान आती है। इन्हें run time errors भी कहा जाता है। किसी भी application के लिए exceptions बहुत घातक होती है। क्योंकि ये चलते हुए program को रोक देती है। इससे user experience ख़राब होता है और महत्वपूर्ण काम बीच में अटक सकते है। 

जब एक exception generate होती है तो parser एक message display करता है। इस message में parser exception का type और वह location display करता है जँहा से संभवतः exception generate हुई है। 

Exception type असल में exception का नाम होता है जो briefly यह बताता है की कौनसी exception generate हुई है। Exception की location stack traceback के रूप में दिखाई जाती है ताकि आप वह exact location track कर सके जँहा पर exception generate हुई है। 

Handling Exceptions in Python

Syntax error की तरह आप exception को ठीक नहीं कर सकते है और generate होने से भी नहीं रोक सकते है। हाँ लेकिन आप generate होने वाली exceptions को handle अवश्य कर सकते है।

Python आपको exception को handle करने का mechanism provide करती है। यह mechanism आपको exception generate होने पर application के बुरी तरह fail होने की बजाय एक organized way में work करते हुए situation को handle करने की ability provide करता है।

Python में exception handling mechanism कुछ keywords द्वारा कार्य करता है।

  • try 
  • except
  • else
  • raise
  • finally

इन सभी keywords के द्वारा अलग अलग blocks define किये जाते है जो अलग अलग situations में execute होते है।

try Block 

Try keyword के द्वारा try block define किया जाता है। Try block में उस code को रखा जाता है जो संभवतः exception generate कर सकता है।

try:
       #statements that may generate exception

यदि try block में कोई भी exception generate नहीं होती है तो except blocks का कोई भी statement execute नहीं होता है और सभी except blocks को skip कर दिया जाता है।

यदि try block में exception genrate होती है और उस exception से सम्बंधित except block define किया होता है तो उस except block के statements execute कर दिए जाते है।

यदि exception के लिए कोई भी except block नहीं मिलता है तो application रुक जाती है और parser द्वारा exception message display कर दिया जाता है।

Except block द्वारा exception को handle किये जाने के बाद execution आगे बढ़ता है।

except Block

Try block के तुरंत बाद except keyword द्वारा except block define किया जाता है। Except block को define करते समय except keyword के बाद exception type define किया जाता है।

यदि except block से पूर्व define किये गए try block में except block में define की गयी type की exception आती है तो except block में लिखे गए सभी statements execute हो जाते है।

एक try block के बाद multiple except blocks define किये जा सकते है। आप जिस भी type की exception को handle करना चाहते है उसके लिए अलग से except block define करते है। Try block में जिस type की exception generate होती है उसी से सम्बंधित except block execute किया जाता है और बाकि skip हो जाते है।

try:
    #statements that may generate exception
except <exception-Type>:
    #statements to be executed when <exception-Type> occurs in above try block
except <exception-Type>:
    #statements to be executed when <exception-Type> occurs in above try block

एक except block द्वारा multiple exceptions का नाम भी define किया जा सकता है। इसके लिए आप उन exceptions के नामों को comma से separate करके brackets में लिखते है।

except(ValueError, NameError, TypeError)

Exception Argument

हर exception के साथ एक value associated रहती है जिसे exception argument कहा जाता है। इसे except block में exception के नाम के बाद define किया जाता है।

except valueError as exObj:
    print(exObj)

यह argument exception के बारे में detail provide करता है। इसे print करके भी exception की details देखी जा सकती है।

else Block 

Else block को except blocks के बाद define किया जाता है। इस block में वे statements लिखते जाते जिन्हें आप try block द्वारा कोई भी exception raise नहीं किये जाने की situation में execute करना चाहते है।

else:
    #statements to be executed if try block does not generate an exception

Else block ऐसी situations को avoid करने में मदद करता है जब except blocks उन exceptions को handle करने का प्रयास करते है जो try block में generate ही नहीं हुई है।

raise Statement 

यदि आप समझते है की कोई statement या condition exception generate कर सकती है तो उस condition के लिए आप manually भी exception generate कर सकते है। इसके लिए raise keyword का प्रयोग किया जाता है। 

raise TypeError(‘Type Exception Occurred!’)

कोई भी exception raise करने के लिए आप raise keyword के बाद exception का नाम लिखते है और उसके बाद brackets में जो message आप display करना चाहते है उसे argument के रूप में pass करते है।

Python Built-in Exceptions

Built-in exceptions ऐसी exceptions होती है जो python में पहले से ही define की गयी है। जैसे की TypeError, ValueError और NameError आदि कुछ built-in exception के उदाहरण है।

Python में available सभी built-in applications की जानकारी के लिए Python Built-in Exceptions page को visit करें।

User Defined Exceptions

Python आपको स्वयं की custom exceptions define करने की ability भी provide करती है। इन्हे user defined exceptions कहा जाता है।

एक custom exception define करने के लिए आप class define करते है। इस class को custom application के रूप में treat किये जाने के लिए यह आवश्यक होता है की उसे python की Exception class से derive किया जाये।

class myCustomException:Exception
    //define exception here…

Python में Exception class सभी built in और user defined exceptions की base class होती है।

Previous: Python Date & Time
Next: Python Lambda Functions

Python in Hindi : Date & Time

  • Introduction to python date & time in Hindi
  • python date & time function in Hindi

Introduction to Python Date & Time

कई popular programming language जैसे की java आदि primitive types (int, float, char आदि) की तरह date type भी provide करती है। इससे dates और time को handle करने में आसानी होती है।

Date is Not a Data Type

हालाँकि python भी date और time को represent करने के लिए अच्छा mechanism provide करती है लेकिन python में date एक data type नहीं है। Python में आप date objects create कर सकते है।

Provides datetime Module

Python आपको datetime module provide करती है। इस module को import करके आप date और time के साथ कार्य कर सकते है।

इस module में datetime class define की गयी है। इस class के constructor को call करके आप date objects create करते है।

Datetime class ऐसे बहुत से methods provide करती है जिनके द्वारा आप किसी date object से date और time सम्बंधित जानकारी प्राप्त कर सकते है।

Datetime class के सभी methods मुख्यतः datetime class के साथ dot operator के प्रयोग से access किये जाते है। हालाँकि आप datetime class का object create करके उसके द्वारा भी इन methods को access कर सकते है।

उदाहरण के लिए यदि आप current date प्राप्त करना चाहते है तो इसके लिए now() method इस प्रकार प्रयोग कर सकते है।

import datetime    #Importing datetime module

Date = datetime.datetime.now()     #Storing current date in Date variable

print(Date)   #printing current date

ऊपर दिए गए उदाहरण में now() method को call करने के लिए पहले datetime module उसके बाद datetime class को access किया गया है।

datetime Class

जैसा की मैने पहले बताया date object create करने के लिए आप datetime class का constructor call करते है। इस constructor में initially year, month और day pass किया जाना अनिवार्य होता है।

import datetime

obj = datetime.datetime(2018, 11, 13)  #calling datetime class constructor

print(obj) 

यह constructor time के लिए भी arguments लेता है। लेकिन ऐसा करना अनिवार्य नहीं है। यह optional है।

datetime(year, month, day, hour, minute, second, microsecond)

Time arguments के लिए यदि कोई value pass नहीं की जाती है तो default zero value use की जाती है।

जब आप date ओर time दोनो को एक ही object द्वारा प्रदर्शित करना चाहते है तो ऐसे में आपको datetime class के द्वारा ही object create करना चाहिए। यदि आप इन date और time की information को अलग अलग प्रदर्शित करना चाहते है तो उसके लिए date और time classes द्वारा objects create करने चाहिए।

Python में datetime class date और time class के सभी attributes और methods को provide करती है।

date Class

Datetime class के अलावा datetime module में और भी classes available है जैसे की time, date, timedelta आदि। यदि आप सिर्फ date object create करना चाहते है या फिर date information को ही represent करना चाहते है तो इसके लिए आप datetime class के बजाय date class के constructor को भी call कर सकते है।

datetime.date(year, month, day)

Current date प्राप्त करने के लिए आप today() method को call कर सकते है।

  • date.today()
  • date.fromtimestamp(timestamp)
  • date.fromordinal(ordinal)

Month प्राप्त करने के लिए month attribute को use किया जा सकता सकता है। 

  • date.year
  • date.month
  • date.day
  • date.min
  • date.max
  • date.resolution

time Class

यदि आप object द्वारा सिर्फ time को प्रदर्शित करना चाहते है तो इसके लिए time class के constructor को call कर सकते है।

datetime.time(hour, minute, second, microsecond, timezone-info)

यह class date class की ही तरह min, max और resolution attributes provide करती है।

  • time.hour
  • time.minute
  • time.second
  • time.microsecond
  • time.tzinfo

किसी object के current time को दूसरे time से replace करने के लिए आप time class का replace() method use कर सकते है।

  • time.replace(hour, minute, second, microsecond, tzinfo)
  • time.isoformat()
  • time.__str__()
  • time.strftime(format)
  • time.__format__()
  • time.utcoffset()
  • time.dst()
  • time.tzname()

timedelta Class

जब आप time duration को represent करना चाहते है तो इसके लिए timedelta class का object create कर सकते है। Time duration एक date से लेकर दूसरी date तक के बीच का difference होती है।

datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks)

strftime() Method

Python आपको date objects को readable string format में convert करने के लिए strftime() method provide करती है। इस method को string format time method कहा जाता है।

यह method argument के रूप में format लेता है।

datetime.strftime(format)

इस format द्वारा ही determine किया जाता है की किस string format में date को show किया जायेगा। 

  • %A – Weekday का नाम। 
  • %w – Weekday का Number 
  • %B – Month का नाम। 
  • %Y – year
  • %P – AM या PM
  • %H – Hour
  • %M – Minute
  • %S – Second
  • %Z – Time zone name

Previous: Python Classes & Objects
Next: Python Errors & Exceptions

Python in Hindi : Classes & Objects

  • Introduction to python classes in Hindi
  • Creating python class objects in Hindi

Introduction to Python Classes

Python एक object oriented programming है। Object oriented programming का सबसे important feature class होती है। 

Bounds Data and Its Functionality Together

Classes data और उनकी functionality को bound करने का एक माध्यम होता है। यदि python की बात की जाए तो data को class variables द्वारा represent किया जाता है जिन्हें attributes भी कहते है। 

Functionality को functions द्वारा represent किया जाता है। जँहा attributes एक class instance की state को maintain करते है वँही methods का प्रयोग instances की states को modify करने के लिए किया जाता है।

Class Creates a New Type

एक class create करके आप एक नया type create करते है जिसके instances create किये जाते है। Instances के द्वारा data और उसकी functionality को handle किया जाता है।

एक class एक blueprint होती है और इसके आधार पर कितने भी instances create किये जा सकते है। सभी instances के attributes एक समान होते है लेकिन उनमें store की जाने वाली information अलग अलग होती है। 

Python Adds Classes Using Minimum New Syntax

Python में classes add करना दूसरी programming languages से ज्यादा अलग नहीं है। इसके लिए आपको कुछ नया syntax use करने की आवश्यकता नहीं है। Python में classes add करने के लिए आपको बहुत कम syntax use करना पड़ता है। 

Combination of C++ and Modula 3 Class Mechanisms

Python में classes C++ और Modula 3 के class mechanism का combination है। C++ की ही तरह python में भी सभी class members by default public होते है और सभी member functions virtual होते है।

Objects Can Have As Much Data of As Many Types

Python में एक object कितना भी amount का data store कर सकता है। Data की size और उसके type के लिए python में कोई limit नहीं है। 

Creating Python Classes

जैसा की पहले बताया गया है python में class create करने के लिए कुछ नया syntax नहीं use किया जाता है। यह कार्य python कम से कम syntax के द्वारा perform करती है।

class Keyword

ज्यादातर languages की ही तरह python में भी एक class define करने के लिए class keyword का प्रयोग किया जाता है। मुख्य अंतर यह है की python में class header declaration के बाद colon (:) लगाना अनिवार्य होता है। 

class <class-name>:
    #class attributes (variable) & class members 

Python में classes को आप if block या function block के अंदर भी define कर सकते है।

Python Empty Class

Python में आप एक empty class भी create कर सकते है। इसके लिए class define करके उसके अंदर pass statement declare किया जाता है जो यह बताता है की वह एक empty class है। 

class myClass:
    pass

Python Class Attributes

एक class में आप attributes (variables) define कर सकते है।

class Apple:
    color = “red”

जब आप class का object create कर लेते है तो उसके बाद उस object के द्वारा attributes को access किया जा सकता है। इसके लिए dot (.) operator का प्रयोग किया जाता है।

obj = Apple()               #creating object of class Apple()
print(Apple.color)      #prints red

Python Class Methods 

Attributes के अलावा python classes में methods भी define किये जा सकते है। Methods usually attributes पर operations perform करने के लिए define किये जाते है। 

Normal functions की ही तरह class में methods create करने के लिए def keyword का प्रयोग किया जाता है।

class Apple:
    color = “Red”

    def printColor(self)
        print(self.name)

Methods को भी attributes की तरह ही class के object के साथ dot operator use करके call किया जा सकता है।

Apple.printColor()      #prints Red

self Keyword

Python में self keyword का प्रयोग class methods के अंदर से attributes को refer करने के लिए किया जाता है। जैसा की ऊपर दिए गए उदाहरण में दिया गया है। 

Self keyword को use करने के लिए यह आवश्यक है की method को define करते समय self keyword को parameter के रूप में define किया जाये। 

यदि आप self keyword के अलावा दूसरे parameters define करते है तो method को call करते समय उनके लिए arguments pass करते है। 

__init__ Method

Class attributes के लिए values run time पर भी pass की जा सकती है। ऐसी values को apply करने के लिए __init__ method का प्रयोग किया जाता है। 

class myClass:
    def __init__(self,name):
        self.myName = name

    def printName(self):
        print(self.myName)

obj = myClass(“Best Hindi Tutorials”)
obj.printName()     #prints Best Hindi Tutorials

Previous: Python Decision Making
Next: Python Date & Time

Python in Hindi : Decision Making

  • Introduction to python decision making in Hindi
  • Different python decision making statements in Hindi

Introduction to Python Decision Making

जब आप एक certain code को किसी condition के आधार पर execute करना चाहते है तो इसके लिए आप decision making apply करते है।

Python में आपको decision making के लिए कुछ statements provide किये गए है जिनके आधार पर आप define कर सकते है की किसी code को कब execute करना है और कब execute नहीं करना है। इन statements को decision making statements कहा जाता है।

  1. if Statement 
  2. if-else Statement
  3. nested if Statement

Python If Statement

If में define किये गए statements केवल तब ही execute होते है जब condition true होती है। If statement define करने के लिए if keyword का प्रयोग किया जाता है।

if condition:
    #statements to be executed when above condition is true…

इसके बाद condition define की जाती है। यह condition basically एक expression होता है और evaluate किये जाने पर इसका result या तो true या false होता है।

यदि expression का result true होता है केवल तब ही if block के statements execute होते है। Condition के false होने पर if block को skip कर दिया जाता है और उसका कोई भी statement execute नहीं होता है।

if 5>3:
    print(“5 is greater than 3”)

Python If-Else Statement

If-else statement को आप if statement का advanced version समझ सकते है। If statement के द्वारा सिर्फ condition true होने की situation को ही handle किया जाता है। 

लेकिन if-else statement द्वारा आप condition true or false दोनों प्रकार की situation को control कर सकते है। 

If else statement को if और else keywords के माध्यम से define किया जाता है। 

if condition:
    #statements to be executed when condition is true
else:
    #statements to be executed when condition is false

If block के statement तब execute किये जाते है जब condition true होती है और else block के statement तब execute किये जाते है जब condition false होती है।

if 10 < 5:
    print(“10 is less than 5”)
else:
    print(“10 is greater than 5”)

Python elif Statement

If-else statement सिर्फ condition true और false होने की situation में ही कार्य करता है। यदि आप multiple conditions को check करना चाहते है तो इसके लिए आपको elif statement use करना चाहिए। 

यह statement if else की तरह ही define किया जाता है। बस और conditions define करने के लिए if और else के बीच elif block भी add कर दिया जाता है। 

यह statement if, elif और else keywords के द्वारा कार्य करता है। 

if condition:
    #statements to be executed when if condition is true
elif condition:
    #statements to be executed when elif condition is true
else:
    #statement to be executed when all the above conditions are false

If और else के बीच आप कितने भी elif blocks add कर सकते है। यदि if condition true होती है तो if block के statements execute हो जाते है।

If condition false होने पर elif condition evaluate होती है। यदि यह condition true होती है तो elif block के statements execute हो जाते है नहीं तो else block के statements execute हो जाते है।

if 10 < 9:
    print(“9 is greater than 10”)
elif 9 < 10:
    print(“9 is smaller than 10”)
else:
    print(“In appropriate condition.”)

Python Nested If Statement

जब एक if block के अंदर दूसरा if block define किया जाता है तो वह nested if statement कहा जाता है।

if 10 > 3:

    if 10 > 6:

        print(“10 is greater than 3 and 6”)

Previous: Python Loops
Next: Python Classes & Objects

Python in Hindi : Loops

  • Introduction to python loops in Hindi
  • Different python loops in Hindi
  • Python loop control statements in Hindi

Introduction to Python Loops 

कई बार कोई ऐसा code होता है जिसे आपको बार बार execute करने की आवश्यकता होती है। यदि यह कार्य manually किया जाये तो इसे करने के लिए आपको उस code को बार बार लिखना होगा। इसमें programmer का बहुत अधिक समय और effort लगता है।

मान लीजिये आप एक function को 100 बार execute करवाना चाहते है। इसके लिए आपको उस function को 100 लिखना (call करना) होगा। आप परेशान हो जायेंगे और आपका बहुत अधिक समय ख़राब हो जायेगा।

इस समस्या के समाधान के लिए loops का प्रयोग किया जाता है।

Execute Code Multiple Times

सभी programming languages की तरह python में भी आपको loops की facility दी गयी है। Loops के माध्यम से आप किसी code को multiple times execute करवा सकते है।

जिन statements को आप loop के द्वारा execute करवाना चाहते है उन्हें loop block में लिखा जाता है। यह एक function block की तरह ही होता है।

Condition to Start And End A Loop

किसी loop को start और end करने के लिए condition का प्रयोग किया जाता है। Normally जब तक कोई condition true होती है तब तक वह loop execute होता रहता है और जब वह condition false हो जाती है तो loop terminate हो जाता है।

यदि loop को terminate करने के लिए condition का प्रयोग नहीं किया जाये तो loop infinite time तक चल सकता है। ऐसे में आपकी application computer की संपूर्ण memory को खपा सकती है। ऐसी situations से बचने के लिए ही condition का प्रयोग किया जाता है।

Loop Control Variable

Loop control variable एक ऐसा variable होता है जो loop की condition को control करता है। इसे loop से पहले ही define किया जाता है। इस variable को condition में use किया जाता है। 

इस variable को हर iteration में increase या decrease किया जाता है ताकि loop terminate होने की condition को match किया जा सके।  

Python Loops 

Python आपको 3 प्रकार के loops provide करती है।

  1. while 
  2. for 
  3. nested 

Python While Loop 

While सबसे simple loop होता है। इसे बहुत ही आसानी से define किया जाता है। 

while condition
   statements to be executed here…

While loop को while keyword द्वारा define किया जाता है। इसके बाद वह condition होती है जिसके आधार पर loop execute होता है। While loop तब तक चलता है जब तक define की गयी condition false नहीं हो जाती है। 

num=0

while num<5
    print(“Hello”)
    num=num+1

ऊपर दिए गए उदाहरण में num एक loop control variable है। जब तक num 5 से कम होगा तब तक loop execute होता रहेगा और Hello print होता रहेगा। जैसे ही num की value 5 या 5 से अधिक होती है तो loop terminate हो जाता है। 

Python For Loop

Python में for loop का प्रयोग सिर्फ किसी sequence को iterate करने के लिए किया जाता है। जैसे की list, tuples, dictionaries और set आदि sequences को आप इस loop द्वारा iterate कर सकते है।

Python में for loop दूसरी programming languages से अलग है। Python में for loop एक iterator की तरह कार्य करता है।

for <variableName> in <sequenceName>
    statements here…

For loop को for keyword द्वारा define किया जाता है। इसके बाद वह variable define किया जाता है जिसके द्वारा sequence के members को iterate किया जायेगा। इसके बाद in operator define किया जाता है और उसके बाद उस sequence का नाम आता है जिसे आप iterate करना चाहते है।

myList = [“Red”,”Green”,”Blue”]

for x in myList:
{
    print(x)
}

ऊपर दिए गए उदाहरण में for loop द्वारा myList को iterate किया गया है।

Python Nested Loop

ज्यादातर programming languages की तरह python में भी आप एक loop के अंदर दूसरा loop define कर सकते है। उदाहरण के लिए एक while loop के अंदर दूसरा while loop define किया जा सकता है।

Previous: Python Functions
Next: Python Decision Making

Python in Hindi : Functions

  • Introduction to python functions in Hindi
  • Local Symbol table of python functions in Hindi
  • Arguments to python functions in Hindi

Introduction to Python Functions

हालाँकि python में functions create करना दूसरी ज्यादातर programming languages से अलग है, लेकिन यदि python आपकी first programming language नहीं है और आप पहले किसी दूसरी programming language में programming कर चुके है तो आप python functions को आसानी से define और use कर पाएंगे। 

Block of Statements 

यदि python आपकी first programming language है और आप functions के बारे में पहली बार पढ़ रहे है तो में आपको बताना चाहता है हूँ की एक function किसी program के अंदर कई statements का एक block होता है। 

ये statements मिलकर किसी specific task को perform करते है। Function block का एक नाम होता है जो की पुरे program में unique होता है। इसी नाम के द्वारा इस function में लिखे गए सभी statements को एक साथ execute किया जाता है। 

No Need to Redefine a Code

यदि आपके program में कोई ऐसा code है जिसे आप बार बार program में कई जगह पर execute करना चाहते है तो इसके लिए आप उस code को function में define कर सकते है। इसके बाद आप उस function को उसके नाम के द्वारा कई जगह पर call (execute) करवा सकते है। 

Functions को use करने से आपको उस code को बार बार लिखने की जरुरत नहीं होती है। इससे program की redability बढ़ती है, आपका time बचता है और memory space भी बचता है। 

Defined Using def Keyword

Python में function def keyword द्वारा define किया जाता है। 

<def> <function-name>(parameters-list) :
   <function body>

Python में def keyword के बाद function का नाम define किया जाता है। Function के नाम के बाद parameters की list define की जाती है।

Function Body with Indentation 

Next line से function की body शुरू होती है। जैसा की आपको पता है की python में spaces का अलग महत्व है। Function की body को शुरू करने से पूर्व tab-space (indentation) आता है। यह space बताता है की वह statement function की body में आता है।

Function को define करने के बाद आप जितने भी statements function body में define करना चाहते है उनको indentation के साथ लिखते है। जब आप कोई statement बिना indentation के लिखते है तो वँही पर function का end मान लिया जाता है।

Function Documentation String or Docstring

Python functions में आप documentation string define कर सकते है। यह documentation string function के बारे में जानकारी देती है। इसे docstring भी कहा जाता है। 

यह function की पहली line में define की जाती है। Docstring को define करना optional होता है। 

def myFunction():
     a normal function as usual.       //Docstring 

यदि आप multiline docstring define करना चाहते है तो उसे आप triple quotes में define करते है।

“”” This is
a multiline docstring”””

Returning Value

यदि आप python function में से कोई value return नहीं करते है तो ऐसे में python द्वारा automatically None string return की जाती है। इसे आप print() में ऐसे function को execute करके देख सकते है जो कुछ भी value return नहीं करता है। 

Local Symbol Table of Python Functions

जब एक function को execute होता है तो python द्वारा automatically एक symbol table create की जाती है। इस symbol table को local symbol table कहा जाता है।

Stores Local Variables of a Function

Local symbol table function में define किये गए local variables को store करती है। Variables names और उनको assign की गयी values इस table में store की जाती है।

Function को pass किये जाने वाले arguments local symbol table में सिर्फ तब ही store किये जाते है जब function call होता है। Python functions में arguments call by value method से pass किये जाते है और वे हमेशा एक object reference होते है।

यदि कोई function किसी दूसरे function को call करता है तो उस situation में एक नयी symbol table create की जाती है।

Function Body Represented Using Function Name

Local symbol table में function की body function के नाम के द्वारा represent की जाती है। यानी की किसी function की body को उसके नाम की value के रूप में store किया जाता है। 

Python में function body का भी एक certain type होता है जो सिर्फ interpreter द्वारा identify किया जाता है। जब local symbol में function की body function के नाम की value के रूप में store की जाती है तो python interpreter उसे identify कर लेता है।

इसके बाद उस value को (function-body) को किसी दूसरे नाम (function name) को भी assign किया जा सकता है। ऐसा होने पर वह function भी original function की तरह ही कार्य करेगा।

आसान शब्दों में कहा जाये तो python में function body एक value के रूप में treat की जाती है और उसे किसी भी दूसरे function name को assign किया जा सकता है।

Python Function Arguments

Arguments वे values होती है जो function को call करते समय pass की जाती है। Python में आप मुख्यतः दो प्रकार के arguments use कर सकते है। 

Default Arguments

Python आपको parameters की default value set करने की ability provide करती है। आप किसी parameter की value को एक default value provide करते है और वह value तब use की जाती है जब function को call करते समय उस parameter के लिए कोई value नहीं pass की जाती है। 

Default arguments parameters को assignment operator द्वारा set किये जाते है। 

def hello_Func(name=’User’):
     print(‘hello’+name)

ऊपर दिए गए function को call करते समय यदि कोई argument नहीं pass किया जाता है तो default argument use किया जाता है।

Keyword Arguments

Python में एक special type के arguments और introduce किये गए है जिन्हें keyword arguments कहा जाता है। Python आपको key/value pair के रूप में arguments pass करने की ability provide करती है।

इसमें parameter को key के रूप में और argument को उसकी value के रूप में pass किया जाता है।

def myFunction(name):
   print(‘hello’+name)
myFunction(name=’Best Hindi Tutorials’)

Previous: Python Packages
Next: Python Loops

Python in Hindi : Packages

  • Introduction to python packages in Hindi
  • Creating python packages in Hindi
  • Importing python packages in Hindi

Introduction to Python Packages

जब आप किसी organization में कार्य करते है तो अलग अलग programmers द्वारा create किये गए modules को use करते है। ऐसे में यह संभव है की कुछ programmers के module names आपस में conflict हो जाये।

Same Module Name Conflicts With Each Other

Name conflict तब होता है जब एक ही नाम के दो modules exist करते है। यह situation critical होती है क्योंकि एक ही नाम के दो modules को आप program में use नहीं कर सकते है। क्योंकि इससे interpreter confuse हो जाता है की आप किस module को import करना चाहते है।

इस situation को handle करने के लिए python में packages को introduce किया गया है।

Way of Structuring Python’s Module Namespace

Python में packages modules को structure करने का एक तरीका है। एक package एक directory (folder) होती है जिसमे आप modules को और दूसरे sub packages को store करते है।

इस प्रकार यदि आप same नाम के दो modules दो अलग अलग package directories में store करते है तो same नाम के होने पर भी वे एक दूसरे से conflict नहीं करते है।

आप अलग अलग विषयों से सम्बंधित modules को अलग अलग packages (directories) में store करके अपने सभी modules को एक निश्चित structure में organize कर सकते है।

__init__.py File 

हर python package में एक __init__.py file होती है। Python interpreter द्वारा किसी directory को package के रूप में identify करवाने के लिए उस directory में इस file का होना अनिवार्य होता है। 

आप इस file को empty भी create कर सकते है। इसके अलावा इस file में package का initialization code भी हो सकता है।

Importing Python Packages

Modules की ही तरह आप python packages को भी import करते है हालांकि packages में available modules को import करने का तरीका थोड़ा अलग होता है।

Uses Dotted Module Names

Packages में available modules को access करने के लिए dotted module names का प्रयोग किया जाता है। यानी की package और उसके अंदर define किये गए modules को बताने के लिए पहले package का नाम लिखा जाता है इसके बाद उस module का नाम लिखा जाता है।

Dotted module names से interpreter को पता चलता है की आप किस package से कौनसा module access करना चाहते है।

Import Single Module

<import> <packageName> <.> <moduleName>

जैसे की यदि आप myPackage में stored myModule को access करना चाहते है तो वह इस प्रकार होगा।

import packageName.moduleName

Import Subpackage Module 

<import> <packageName> <.> <subPacakgeName> <.> <moduleName>
import myPackage.mySubPacage.myModule

Import Sub-Module Using from Keyword (Alternative Way)

<from> <packageName> <.> <moduleName> <import> <subModule> 
from myPaccakge.myModule import mySubModule

Import Desired Function or Variable From Module

from myPackage.myModule import myFunction

Importing Complete Package (All Sub Modules)

एक पुरे package को import करने के लिए निचे दिया गया तरीका use किया जा सकता है। 

from myPackage.myModule import *

यह statement myModule के सभी sub modules और definitions को import करता है। लेकिन यह एक सही approach नहीं है। इस प्रकार import करने पर आप अनचाहे submodules और definitions को import कर सकते है।

इस situation को handle करने के लिए python में __all__ variable को introduce किया गया है। यह variable __init__.py file में set किया जाता है।

इस variable के द्वारा आप उन submodules की index provide करते है, जिन्हें आप सम्पूर्ण module के import किये जाने पर import करना चाहते है।

__all__ = [“module-1″,”module-2″,”module-3”] 

इस variable को set करने के लिए angular brackets के बीच comma से separate करके आप modules को define करते है।

Previous: Python Modules
Next: Python Functions