कोर्स
C++ या Java जैसे संकलित भाषाओं के विपरीत, जिन्हें निष्पादन से पहले मशीन कोड में अनुवाद करना पड़ता है, Python इंटरप्रेटेड है और निर्देशों को सीधे चलाता है। यही वजह है कि REPL वातावरण प्रयोग के लिए स्वाभाविक रूप से उपयुक्त है—चाहे आप स्निपेट्स का परीक्षण कर रहे हों, नए कॉन्सेप्ट्स खोज रहे हों, या लाइन-दर-लाइन डिबगिंग कर रहे हों। इसका एक लाभ यह है कि यह हर Python इंस्टॉलेशन में बिल्ट-इन आता है, इसलिए जब भी आप तैयार हों, यह भी तैयार रहता है।
इस ट्यूटोरियल में, मैं उदाहरणों के माध्यम से Python REPL वातावरण का उपयोग करना, इसकी विशेषताओं को समझना, और अपने वर्कफ़्लो में सुधार के लिए वैकल्पिक REPLs की खोज करना दिखाऊंगा। यदि आप Python में शुरुआत कर रहे हैं, तो मैं हमारे Introduction to Python कोर्स लेने की सलाह देता/देती हूँ, जो डेटा टाइप्स, लिस्ट्स, बेसिक फ़ंक्शंस और पैकेज जैसे कौशलों को कवर करता है।
Python REPL क्या है?
REPL का अर्थ है Read-Eval-Print Loop, जो इसके चार मूलभूत चरणों का वर्णन करता है:
- Read: REPL वातावरण उपयोगकर्ता का इनपुट पढ़ता है, जो एक पंक्ति का कोड या मल्टी-लाइन स्टेटमेंट हो सकता है।
- Evaluate: यह कोड का मूल्यांकन करता है, स्टेटमेंट या एक्सप्रेशन को निष्पादित करता है, और उसका परिणाम गणना करता है।
- Print: यह फ़ंक्शन परिणाम को कंसोल पर प्रिंट करता है। यदि कोड कोई आउटपुट उत्पन्न नहीं करता, जैसे असाइनमेंट स्टेटमेंट, तो कुछ भी प्रिंट नहीं होता।
- Loop: REPL फिर से शुरुआत पर लौट आता है और अगली पंक्ति के इनपुट के लिए तैयार रहता है।
ये चरण लगातार साथ मिलकर काम करते हैं, जिससे एक इंटरैक्टिव वातावरण बनता है जहाँ आप कोड टाइप कर सकते हैं और तुरंत आउटपुट देख सकते हैं। Python का REPL नए स्टेटमेंट्स के लिए प्राथमिक प्रॉम्प्ट >>> और जारी लाइनों के लिए सेकेंडरी प्रॉम्प्ट ... दिखाता है, जैसे लूप्स या फ़ंक्शन डेफिनिशन के भीतर। नीचे दिए गए अनुभागों के उदाहरणों से हम देखेंगे कि ये प्रॉम्प्ट कैसे काम करते हैं।
इस वातावरण का वर्णन करने के लिए "इंटरैक्टिव शेल", "इंटरप्रेटर सेशन", और "REPL" शब्दों का अक्सर एक-दूसरे के स्थान पर उपयोग किया जाता है।
Python REPL का उपयोग क्यों करें
आप निम्न कार्यों के लिए Python REPL का उपयोग कर सकते हैं:
कोड स्निपेट्स और लाइब्रेरी फ़ंक्शंस को जल्दी से टेस्ट करें: आप बिना स्क्रिप्ट फ़ाइल बनाए तुरंत छोटे-छोटे कोड टुकड़ों को आज़मा सकते हैं।
>>> import math
>>> math.sqrt(16)
4.0
सिंटैक्स की जाँच करें और विचारों के साथ प्रयोग करें: REPL वातावरण को अपने निजी सैंडबॉक्स की तरह समझें। आप नए तरीकों को आज़मा सकते हैं—जैसे अलग-अलग डेटा टाइप्स, ऑपरेटर्स, और कंट्रोल फ्लो स्ट्रक्चर—ताकि बिना किसी बड़े प्रोग्राम को प्रभावित किए उनका व्यवहार ठीक-ठीक समझ सकें।
>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]
डिबग करें और वेरिएबल्स को जाँचें: आप REPL सेशन का उपयोग करके अपने वेरिएबल्स के मान और स्टेट्स को चरण-दर-चरण देख सकते हैं, जिससे समस्याओं को समझना और ठीक करना आसान हो जाता है।
>>> x = 42
>>> type(x)
<class 'int'>
>>> x / 7
6.0
कैलकुलेटर या सीखने के टूल के रूप में उपयोग करें: इसकी त्वरित प्रतिक्रिया इसे गणनाएँ करने या Python की बुनियादी बातें सीखने के लिए उपयोगी बनाती है।
>>> 10 * (5 + 2)
70
REPL सेशन कैसे शुरू करें और बंद करें
Python REPL सेशन शुरू करने के लिए अपना टर्मिनल या कमांड प्रॉम्प्ट खोलें। फिर python या python3 टाइप करें, और Enter दबाएँ। इससे इंटरैक्टिव शेल लॉन्च हो जाएगा।
आप -i फ्लैग कमांड का उपयोग करके किसी स्क्रिप्ट को चलाने के बाद भी इंटरैक्टिव सेशन शुरू कर सकते हैं। उदाहरण के लिए, python -i calc_tax.py calc_tax.py को चलाएगा और फिर आपको REPL वातावरण में ले आएगा, जहाँ स्क्रिप्ट के वेरिएबल्स अभी भी मेमोरी में लोड रहेंगे।
REPL से बाहर निकलने के लिए, आप निम्न में से किसी एक का उपयोग कर सकते हैं:
-
quit()याexit()टाइप करें और Enter दबाएँ। -
Unix/Linux/macOS पर Ctrl+D दबाएँ।
-
Windows पर Ctrl+Z दबाएँ और फिर Enter दबाएँ।
REPL वातावरण में कोड कैसे चलाएँ
आप Python के REPL सेशन में उसके जटिलता स्तर के अनुसार अलग-अलग तरीकों से कोड चला सकते हैं। आइए देखें कि REPL में किस प्रकार का कोड चलाया जा सकता है।
सरल स्टेटमेंट्स और एक्सप्रेशंस
REPL वातावरण सरल एक्सप्रेशंस और स्टेटमेंट्स का तुरंत मूल्यांकन कर सकता है। उदाहरण के लिए, आप अंकगणितीय ऑपरेशंस कर सकते हैं, वेरिएबल्स असाइन कर सकते हैं, और बूलियन एक्सप्रेशंस का मूल्यांकन कर सकते हैं। किसी एक्सप्रेशन का परिणाम स्वतः प्रिंट होता है।
>>> 5 + 4
9
>>> name = "Allan"
>>> name
'Allan'
>>> 10 > 5
Trueयदि कोई स्टेटमेंट, जैसे वेरिएबल असाइनमेंट, आउटपुट उत्पन्न नहीं करता, तो REPL इंटरप्रेटर कुछ भी प्रिंट नहीं करता। यदि आप गलती करते हैं, तो REPL तुरंत त्रुटि उठाकर फीडबैक देता है।
कंपाउंड स्टेटमेंट्स
Python REPL वातावरण मल्टी-लाइन कंपाउंड स्टेटमेंट्स जैसे if स्टेटमेंट्स और for लूप्स को भी संभालता है। जब आप किसी पंक्ति को कोलन (:) पर समाप्त करके Enter दबाते हैं, तो यह स्वतः सेकेंडरी प्रॉम्प्ट (...) पर स्विच हो जाता है, जो दर्शाता है कि यह इंडेंटेड कोड ब्लॉक की प्रतीक्षा कर रहा है।
ध्यान रखें कि आपको अपना कोड मैन्युअली इंडेंट करना होगा; REPL वातावरण ऑटो-इंडेंट नहीं करता। कंपाउंड स्टेटमेंट के अंत का संकेत देने के लिए, खाली पंक्ति पर Enter दबाएँ।
स्पष्ट और अप्रत्यक्ष लाइन कंटिन्यूएशन
आप Python REPL सेशन में लाइन कंटिन्यूएशन का उपयोग करके मल्टी-लाइन स्टेटमेंट्स भी लिख सकते हैं। स्पष्ट (explicit) लाइन कंटिन्यूएशन में पंक्ति के अंत में बैकस्लैश \ लगाया जाता है, जो बताता है कि स्टेटमेंट अगली पंक्ति में जारी है।
अप्रत्यक्ष (implicit) लाइन कंटिन्यूएशन स्वतः तब होता है जब कोड को कोष्ठकों (), ब्रैकेट्स [], या ब्रेसेज़ {} में घेरा गया हो।
प्रिंट करना बनाम इवैल्युएशन
REPL की ऑटो-प्रिंटिंग सुविधा केवल उन एक्सप्रेशंस पर काम करती है जिनका रिटर्न मान होता है। उदाहरण के लिए, यदि आपके पास एक लिस्ट है और आप temp.append(45) से एक आइटम जोड़ते हैं, तो यह कोई आउटपुट नहीं देगा। नई लिस्ट देखने के लिए, आपको अगली पंक्ति में उस लिस्ट वेरिएबल का स्पष्ट रूप से इवैल्युएशन करना होगा। जो फ़ंक्शंस None लौटाते हैं, उनके आउटपुट को देखने के लिए आपको print() का उपयोग करना होगा।
उपयोगी REPL विशेषताएँ
Python REPL वातावरण में कई बिल्ट-इन फीचर्स हैं, जो इसका उपयोग और सीखना अधिक उत्पादक बनाते हैं। मैं यहाँ कुछ फीचर्स पर चर्चा करूँगा/करूँगी जो मुझे उपयोगी लगे हैं।
विशेष वेरिएबल _
अंडरस्कोर (_) REPL सेशन में एक विशेष वेरिएबल है जो आखिरी एक्सप्रेशन के परिणाम को स्टोर करता है। यह तब उपयोगी है जब आप बिना दोबारा टाइप किए परिणामों को पुन: उपयोग करना चाहते हैं।
नीचे दिए गए उदाहरण में, _ मान 30 को स्टोर करता है, जो 6*5 एक्सप्रेशन का परिणाम है।
इंट्रोस्पेक्शन टूल्स
Python ऑब्जेक्ट्स और अपने वातावरण को इंटरैक्टिव रूप से एक्सप्लोर करने के लिए कई बिल्ट-इन फ़ंक्शंस प्रदान करता है। नीचे दी गई तालिका प्रत्येक फ़ंक्शन के उपयोग और उदाहरणों का सार प्रस्तुत करती है।
|
टूल |
उद्देश्य |
उदाहरण |
|
|
वर्तमान लोकल स्कोप या किसी निर्दिष्ट ऑब्जेक्ट में सभी नामों (एट्रिब्यूट्स और मेथड्स) की सूची लौटाता है। |
|
|
|
किसी ऑब्जेक्ट, मॉड्यूल, या फ़ंक्शन के लिए बिल्ट-इन हेल्प सिस्टम शुरू करता है और उसका प्रलेखन (docstrings) दिखाता है। |
|
|
|
किसी ऑब्जेक्ट के |
|
|
|
वर्तमान लोकल सिंबल टेबल (वर्तमान स्कोप के वेरिएबल्स) का प्रतिनिधित्व करने वाली डिक्शनरी लौटाता है। |
|
|
|
वर्तमान ग्लोबल सिंबल टेबल (हर जगह सुलभ वेरिएबल्स) का प्रतिनिधित्व करने वाली डिक्शनरी लौटाता है। |
|
कोड हिस्ट्री और टैब कम्प्लीशन
REPL निम्नलिखित हिस्ट्री और ऑटो-कम्प्लीशन फीचर्स के साथ कोडिंग तेज कर देता है:
- कोड हिस्ट्री: आप Up Arrow और Down Arrow कुंजियों का उपयोग करके पहले दर्ज किए गए कमांड्स के बीच नेविगेट कर सकते हैं। इससे आप जल्दी से पिछली लाइनों को फिर से चला सकते हैं, संशोधित कर सकते हैं, या सुधार सकते हैं।
- टैब कम्प्लीशन: यह वेरिएबल नाम, मॉड्यूल नाम और ऑब्जेक्ट एट्रिब्यूट्स को पूरा करने में मदद करता है। उदाहरण के लिए,
imporटाइप करके Tab दबाने पर यहimportमें ऑटो-कम्प्लीट हो जाएगा, याstr..टाइप करके Tab दबाने पर स्ट्रिंग मेथड्स सूचीबद्ध हो जाएँगे।
कीबोर्ड शॉर्टकट्स
निम्न कुछ सामान्य कीबोर्ड शॉर्टकट्स हैं जो REPL में नेविगेशन को अधिक कुशल बनाते हैं।
|
शॉर्टकट |
क्रिया |
|
Ctrl+C |
वर्तमान में चल रहे कमांड (जैसे एक लंबा लूप) को बाधित करता है और |
|
Ctrl+D (Unix) |
REPL से बाहर निकलें ( |
|
Ctrl+Z + Enter (Win) |
REPL से बाहर निकलें |
|
Ctrl+L |
स्क्रीन साफ़ करता है ( |
|
Up / Down Arrow |
कमांड हिस्ट्री ब्राउज़ करें |
|
Ctrl+A |
कर्सर को पंक्ति की शुरुआत में ले जाएँ |
|
Ctrl+E |
कर्सर को पंक्ति के अंत में ले जाएँ |
|
Ctrl+K |
कर्सर से पंक्ति के अंत तक मिटाएँ |
|
Ctrl+U |
कर्सर से पंक्ति की शुरुआत तक मिटाएँ |
REPL को कस्टमाइज़ करना
स्टैंडर्ड Python REPL को आपके वर्कफ़्लो और पसंद के अनुसार कस्टमाइज़ किया जा सकता है।
स्टार्टअप फ़ाइल
पर्यावरण वेरिएबल PYTHONSTARTUP को उस Python स्क्रिप्ट के पाथ पर सेट करें जो REPL शुरू होने पर स्वतः चलती है। यह स्क्रिप्ट सामान्यतः उपयोग होने वाले मॉड्यूल्स को प्री-इम्पोर्ट कर सकती है, फ़ंक्शंस परिभाषित कर सकती है, या प्रॉम्प्ट स्ट्रिंग्स बदल सकती है।
उदाहरण के लिए, ~/.pystartup नाम की फ़ाइल निम्न सामग्री के साथ बनाएँ:
import sys, os, math, random
print("Custom REPL ready. Pre-imported: sys, os, math, random")
# Change the prompt strings
import sys
sys.ps1 = ">>> "
sys.ps2 = "... "
यदि आप Windows का उपयोग कर रहे हैं, तो आप निम्न कमांड के जरिए वातावरण सेट कर सकते हैं:
setx PYTHONSTARTUP "C:\path\to\pystartup.py"
rich के साथ रिच आउटपुट
आप REPL में आउटपुट को बेहतर और रंगीन बनाने के लिए rich लाइब्रेरी का उपयोग कर सकते हैं। पहले pip के जरिए rich मॉड्यूल इंस्टॉल करना होगा।
pip install rich
इसके बाद Python REPL सेशन में इम्पोर्ट करके rich को सक्षम करें और उपयोग करें। नीचे दिए उदाहरण में, मैंने अलग-अलग फ़ॉन्ट रंगों में शब्द प्रिंट करने के लिए इस लाइब्रेरी का उपयोग किया है।

आज़माने के लिए उदाहरण REPL कमांड्स
जैसा कि आप देख सकते हैं, Python का REPL सेशन उपयोग में आसान है। अपने कौशल का अभ्यास करने के लिए निम्न कमांड्स आज़माएँ
|
कमांड |
उद्देश्य |
आउटपुट/विवरण |
|
|
इंट्रोस्पेक्शन: बिल्ट-इन |
|
|
|
डॉक्यूमेंटेशन: लिस्ट ऑब्जेक्ट के append मेथड का डॉक्स्ट्रिंग दिखाएँ, जो बताता है कि यह कैसे काम करता है। |
|
|
|
मॉड्यूल इम्पोर्ट करें: स्टैंडर्ड |
कोई आउटपुट नहीं (लेकिन मॉड्यूल अब उपलब्ध है)। |
|
|
गणना: π का मान प्राप्त करें। |
|
|
|
गणना: sin(π/2) निकालें। |
|
|
|
त्वरित परीक्षण: किसी सूची से एक रैंडम आइटम चुनें। |
|
|
|
त्रुटि प्रबंधन/बाहर निकलना: एक अनंत लूप शुरू करें, फिर उसे बाधित करने और बाहर निकलने के लिए Ctrl+C दबाएँ। |
|
स्टैंडर्ड REPL वातावरण की सीमाएँ
हालाँकि स्टैंडर्ड Python REPL त्वरित कार्यों के लिए बढ़िया है, लेकिन यह अक्सर एक आधुनिक IDE की तुलना में सीमित लगता है। आप जल्दी ही कुछ फीचर्स की कमी महसूस करेंगे, जिनमें शामिल हैं:
- कोई सिंटैक्स हाइलाइटिंग नहीं: आपका सारा कोड सादे पाठ में दिखता है। इससे कीवर्ड्स, स्ट्रिंग्स और कमेंट्स को जल्दी अलग-अलग पहचानना मुश्किल हो जाता है, और आपको ध्यान से पढ़ना पड़ता है।
- न्यूनतम ऑटो-इंडेंटेशन: यद्यपि यह कंटिन्यूएशन प्रॉम्प्ट (
...) संभालता है, लेकिन कंपाउंड स्टेटमेंट्स—जैसे if और for ब्लॉक्स—के लिए आपको सही इंडेंटेशन मैन्युअली दर्ज करना होता है। - मूलभूत कोड कम्प्लीशन: बिल्ट-इन टैब कम्प्लीशन काम तो करता है, लेकिन इसमें उन्नत शेल्स में मिलने वाले संदर्भ-संवेदी सुझाव, इनलाइन डॉक्यूमेंटेशन, या फ़ज़ी मैचिंग नहीं होती।
- कमज़ोर मल्टी-लाइन एडिटिंग: जटिल, मल्टी-लाइन कोड ब्लॉक्स को एडिट करना झंझट भरा है।
- एक बार ब्लॉक सबमिट हो जाने पर, उसे हिस्ट्री से आसानी से एडिट या रिकॉल नहीं किया जा सकता।
वैकल्पिक REPLs
स्टैंडर्ड इंटरप्रेटर की उपरोक्त सीमाओं से निपटने के लिए, Python के इंटरैक्टिव मॉडल पर आधारित कई उन्नत REPLs और वातावरण अतिरिक्त फीचर्स प्रदान करते हैं जो उत्पादकता और सीखने में सुधार करते हैं। मैं आपकी ज़रूरतों के अनुसार उपयुक्त विकल्प ढूँढने के लिए निम्न में से किसी को आज़माने की सलाह देता/देती हूँ।
- IDLE: एक सरल GUI-आधारित Python वातावरण जो Python के साथ ही आता है। यह सिंटैक्स हाइलाइटिंग, इंटीग्रेटेड एडिटर, और डिबगर प्रदान करता है, जो शुरुआती लोगों के लिए अनुकूल है।
- IPython: एक शक्तिशाली REPL जिसमें रिच टैब कम्प्लीशन, सिंटैक्स हाइलाइटिंग, मैजिक कमांड्स (विशेष कमांड्स जो % से शुरू होते हैं), विस्तृत हिस्ट्री, और शेल कमांड्स तक आसान पहुँच है। डेटा साइंस और वैज्ञानिक संगणना में व्यापक रूप से उपयोग होता है।
- bpython: यह टर्मिनल-आधारित REPL है जिसमें इनलाइन सिंटैक्स हाइलाइटिंग, ऑटो-सजेशंस, और डॉक्यूमेंटेशन तक त्वरित पहुँच मिलती है। यह हल्का है लेकिन डिफ़ॉल्ट REPL की तुलना में उपयोगिता में काफी इज़ाफा करता है।
- ptpython: अनुभवी उपयोगकर्ताओं के लिए डिज़ाइन किया गया एक उन्नत REPL जो सच्ची मल्टी-लाइन एडिटिंग, मज़बूत सिंटैक्स हाइलाइटिंग, और यहाँ तक कि माउस सपोर्ट जैसी विशेषताएँ देता है, जिससे टर्मिनल में बेहतर नियंत्रण मिलता है।
- ऑनलाइन REPLs: ब्राउज़र-आधारित परिवेश जैसे Python.org का इंटरैक्टिव शेल और Python Morsels REPL त्वरित परीक्षण, कोड साझा करने, या चलते-फिरते अभ्यास के लिए उपयुक्त हैं।
निष्कर्ष
Python REPL सेशन कोड के साथ प्रयोग करने के लिए तेज, इंटरैक्टिव वातावरण प्रदान करता है, जो परीक्षण, सीखने और विचारों की खोज के लिए अनमोल है। इसकी बिल्ट-इन विशेषताओं में महारत आपको रोज़मर्रा के प्रोग्रामिंग कार्यों के लिए एक शक्तिशाली टूल देती है। अधिक जटिल वर्कफ़्लो या उन्नत उपयोगिता के लिए, उन्नत REPL विकल्पों के साथ प्रयोग करने से इंटरैक्टिव कोडिंग अनुभव और भी बेहतर हो सकता है।
Python की गहन समझ के लिए, आप हमारे Python Data Fundamentals और Python Programming Fundamentals स्किल ट्रैक्स से अधिक सीख सकते हैं। Python Cheat Sheet for Beginners भी तब काम आता है जब आप यह एक नज़र में देखना चाहते हैं कि Python में किसी लिस्ट को कैसे स्प्लिट करें।
डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है.
FAQs
मैं Python REPL कैसे शुरू करूँ?
अपना टर्मिनल खोलें और अपने सिस्टम के अनुसार python या python3 टाइप करें।
मैं REPL से कैसे बाहर निकलूँ?
quit() या exit() टाइप करें, या Unix पर Ctrl+D और Windows पर Ctrl+Z + Enter का उपयोग करें।
REPL और स्क्रिप्ट चलाने में क्या अंतर है?
REPL कोड को लाइन-दर-लाइन इंटरैक्टिव रूप से चलाता है, जबकि स्क्रिप्ट किसी फ़ाइल के सभी कोड को एक साथ निष्पादित करती है।
REPL में _ वेरिएबल क्या है?
_ आखिरी इवैल्युएटेड एक्सप्रेशन के परिणाम को रखता है ताकि आप उसे जल्दी से पुन: उपयोग कर सकें।
>>> और ... प्रॉम्प्ट्स क्या हैं?
>>> प्राथमिक प्रॉम्प्ट है, जबकि ... मल्टी-लाइन इनपुट के लिए सेकेंडरी प्रॉम्प्ट है।
