पाइथन

मुक्त ज्ञानकोश विकिपीडिया से
imported>PQR01 द्वारा परिवर्तित १३:४९, ७ मार्च २०२२ का अवतरण (2409:4043:2110:79A7:0:0:2987:50A0 (वार्ता) द्वारा 1 संपादन संजीव कुमारके अंतिम अवतरण पर प्रत्यावर्तित किया गया)
(अन्तर) ← पुराना अवतरण | वर्तमान अवतरण (अन्तर) | नया अवतरण → (अन्तर)
नेविगेशन पर जाएँ खोज पर जाएँ
पाइथन (Python)
पाइथन का प्रतीकचिह्न (लोगो)
प्रकार multi-paradigm: object-oriented, imperative, functional, procedural, reflective
पहला अवतरण 1991
डिज़ाइनर Guido van Rossum
निर्माता Python Software Foundation
स्थायी विमोचन 3.2.2 /
साँचा:release date
2.7.2 /
साँचा:release date
प्रस्तुतिपूर्व विमोचन 3.3.0a1 /
साँचा:release date[१]
लिखने का तरिका duck, dynamic, strong
उपयोग CPython, IronPython, Jython, Python for S60, PyPy
भाषिका Cython, RPython, Stackless Python
प्रभावकर्ता ABC,[२] ALGOL 68,[३] C,[४] C++,[५] Dylan,[६] Haskell,[७] Icon,[८] Java,[९] Lisp,साँचा:cn Modula-3,[५] Perl
प्रभावित Boo, Cobra, D, Falcon, Groovy, JavaScript, Ruby[१०]
प्रचालन तन्त्र Cross-platform
अनुज्ञप्‍तिधारी Python Software Foundation License
सामान्य संचिका नाम अनुयोजन .py, .pyw, .pyc, .pyo, .pyd
वेबसाइट python.org
Wikibooks logo विकिपुस्तक पर Python Programming

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

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

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

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

इतिहास

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

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

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

विशेषताएं

पाइथन के लिए अब अनेकों IDE भी उपलब्ध हैं। यह IDLE है।

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

२) सीखने में आसान : जैसा कि आप देखेंगे , पाइथन सीखने की दृष्टि से बहुत आसान है।

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

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

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

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

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

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

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

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

लाइब्रेरी

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

मार्च २०१८ में, पाइथन पैकेज इन्डेक्स (PyPI, अन्य पार्टियों द्वारा निर्मित पाइथन सॉफ्टवेयर की आधिकारिक कोश) में १३०,००० पैकेज हैं। इनमें से कुछ प्रमुख ये हैं-

विभिन्न रूप

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

भाषा की कुछ विशेषताएँ

Python 3. The standard type hierarchy.png
आरक्षित शब्द (रिजर्व्ड वर्ड्स)

पाइथन 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 True
False
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"
"""Spanning
multiple
lines"""
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)

पाइथन के लिए उपयोगी कुछ अनुप्रयोग

  • 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

७) हनीवेल

८) एचपी

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

१०) फिलिप्स

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

सन्दर्भ

  1. साँचा:cite web
  2. सन्दर्भ त्रुटि: <ref> का गलत प्रयोग; faq-created नाम के संदर्भ में जानकारी नहीं है।
  3. साँचा:cite web
  4. साँचा:cite journal
  5. साँचा:cite web
  6. साँचा:cite web
  7. साँचा:cite web
  8. साँचा:cite web
  9. साँचा:cite web
  10. साँचा:cite book
  11. सन्दर्भ त्रुटि: <ref> का गलत प्रयोग; pep0237 नाम के संदर्भ में जानकारी नहीं है।
  12. Basic Comparison of Python, Julia, Matlab, IDL and Java (2018 Edition) स्क्रिप्ट त्रुटि: "webarchive" ऐसा कोई मॉड्यूल नहीं है। (मॉडलिंग गुरु)

इन्हें भी देखें

बाहरी कड़ियाँ