पाइथन

पाइथन (Python) सामान्य कार्यों के लिए उपयुक्त उच्च स्तरीय प्रोग्रामिंग भाषा (General Purpose and High Level Programming language), इन्टरैक्टिव, ऑब्जेक्ट ओरिएन्टेड, स्क्रिप्टिंग भाषा है। इस भाषा को इस तरह से डिजाइन किया गया है ताकि इसमें लिखे गए कोड आसानी से पढ़े और समझे जा सकें।

अन्य प्रोग्रामिंग भाषाओं के विपरीत, जिनमें कोड-ब्लॉक्स को दर्शाने के लिए मझोले कोष्ठक ( {} ) का इस्तेमाल किया जाता है, पाइथन में कोड-ब्लॉक्स को दर्शाने के लिए ह्वाइट स्पेस (white space) का प्रयोग किया जाता है। इस प्रोग्रामिंग भाषा को Guido van Rossum ने 1991 में बनाया था। यह वस्तुतः एक प्रोग्रामिंग लिपि है जिसमें प्रोग्राम चलाने के लिए कोड को कंपाईल, यानि पूर्व-संयोजित करने की जरूरत नहीं है। पायथन "वाक्य रचना के साथ बहुत स्पष्ट उल्लेखनीय शक्ति" का दावा करती है। और उसकी मानक लाइब्रेरी (standard library) बड़ी और व्यापक है।

इस भाषा की डिजाइन-दर्शन में कूट-पठनीयता (code readability) पर जोर दिया गया है। पाइथन का दावा है कि इसका सिन्टैक्स बहुत स्पष्ट है; इसकी मानक लाइब्रेरी विशाल और सर्वसमाहित (comprehensive) है। कई लिनक्स सिस्टमों के साथ पाइथन प्रायः जुड़ा हुआ (pre-installed) आता है।

अन्य गतिशील भाषाओं की तरह, पायथन अक्सर एक स्क्रिप्टिंग भाषा के रूप में प्रयोग किया जाता है, लेकिन कभी कभी गैर स्क्रीप्टिंग संदर्भों की एक विस्तृत शृंखला में भी प्रयोग किया जाता है। कुछ उपकरणों का उपयोग करके, पायथन कोड स्वसंपूर्ण निष्पादन योग्य प्रोग्राम (इक्सक्युटेबल प्रोग्राम) के रूप में पैक किया जा सकता है। पायथन इन्टरप्रेटर कई ऑपरेटिंग सिस्टम के लिए उपलब्ध हैं।

 इतिहास 
पाइथन 1980 के दशक के अन्तिम वर्षों डिजाइन की गयी थी। इसके कार्यान्वयन दिसंबर 1989 में शुरू हुआ।

पाइथन 3.0 एक लंबी अवधि के बाद 3 दिसंबर 2008 को जारी किया गया था। यह पाइथन 2.x से कम्पेटिबल नहीं था।

जनवरी 1, 2018 से पाइथन 2.7 को 'रिटायर' घोषित कर दिया गया और इसे अब मेन्टेन नहीं किया जाता है।

 विशेषताएं 
दाएँ|अंगूठाकार|300px|पाइथन के लिए अब अनेकों IDE भी उपलब्ध हैं। यह IDLE है।
१) सरल : पाइथन एक सरल भाषा है। एक अच्छा पाइथन प्रोग्राम पढ़ने पर लगभग अंग्रेजी पढ़ने जैसा लगता है (लेकिन बहुत सख्त अंग्रेजी !)। पाइथन की यह छद्म-कोड-प्रकृति इसकी सबसे बड़ी शक्तियों में से एक है।

२) सीखने में आसान : जैसा कि आप देखेंगे , पाइथन सीखने की दृष्टि से बहुत आसान है। अन्य उच्च-स्तरीय, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज जैसे जावा या सी ++ की तुलना में पायथन सीखना आसान है, लेकिन इसमें कुछ उन्नत अवधारणाएँ हैं जो कोड विकसित करते समय काम आती हैं जो मजबूत, कुरकुरा, अत्यधिक अनुकूलित, कुशल और कुशल है। सामान्यीकृत। अपने कोड में इन अवधारणाओं का उपयोग करके, आप अपने कोड में बग्स को कम करने के साथ-साथ इसकी दक्षता में वृद्धि करने में सक्षम होंगे जिससे आप एक अनुभवी पायथन प्रोग्रामर बनेंगे।

३) स्वतंत्र और मुक्तस्रोत : पाइथन एक फ्लॉस (फ्री / मुफ्त और ओपन सोर्स सॉफ्टवेयर ) का एक उदाहरण है।

४) उच्च स्तर की भाषा :

५) पोर्टेबल: अपने मुक्त-स्रोत प्रकृति के कारण, पाइथन कई प्लेटफार्मों पर उपलब्ध है। आप लिनक्स, विंडोज , लबादा , सोलारिस, ओएस / 2, Amiga , AROS , के रूप में / 400, BeOS , ओएस / 390 , z / ओएस, पाम ओएस, QNX , वीएमएस , पर पाइथन का उपयोग कर सकते हैं।

६) इन्टरप्रीट की जाने वाली भाषा: सी या सी++ आदि जिस तरह कम्पाइल की जातीं हैं, पाइथन उस तरह कम्पाइल नहीं की जाती, बल्कि पायथन इन्टरप्रेटर के द्वारा कम्पाइल की जाती हैं। यह इन्टरप्रीटेड भाषा है।

७) उद्देश्योन्मुख (ऑब्जेक्ट ओरिएन्टेड): पाइथन प्रक्रिया-उन्मुख प्रोग्रामिंग के साथ ही ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का समर्थन करता है।

८) एक्सटेंसिबल: यदि आप चाहते हैं कि किसी प्रोग्राम का एक भाग बहुत तेजी से चलने वाला हो, तो आप उस भाग को सी में लिख कर इस लक्ष्य को हासिल कर सकते हैं।

९) व्यापक लाइब्रेरी : पाइथन का मानक लाइब्रेरी वास्तव में बहुत बड़ी है। यह इसकी बहुत बड़ी शक्ति है।

१०) एमबेड्डेबल (embeddable)

 लाइब्रेरी 
पाइथन की मानक लाइब्रेरी बहुत विशाल है और इसे पाइथन की सबसे बड़ी शक्ति के रूप में देखा जाता है। यह लाइब्रेरी अनेकों तरह के कार्यों के लिए उपयुक्त है। इसमें ग्राफिकल यूजर इन्टरफेस (GUI) बनाने के लिए मॉड्यूल है, रिलेशनल डेटाबेस से डेटा आदान-प्रदान के लिए मॉड्यूल है, अंकगणित तथा आर्बिट्रेरी प्रिसीजन डेसिमल के लिए मॉड्यूल है, रेगुलर इक्सप्रेशन के लिए मॉड्यूल है तथा यूनिट टेस्टिंग के लिए मॉड्यूल है।

मार्च २०१८ में, पाइथन पैकेज इन्डेक्स (PyPI, अन्य पार्टियों द्वारा निर्मित पाइथन सॉफ्टवेयर की आधिकारिक कोश) में १३०,००० पैकेज हैं। इनमें से कुछ प्रमुख ये हैं-
 Graphical user interfaces
 Web frameworks
 Multimedia
 Databases
 Networking
 Test frameworks
 Automation
 Web scraping[93]
 Documentation
 System administration
 Scientific computing
 Text processing
 Image processing
 Symbolic Maths

 विभिन्न रूप 
 CPython - पाइथन का मूल रूप (reference implementation) है। यह C में लिखा गया है। यह पाइथन को बाइटकोड में बदलता है जिसको इसका वर्चुअल मशीन रन करता है। सीपाइथन के साथ एक विशाल मानक लाइब्रेरी आती है जिसे सी और पाइथन में लिखा गया है। यह विण्डोज सहित यूनिक्स-के-तरह के अन्य प्लेटफार्मों के लिए उपलब्ध है।

 अन्य रूप

 PyPy तेज गति से चलने वाला पाइथन 2.7 और 3.5 का इन्टरप्रीटर है। इसमें 'जस्ट-इन-टाइम कम्पाइलर' है जिसके कारण कोड की गति सीपाइथन की अपेक्षा बहुत तेज हो जाती है।

 Stackless Python - massively concurrent programs के लिए बहुत उपयुक्त

 MicroPython और CircuitPython - ये पाइथ ३ के बदले हुए रूप हैं जो माइक्रोकन्ट्रोलरों के लिए इष्टतमीकृत हैं।

 भाषा की कुछ विशेषताएँ 
अंगूठाकार
 आरक्षित शब्द (रिजर्व्ड वर्ड्स)
पाइथन 2.5.2 में निम्नलिखित 31 शब्द आरक्षित हैं-
and        del        from        not        while
as         elif       global      or         with
assert     else       if          pass       yield
break      except     import      print
class      exec       in          raise
continue   finally    is          return
def        for        lambda      try

 टाइपिंग (Typing)

+ पाइथन ३ के अन्तःनिर्मित (built-in) टाइप Type mutable वर्णन सिन्टैक्स का उदाहरणा bool immutable Boolean value TrueFalse bytearray mutable Sequence of bytes bytearray(b'Some ASCII')bytearray(b"Some ASCII")bytearray([119, 105, 107, 105]) bytes immutable Sequence of bytes b'Some ASCII'b"Some ASCII"bytes([119, 105, 107, 105]) complex immutable Complex number with real and imaginary parts 3+2.7j dict mutable Associative array (or dictionary) of key and value pairs; can contain mixed types (keys and values), keys must be a hashable type {'key1': 1.0, 3: False} ellipsis  An ellipsis placeholder to be used as an index in NumPy arrays ... float immutable Floating point number, system-defined precision 3.1415927 frozenset immutable Unordered set, contains no duplicates; can contain mixed types, if hashable frozenset([4.0, 'string', True]) int immutable Integer of unlimited magnitude 42 list mutable List, can contain mixed types [4.0, 'string', True] set mutable Unordered set, contains no duplicates; can contain mixed types, if hashable {4.0, 'string', True} str immutable A character string: sequence of Unicode codepoints 'Wikipedia'"Wikipedia""""Spanningmultiplelines""" tuple immutable Can contain mixed types (4.0, 'string', True)

 इन्टरैक्टिव मोड पाइथन का एक छोटा सा कोड
>>> 1 + 1
2
>>> a = range(10)
>>> print( list(a) )
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 सी और पाइथन में फैक्टोरियल की गणना करने वाले फंक्शनों की तुलना

सी में फैक्टोरियल पाइथन में फैक्टोरियलint factorial(int x)
{
    if (x < 0 || x % 1 != 0) {
        printf("संख्या x, शून्य (0) के बराबर या उससे बड़ा पूर्णांक होना चाहिए।");
        return -1; //Error    
    }
    if (x == 0) {
        return 1;
    }
    return x * factorial(x - 1);
}def factorial(x):
    assert x >= 0 and x % 1 == 0, "संख्या x, शून्य (0) के बराबर या उससे बड़ा पूर्णांक होना चाहिए।"
    if x == 0:
        return 1
    else:
        return x * factorial(x - 1)

 पाइथन के लिए उपयोगी कुछ अनुप्रयोग 
 OMPC -- मैटलैब/ग्नू ऑक्टेव के कोड को पाइथन कोड में बदलने के लिए प्रयुक्त

 LiberMate -- मैटलैब के कोड को पाइथन में बदलने के लिए

 Oct2Py-- पाइथन में ग्नू ऑक्टेव/मैटलैब के फंक्शनों को सीधे चलाने के लिए। इसके लिए पाइथन, ग्नू ऑक्टेव/मैटलैब प्रोग्राम को चलाता है और वहाँ से प्राप्त परिणामों को पाइथन में ले आता है।

 PyInstaller , Py2exe -- पाइथन की स्क्रिप्ट को exe प्रोग्राम में बदल देते हैं जिससे वे बिना किसी दूसरे प्रोग्राम के सहारे स्वतः चलाए जा सकते हैं।

 Cython, LibPython, Nuikta, PyPy -- पाइथन को सी या सी++ में बदलने के लिए। इस प्रकार से प्राप्त कोड को कम्पाइल करके चलाने पर वह मूल पाइथन प्रोग्राम की अपेक्षा कई गुना तेज गति से चलता है।

 Numba -- अनाकोण्डा द्वारा प्रायोजित पाइथन का मुक्त स्रोत ऑप्टिमाइजिंग कम्पाइलर

 पाइथन 2.x तथा पाइथन 3.x में अन्तर 
 दोनों की लाइब्रेरियाँ अलग-अलग हैं और कभी-कभी एक-दूसरे में नहीं चलतीं।

 पाइथन ३ में यूनिकोड का बेहतर सपोर्ट उपलब्ध कराया गया है। पाइथन २ में डिफाल्ट स्ट्रिंग टाइप आस्की है जबकि पाइथन में डिफाल्ट स्ट्रिंग टाइप यूनिकोड है।

 पाइथन ३ में पूर्णांक भाजन बेहतर बनाया गया है।

 दोनों संस्करणों में प्रिन्ट स्टेटमेन्ट अलग-अलग हैं।
 पाइथन २ : raw_input()
 पाइथन ३ : input().

 पाइथन 2.x में मौजूद xrange() पाइथन ३ में मौजूद नहीं है।

 दोनों संस्करणों में गलती बताने (एरर-हैण्डिलिंग) में मामूली सा परिवर्तन किया गया है।

 ऐसा कोड जो पाइथन 2.x और पाइथन 3.x दोनों में समान आउटपुट दे 
__future__ का उपयोग करके पाइथन २ के कोड से पाइथन ३ जैसा आउटपुट लिया जा सकता है। अर्थात वह कोड दोनों पाइथन में चलेगा और समान आउटपुट देगा।

 from __future__ import division
 print 7 / 5
 print -7 / 5

 आउटपुट

1.4
-1.4

 पाइथन का उपयोग करने वाले अनुप्रयोग/कंपनियाँ 

१) कोरल

२) डी- लिंक

३) ईव -ऑनलाइन

४) गेमिंग

५) हैकिंग

६) MMORPG

७) हनीवेल

८) एचपी

९) औद्योगिक प्रकाश और संगीत

१०) फिलिप्स

११) यूनाइटेड अंतरिक्ष गठबंधन

 सन्दर्भ 

 इन्हें भी देखें 
 पाइथन सॉफ्टवेयरों की सूची

 बाहरी कड़ियाँ 
Top 500+ Python Interview Questions and Answers
Matlab vs Python: 6 Key Differences
programming language popularity (2023)

श्रेणी:सॉफ्टवेयर
श्रेणी:कंप्यूटर
श्रेणी:प्रोग्रामिंग भाषा
श्रेणी:प्रोग्रामन भाषा