अध्याय 03 पायथन का संक्षिप्त अवलोकन
“क्या आपको वह कोड पसंद नहीं है जो सही ढंग से इंडेंट नहीं है? इसे [इंडेंट करना] सिंटैक्स का हिस्सा बनाने से यह गारंटी मिलती है कि सारा कोड सही ढंग से इंडेंट है।”
— जी. वान रॉसम
3.1 पायथन का परिचय
कंप्यूटर द्वारा निष्पादित किए जाने वाले निर्देशों या आदेशों का एक क्रमबद्ध समूह प्रोग्राम कहलाता है। उस निर्देशों के समूह को कंप्यूटर को बताने के लिए प्रयुक्त भाषा को प्रोग्रामिंग भाषा कहा जाता है, उदाहरण के लिए पायथन, सी, सी++, जावा आदि।
यह अध्याय पायथन प्रोग्रामिंग भाषा का संक्षिप्त अवलोकन देता है। पायथन एक बहुत लोकप्रिय और सीखने में आसान प्रोग्रामिंग भाषा है, जिसे गुइडो वान रॉसम ने 1991 में बनाया था। इसका उपयोग विभिन्न क्षेत्रों में किया जाता है, जिनमें सॉफ्टवेयर विकास, वेब विकास, वैज्ञानिक कम्प्यूटिंग, बिग डेटा और कृत्रिम बुद्धिमत्ता शामिल हैं। इस पुस्तक में दिए गए प्रोग्राम पायथन 3.7.0 का उपयोग करके लिखे गए हैं। हालाँकि, कोई भी पायथन 3 का कोई भी संस्करण इंस्टॉल करके दिए गए प्रोग्रामों का अनुसरण कर सकता है।
पायथन डाउनलोड करें
पायथन का नवीनतम संस्करण आधिकारिक वेबसाइट पर उपलब्ध है:
$\text{https://www.python.org/}$
3.1.1 पायथन के साथ कार्य करना
पायथन प्रोग्राम लिखने और चलाने (निष्पादित करने) के लिए हमें अपने कंप्यूटर पर पायथन इंटरप्रिटर इंस्टॉल करना होता है या हम किसी ऑनलाइन पायथन इंटरप्रिटर का उपयोग कर सकते हैं। इंटरप्रिटर को पायथन शेल भी कहा जाता है। पायथन इंटरप्रिटर की एक नमूना स्क्रीन चित्र 3.1 में दिखाई गई है। यहाँ प्रतीक »> को पायथन प्रॉम्प्ट कहा जाता है, जो दर्शाता है कि इंटरप्रिटर निर्देश प्राप्त करने के लिए तैयार है। हम निष्पादन के लिए इस प्रॉम्प्ट पर कमांड या कथन टाइप कर सकते हैं।
चित्र 3.1: Python Interpreter या Shell
3.1.2 Execution Modes
Python interpreter का उपयोग करके प्रोग्राम चलाने के दो तरीके हैं:
a) Interactive mode
b) Script mode
(A) Interactive Mode
Interactive mode में हम »> prompt पर सीधे Python statement टाइप कर सकते हैं। जैसे ही हम enter दबाते हैं, interpreter statement को execute करता है और परिणाम(ों) को प्रदर्शित करता है, जैसा कि चित्र 3.2 में दिखाया गया है।
Interactive mode में काम करना एक single line code को तुरंत execute करने के लिए सुविधाजनक है। लेकिन interactive mode में हम statements को भविष्य के उपयोग के लिए save नहीं कर सकते और उन्हें फिर से चलाने के लिए हमें statements को फिर से टाइप करना होता है।
चित्र 3.2: Interactive Mode में Python Interpreter
(B) Script Mode
स्क्रिप्ट मोड में, हम एक फ़ाइल में Python प्रोग्राम लिख सकते हैं, उसे सहेज सकते हैं और फिर इंटरप्रेटर का उपयोग करके फ़ाइल से प्रोग्राम को निष्पादित कर सकते हैं। ऐसी प्रोग्राम फ़ाइलों का एक्सटेंशन .py होता है और उन्हें स्क्रिप्ट्स भी कहा जाता है। आमतौर पर, शुरुआती लोग Python को इंटरैक्टिव मोड में सीखते हैं, लेकिन कुछ पंक्तियों से अधिक वाले प्रोग्रामों के लिए, हमें हमेशा कोड को भविष्य के उपयोग के लिए फ़ाइलों में सहेजना चाहिए। Python स्क्रिप्ट्स किसी भी संपादक का उपयोग करके बनाई जा सकती हैं। Python में एक अंतर्निहित संपादक होता है जिसे IDLE कहा जाता है जिसका उपयोग प्रोग्राम बनाने के लिए किया जा सकता है। IDLE खोलने के बाद, हम फ़ाइल $>$ नई फ़ाइल पर क्लिक करके एक नई फ़ाइल बना सकते हैं, फिर उस फ़ाइल पर अपना प्रोग्राम लिख सकते हैं और इच्छित नाम से सहेज सकते हैं। डिफ़ॉल्ट रूप से, Python स्क्रिप्ट्स Python इंस्टॉलेशन फ़ोल्डर में सहेजी जाती हैं।
IDLE : Integrated Development and Learning Environment
चित्र 3.3: स्क्रिप्ट मोड में Python कोड (prog3-1.py)
Python प्रोग्राम को स्क्रिप्ट मोड में निष्पादित करने के लिए,
a) प्रोग्राम को किसी संपादक, उदाहरण के लिए चित्र 3.3 में दिखाए गए IDLE का उपयोग करके खोलें।
b) IDLE में, [Run]->[Run Module] पर जाकर चित्र 3.4 में दिखाए गए अनुसार prog3-1.py को निष्पादित करें।
c) आउटपुट शेल पर प्रकट होता है जैसा कि चित्र 3.5 में दिखाया गया है।
चित्र 3.4: IDLE का उपयोग करके स्क्रिप्ट मोड में Python का निष्पादन
चित्र 3.5: स्क्रिप्ट मोड में निष्पादित प्रोग्राम prog 3-1.py का आउटपुट
3.2 Python Keywords
Keywords आरक्षित शब्द होते हैं। प्रत्येक keyword का Python interpreter के लिए एक विशिष्ट अर्थ होता है। चूँकि Python case sensitive है, keywords को Table 3.1 में दिए गए अनुसार ही ठीक-ठीक लिखना चाहिए।
Table 3.1 Python keywords
| False | class | finally | is | return |
|---|---|---|---|---|
| None | continue | for | lambda | try |
| True | def | from | nonlocal | while |
| and | del | global | not | with |
| as | elif | if | or | yield |
| assert | else | import | pass | |
| break | except | in | raise |
3.3 IDENTIFIERS
प्रोग्रामिंग भाषाओं में, identifiers उन नामों को कहा जाता है जिनका उपयोग किसी प्रोग्राम में variable, function या अन्य entities की पहचान करने के लिए किया जाता है। Python में identifier को नाम देने के नियम इस प्रकार हैं:
- नाम एक बड़े या छोटे अक्षर या अंडरस्कोर चिह्न () से शुरू होना चाहिए। इसके बाद वर्णों $\mathrm{a}-\mathrm{z}, \mathrm{A}-\mathrm{Z}$, 0-9 या अंडरस्कोर () का कोई भी संयोजन हो सकता है। इस प्रकार, एक पहचानकर्ता अंक से शुरू नहीं हो सकता।
- यह किसी भी लंबाई का हो सकता है। (हालांकि, इसे छोटा और सार्थक रखना पसंद किया जाता है)।
- यह तालिका 3.1 में दिए गए किसी कीवर्ड या रिज़र्व शब्द नहीं होना चाहिए।
- हम पहचानकर्ताओं में विशेष प्रतीकों जैसे !, @, #, $, \%, आदि का उपयोग नहीं कर सकते।
उदाहरण के लिए, किसी छात्र द्वारा तीन विषयों गणित, अंग्रेज़ी, इन्फॉर्मेटिक्स प्रैक्टिसेज़ (IP) में प्राप्त अंकों का औसत निकालने के लिए हम पहचानकर्ता marksMaths, marksEnglish, marksIP और avg चुन सकते हैं, न कि a, b, c, या A, B, C, क्योंकि ऐसे अक्षर यह कोई संकेत नहीं देते कि चर किस डेटा को संदर्भित करता है।
$\operatorname{avg}=($ marksMaths + marksEnglish + marksIP $) / 3$
3.4 वेरिएबल्स
वेरिएबल एक पहचानकर्ता है जिसका मान बदल सकता है। उदाहरण के लिए चर age का मान अलग-अलग व्यक्ति के लिए अलग-अलग हो सकता है। प्रोग्राम में वेरिएबल का नाम अद्वितीय होना चाहिए। वेरिएबल का मान स्ट्रिंग (उदाहरण के लिए, ‘b’, ‘Global Citizen’), संख्या (उदाहरण के लिए 10,71,80.52) या किसी अल्फ़ान्यूमेरिक (अक्षर और संख्या उदाहरण के लिए ‘b10’) वर्णों के संयोजन हो सकता है। Python में हम एक असाइनमेंट स्टेटमेंट का उपयोग करके नए वेरिएबल बना सकते हैं और उन्हें विशिष्ट मान सौंप सकते हैं।
$$ \begin{aligned} \text { gender } & =’ \text { ‘M’ } \\ \text { message } & =\text { “Keep Smiling” } \\ \text { price } & =987.9 \end{aligned} $$
वेरिएबल्स को हमेशा प्रोग्राम में उपयोग करने से पहले मान असाइन किए जाने चाहिए, अन्यथा इससे त्रुटि होगी। जहाँ भी प्रोग्राम में वेरिएबल नाम आता है, इंटरप्रेटर उसे उस विशेष वेरिएबल के मान से प्रतिस्थापित कर देता है।
प्रोग्राम 3-2 दो संख्याओं का योग ज्ञात करने के लिए एक Python प्रोग्राम लिखें।
#प्रोग्राम 3-2
#दी गई दो संख्याओं का योग ज्ञात करने के लिए
num1 $=10$
num2 $=20$
result $=$ num1 + num2
print(result)
#python में print फंक्शन आउटपुट प्रदर्शित करता है
आउटपुट:
30
कमेंट्स सोर्स कोड में एक टिप्पणी या नोट जोड़ने के लिए उपयोग किए जाते हैं। कमेंट्स को इंटरप्रेटर द्वारा निष्पादित नहीं किया जाता है। इन्हें सोर्स कोड को मनुष्यों के लिए समझने में आसान बनाने के उद्देश्य से जोड़ा जाता है। इनका उपयोग मुख्य रूप से सोर्स कोड के अर्थ और उद्देश्य को दस्तावेज़ करने के लिए किया जाता है। Python में, एकल पंक्ति कमेंट # (हैश चिह्न) से शुरू होता है। # के बाद उस पंक्ति के अंत तक आने वाली सभी चीज़ों को कमेंट के रूप में माना जाता है और इंटरप्रेटर कथन को निष्पादित करते समय इसे सरलता से अनदेखा कर देता है।
प्रोग्राम 3-3 एक आयत का क्षेत्रफल ज्ञात करने के लिए एक Python प्रोग्राम लिखें, यह दिया गया है कि इसकी लंबाई 10 इकाइयाँ और चौड़ाई 20 इकाइयाँ है।
#प्रोग्राम 3-3
#एक आयत का क्षेत्रफल ज्ञात करने के लिए
length $=10$
breadth $=20$
area $=$ length $*$ breadth
print(area)
आउटपुट:
200
3.5 डेटा प्रकार
पायथन में प्रत्येक मान किसी विशिष्ट डेटा प्रकार (data type) से सम्बद्ध होता है। डेटा प्रकार यह पहचान करता है कि कोई चर (variable) किस प्रकार के आंकड़े रख सकता है और उन आंकड़ों पर कौन-से संचालन किए जा सकते हैं। चित्र 3.6 पायथन में उपलब्ध डेटा प्रकारों की सूची देता है।
Data Types in Python
चित्र 3.6: पायथन में विभिन्न डेटा प्रकार
3.5.1 Number
Number डेटा प्रकार केवल संख्यात्मक मान संग्रहीत करता है। इसे तीन भिन्न प्रकारों में वर्गीकृत किया गया है: int, float और complex।
तालिका 3.2 संख्यात्मक डेटा प्रकार
| Type/ Class | Description | Examples |
|---|---|---|
| int | पूर्णांक संख्याएँ | $-12,-3,0,123,2$ |
| float | दशमलव बिंदु संख्याएँ | $-2.04,4.0,14.23$ |
| complex | समिश्र संख्याएँ | $3+4 \mathrm{i}, 2-2 \mathrm{i}$ |
बूलियन डेटा प्रकार (bool) पूर्णांक का एक उपप्रकार है। यह एक अनोखा डेटा प्रकार है जिसमें दो नियतांक होते हैं, True और False। बूलियन True मान शून्येतर होता है। बूलियन False मान शून्य होता है।
अब आइए अन्तरक्रियात्मक मोड में कुछ कथन निष्पादित करके निर्मित फलन type( ) का उपयोग कर चर के डेटा प्रकार का पता लगाएँ।
उदाहरण 3.1
>>> quantity = 10
>>> type(quantity)
<class ‘int’>
>>> Price = -1921.9
>>> type(price)
<class ‘float’>
सरल डेटा प्रकारों जैसे पूर्णांक, फ्लोट, बूलियन आदि के चर एकल मान रखते हैं। लेकिन ऐसे चर एकाधिक डेटा मानों को रखने में उपयोगी नहीं होते, उदाहरण के लिए, एक वर्ष के महीनों के नाम, एक कक्षा में छात्रों के नाम, फोन बुक में नाम और नंबर या संग्रहालय में कलाकृतियों की सूची। इसके लिए, Python अनुक्रम डेटा प्रकार प्रदान करता है जैसे स्ट्रिंग्स, सूचियाँ, टपल्स और मैपिंग डेटा प्रकार शब्दकोश।
3.5.2 अनुक्रम
एक Python अनुक्रम वस्तुओं का एक क्रमबद्ध संग्रह होता है, जहाँ प्रत्येक वस्तु एक पूर्णांक मान द्वारा अनुक्रमित होती है। Python में उपलब्ध तीन प्रकार के अनुक्रम डेटा प्रकार हैं: स्ट्रिंग्स, सूचियाँ और टपल्स। इन डेटा प्रकारों का एक संक्षिप्त परिचय इस प्रकार है:
(A) स्ट्रिंग
स्ट्रिंग वर्णों का एक समूह होता है। ये वर्ण वर्णमाला, अंक या विशेष वर्ण जिनमें रिक्त स्थान भी शामिल हो सकते हैं, हो सकते हैं। स्ट्रिंग मान या तो एकल उद्धरण चिह्नों में (उदाहरण के लिए ‘Hello’) या दोहरे उद्धरण चिह्नों में (उदाहरण के लिए “Hello”) संलग्न होते हैं। उद्धरण चिह्न स्ट्रिंग का हिस्सा नहीं होते, वे दुभाषिया के लिए स्ट्रिंग की शुरुआत और अंत को चिह्नित करने के लिए उपयोग किए जाते हैं। उदाहरण के लिए,
>>> str1 = ‘Hello Friend’
>>> str2 = “452”
हम स्ट्रिंग्स पर संख्यात्मक संचालन नहीं कर सकते, भले ही स्ट्रिंग में संख्यात्मक मान हो। उदाहरण के लिए str2 एक संख्यात्मक स्ट्रिंग है।
(B) सूची
सूची वस्तुओं का एक अनुक्रम होता है जो अल्पविराम से अलग होती हैं और वस्तुओं को वर्गाकार कोष्ठक [ ] में संलग्न किया जाता है। ध्यान दें कि वस्तुएँ विभिन्न डेटा प्रकारों की हो सकती हैं।
उदाहरण 3.2
#सूची बनाने के लिए
>>> list1 $=[5,3.4$, “नई दिल्ली”, “20C”, 45]
#सूची list1 के अवयवों को प्रिंट करें
>> list1
[5, 3.4, ‘नई दिल्ली’, ‘20C’, 45] \
(C) टपल
टपल वस्तुओं का एक क्रम होता है जिसे अल्पविराम से पृथक किया जाता है और वस्तुओं को कोष्ठक () में बंद किया जाता है। यह सूची से भिन्न है, जहाँ मान कोष्ठक [ ] में बंद होते हैं। एक बार बन जाने पर, हम टपल में वस्तुओं को नहीं बदल सकते। सूची की तरह, वस्तुएँ भिन्न डेटा प्रकारों की हो सकती हैं।
उदाहरण 3.3
#एक टपल tuple1 बनाएँ
>>> tuple1 = (10, 20, “सेब”, 3.4, ‘a’) \
#टपल tuple1 के अवयवों को प्रिंट करें
>>> print(tuple1)
(10, 20, “सेब”, 3.4, ‘a’)
3.5.3 मैपिंग
मैपिंग Python में एक अक्रमित डेटा प्रकार है। वर्तमान में, Python में केवल एक मानक मैपिंग डेटा प्रकार है जिसे शब्दकोश कहा जाता है।
(A) शब्दकोश
Python में शब्दकोश डेटा वस्तुओं को कुंजी-मान युग्मों में रखता है और वस्तुओं को घुंघराले कोष्ठक {} में बंद किया जाता है। शब्दकोश डेटा तक तेज़ पहुँच की अनुमति देते हैं। प्रत्येक कुंजी को अपने मान से अलग करने के लिए दो बिंदु (:) चिह्न का उपयोग होता है। शब्दकोश के कुंजी-मान युग्मों को कुंजी का उपयोग करके पहुँचा जा सकता है। कुंजियाँ सामान्यतः स्ट्रिंग प्रकार की होती हैं और उनके मान किसी भी डेटा प्रकार के हो सकते हैं। शब्दकोश में किसी भी मान तक पहुँचने के लिए, हमें कोष्ठक [ ] में उसकी कुंजी निर्दिष्ट करनी होती है।
उदाहरण 3.4
#एक डिक्शनरी बनाएँ
>>> dict1 = {‘Fruit’:‘Apple’,
‘Climate’:‘Cold’, ‘Price(kg)’:120}
>>> print(dict1)
{‘Fruit’: ‘Apple’, ‘Climate’: ‘Cold’,
‘Price(kg)’: 120}
#किसी कुंजी को देकर मान प्राप्त करना
>>> print(dict1[‘Price(kg)’])
120
Python दो स्ट्रिंग्स की तुलना लेक्सिकोग्राफ़िक रूप से करता है (शब्दकोश बनाने और लिखने के सिद्धांत और अभ्यास के अनुसार), वर्णों के ASCII मान का उपयोग करते हुए। यदि दोनों स्ट्रिंग्स का पहला वर्ण समान है, तो दूसरा वर्ण तुलना के लिए लिया जाता है, और इसी तरह आगे बढ़ता है।
3.6 ऑपरेटर्स
एक ऑपरेटर मानों पर विशिष्ट गणितीय या तार्किक संक्रिया करने के लिए प्रयोग किया जाता है। वे मान जिन पर ऑपरेटर कार्य करता है, ऑपरेंड कहलाते हैं। उदाहरण के लिए, व्यंजक $10+$ num में, मान 10 और चर num ऑपरेंड हैं और + (प्लस) चिह्न एक ऑपरेटर है। Python कई प्रकार के ऑपरेटर्स का समर्थन करता है, उनका वर्गीकरण इस खंड में संक्षेप में समझाया गया है।
3.6.1 अंकगणितीय ऑपरेटर्स
Python चार बुनियादी अंकगणितीय संक्रियाओं के साथ-साथ मॉड्यूलर डिवीज़न, फ़्लोर डिवीज़न और घातांकन करने के लिए अंकगणितीय ऑपरेटर्स (तालिका 3.3) का समर्थन करता है।
‘+’ ऑपरेटर का उपयोग ऑपरेटर के दोनों ओर दो स्ट्रिंग्स को जोड़ने के लिए भी किया जा सकता है।
>>> str1 $=$ “Hello”
>>> str2 $=$ “India”
>>> str1 + str2
‘HelloIndia’
‘*’ ऑपरेटर ऑपरेटर के बाईं ओर की वस्तु को दोहराता है यदि पहला ऑपरेंड एक स्ट्रिंग है और दूसरा ऑपरेंड एक पूर्णांक मान है।
>>> str1 = ‘India’
>>> str1 * 2
‘IndiaIndia’
टेबल 3.3 पाइथन में अंकगणितीय संचालक
| ऑपरेटर | संक्रिया | विवरण | उदाहरण (प्रयोगशाला में आज़माएँ) |
|---|---|---|---|
| + | योग | ऑपरेटर के दोनों ओर की संख्यात्मक मानों को जोड़ता है | >>> num1 $=5$ >>> num $2=6$ >>> num1 + num 2 11 |
| - | घटाव | बाएँ ऑपरेंड से दाएँ ऑपरेंड को घटाता है | >>> num1 $=5$ >>> num2 $=6$ >>> num1 - num2 -1 |
| * | गुणा | ऑपरेटर के दोनों ओर की मानों को गुणा करता है | >>> num1 $=5$ >>> num $2=6$ >>> num1 $*$ num 2 30 |
| 1 | भाग | बाएँ ऑपरेंड को दाएँ ऑपरेंड से भाग देता है और भागफल लौटाता है | >>> num1 $=5$ >>> num2 $=2$ >>> num1 / num2 2.5 |
| $\%$ | मॉड्यूलस | बाएँ ऑपरेंड को दाएँ ऑपरेंड से भाग देता है और शेषफल लौटाता है | >>> num1 $=13$ >>> num2 $=5$ >>> num1 $\%$ num 2 3 |
| // | फ़्लोर डिवीज़न | बाएँ ऑपरेंड को दाएँ ऑपरेंड से भाग देता है और दशमलव भाग हटाकर भागफल लौटाता है। इसे कभी-कभी पूर्णांक भाग भी कहा जाता है। | >>> num1 = 5 >>> num2 = 2 >>> num1 // num2 2 >>> num2 // num1 0 |
| ** | घातांक | आधार को घातांक की शक्ति तक बढ़ाता है। अर्थात्, आधार को घातांक में दी गई बार संख्या तक गुणा करता है | >>> num1 = 3 >>> num2 = 4 >>> num1 ** num2 81 |
ऑपरेटर $(+)$ और $(*)$ अन्य अनुक्रम डेटा प्रकारों जैसे सूची और टपल के लिए भी समान तरीके से काम करते हैं।
3.6.2 संबंधात्मक ऑपरेटर
संबंधात्मक ऑपरेटर अपने दोनों ओर स्थित ऑपरेंडों के मानों की तुलना करता है और उनके बीच संबंध निर्धारित करता है। निम्नलिखित उदाहरणों के लिए दिए गए Python चर num1 $=10$, num2 $=0$, num3 $=10$, str1 $=$ “Good”, str2 $=$ “Afternoon” पर विचार करें, जो तालिका 3.4 में दिए गए हैं:
तालिका 3.4 Python में संबंधात्मक ऑपरेटर
| ऑपरेटर | संचालन | विवरण | उदाहरण (प्रयोगशाला में आज़माएं) |
|---|---|---|---|
| $==$ | बराबर | यदि दो ऑपरेंडों के मान बराबर हैं, तो शर्त सत्य है, अन्यथा झूठी है। | >>> num1 == num2 False >>> str1 == str2 False |
| $!=$ | बराबर नहीं | यदि दो ऑपरेंडों के मान बराबर नहीं हैं, तो शर्त सत्य है, अन्यथा झूठी है | >>> num1 != num2 True >>> str1 != str2 True >>> num1 != num3 False |
| $>$ | से बड़ा | यदि बाएं ऑपरेंड का मान दाएं ऑपरेंड के मान से बड़ा है, तो शर्त सत्य है, अन्यथा झूठी है। | >>>num1 > num2 True >>> str1 > str2 True |
| $<$ | से छोटा | यदि बाएं ऑपरेंड का मान दाएं ऑपरेंड के मान से छोटा है, तो शर्त सत्य है, अन्यथा झूठी है | >>>num1 < num3 False |
इसी प्रकार, अन्य संबंधात्मक ऑपरेटर जैसे <= और $>=$ भी हैं।
3.6.3 असाइनमेंट ऑपरेटर
असाइनमेंट ऑपरेटर बाईं ओर के चर का मान निर्धारित करता है या बदलता है, जैसा कि तालिका 3.5 में दिखाया गया है।
तालिका 3.5 पायथन में असाइनमेंट ऑपरेटर
| ऑपरेटर | विवरण | उदाहरण (प्रयोगशाला में आज़माएँ) |
|---|---|---|
| $=$ | दायें ओर के ऑपरेंड का मान बायें ओर के ऑपरेंड को देता है | >>> num1 = 2 >>> num $2=$ num1 >>> num 2 2 >>> country = ‘India’ >>> country ‘India’ |
| $+=$ | यह दायें ओर के ऑपरेंड का मान बायें ओर के ऑपरेंड में जोड़ता है और परिणाम बायें ओर के ऑपरेंड को देता है। नोट: $x+=y$ वही है जो $x=x+y$ |
>>> num1 $=10$ >>> num $2=2$ >>> num $1+=$ num 2 >>> num1 12 >>> num2 2 |
| $-=$ | यह बायें ओर के ऑपरेंड से दायें ओर के ऑपरेंड का मान घटाता है और परिणाम बायें ओर के ऑपरेंड को देता है। नोट: $\mathrm{x}-=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x}-\mathrm{y}$ |
>>> num1 = 10 >>> num2 = 2 >>> num1 -= num2 >>> num1 8 |
इसी प्रकार, अन्य असाइनमेंट ऑपरेटर भी हैं जैसे $*=, /=, %=, / /=$, और **=.
3.6.4 लॉजिकल ऑपरेटर
पायथन तीन लॉजिकल ऑपरेटर (तालिका 3.6) समर्थित करता है। ये ऑपरेटर (and, or, not) केवल छोटे अक्षरों में लिखे जाने चाहिए। लॉजिकल ऑपरेटर या तो True या False मूल्यांकित करता है, यह इसके दोनों ओर के लॉजिकल ऑपरेंड्स पर आधारित होता है।
तालिका 3.6 पायथन में लॉजिकल ऑपरेटर
| ऑपरेटर | ऑपरेशन | विवरण | उदाहरण (लैब में आज़माएँ) |
|---|---|---|---|
| and | लॉजिकल AND | यदि दोनों ऑपरेंड True हैं, तो स्थिति True हो जाती है | >>> num1 $=10$ >>> num $2=-20$ >>> num1 $==10$ and num2 $==-20$ True >>> num1 $==10$ and num2 $==10$ False |
| or | लॉजिकल OR | यदि दोनों में से कोई एक ऑपरेंड True है, तो स्थिति True हो जाती है | >>> num $1=10$ >>> num $2=2$ >>> num1 >= 10 or num2 >= 10 True >>> num $1<=5$ or num $2>=10$ False |
| not | लॉजिकल NOT | अपने ऑपरेंड के लॉजिकल स्टेट को उलटने के लिए प्रयोग किया जाता है | >>> num1 = 10 >>> not (num1 == 20) True >>> not (num1 == 10) False |
3.6.5 मेंबरशिप ऑपरेटर्स
मेंबरशिप ऑपरेटर (तालिका 3.7) का उपयोग यह जांचने के लिए किया जाता है कि कोई मान दी गई अनुक्रम का सदस्य है या नहीं।
तालिका 3.7 पायथन में मेंबरशिप ऑपरेटर्स
| ऑपरेटर | विवरण | उदाहरण (लैब में आज़माएँ) |
|---|---|---|
| in | True लौटाता है यदि चर या मान निर्दिष्ट अनुक्रम में पाया जाता है, अन्यथा False | >>> numSeq $=[1,2,3]$ >>> 2 in numSeq True >>> ‘1’ in numSeq False #‘1’ एक स्ट्रिंग है जबकि #numSeq में संख्या 1 है। |
| not in | True लौटाता है यदि चर/मान निर्दिष्ट अनुक्रम में नहीं पाया जाता, अन्यथा False | >>> numSeq = $[1,2,3]$ >>> 10 not in numSeq True >>> 1 not in numSeq False |
3.7 EXPRessions
एक अभिव्यक्ति को स्थिरांकों, चरों और संचालकों के संयोजन के रूप में परिभाषित किया जाता है। एक अभिव्यक्ति हमेशा एक मान का मूल्यांकन करती है। एक मान या एक स्वतंत्र चर को भी एक अभिव्यक्ति माना जाता है, लेकिन एक स्वतंत्र संचालक अभिव्यक्ति नहीं होता है। कुछ मान्य अभिव्यक्तियों के उदाहरण नीचे दिए गए हैं।
(i) num - 20.4
(ii) $3.0+3.14$
(iii) $23 / 3-5 * 7(14-2)$
(iv) “Global”+“Citizen”
3.7.1 संचालकों की प्राथमिकता
अब तक हमने विभिन्न संचालकों और उनके उपयोग के उदाहरण देखे हैं। जब एक अभिव्यक्ति में एक से अधिक संचालक होते हैं, तो उनकी प्राथमिकता (क्रम या पदानुक्रम) निर्धारित करती है कि कौन-सा संचालक पहले लागू होना चाहिए। उच्च प्राथमिकता वाला संचालक निम्न प्राथमिकता वाले संचालक से पहले मूल्यांकित किया जाता है। निम्नलिखित उदाहरण में, ‘*’ और ‘/’ की प्राथमिकता ‘+’ और ‘-’ से अधिक है।
नोट:
a) कोष्ठकों का उपयोग संचालकों की प्राथमिकता को ओवरराइड करने के लिए किया जा सकता है। कोष्ठक () के भीतर की अभिव्यक्ति पहले मूल्यांकित की जाती है।
b) समान प्राथमिकता वाले संचालकों के लिए, अभिव्यक्ति बाएँ से दाएँ की ओर मूल्यांकित की जाती है।
उदाहरण 3.5 Python निम्नलिखित अभिव्यक्ति का मूल्यांकन कैसे करेगा?
$$ 20+30 * 40 $$
हल:
# * की प्राथमिकता + से अधिक है
$ \begin{array}{ll} =20+1200 & \text{ \# चरण 1}\\ = 1220 & \text{ \# चरण 2} \end{array} $
उदाहरण 3.6 Python निम्नलिखित अभिव्यक्ति का मूल्यांकन कैसे करेगा?
$(20+30) * 40$
हल:
$ \begin{array}{ll} =(20+30) * 40 & \text{ \# चरण 1}\\ \end{array} $
#कोष्ठक () का उपयोग करके, हमने + की प्राथमिकता को * से अधिक करने के लिए मजबूर किया है
$ \begin{array}{ll} =50 * 40 & \text{ \# चरण 2}\\ =2000 & \text{ \# चरण 3} \end{array} $
उदाहरण 3.7 निम्नलिखित व्यंजक का मूल्यांकन कैसे होगा?
हल:
$ 15.0 / 4.0+(8+3.0) $
$ \begin{array}{ll} =15.0 / 4.0+(8.0+3.0) \quad & \text { \#चरण 1 } \\ =15.0 / 4.0+11.0 & \text { \#चरण 2 } \\ =3.75+11.0 & \text { \#चरण 3 } \\ =14.75 & \text { \#चरण 4 } \end{array} $
3.8 इनपुट और आउटपुट
कभी-कभी हमें किसी प्रोग्राम में डेटा या विकल्प दर्ज करने की आवश्यकता होती है। Python में हमारे पास input() फ़ंक्शन है, जो कीबोर्ड जैसे इनपुट डिवाइस द्वारा दर्ज किए गए मानों को लेने के लिए होता है। input() फ़ंक्शन उपयोगकर्ता को डेटा दर्ज करने के लिए प्रेरित करता है। यह सभी उपयोगकर्ता इनपुट (चाहे वर्णमाला, संख्या या विशेष वर्ण) को स्ट्रिंग के रूप में स्वीकार करता है। input() के लिए सिंटैक्स है:
$ \text { variable }=\text { input }([\text { Prompt }]) $
Prompt वह स्ट्रिंग है जिसे हम इनपुट लेने से पहले स्क्रीन पर प्रदर्शित करना चाह सकते हैं, लेकिन यह वैकल्पिक है। input() वही लेता है जो कीबोर्ड से टाइप किया जाता है, उसे स्ट्रिंग में बदलता है और असाइनमेंट ऑपरेटर (=) के बाएँ हा�्स की वेरिएबल को सौंपता है।
उदाहरण 3.8
>>> fname = input (“Enter your first name: “)
Enter your first name: Arnab
>>> age = input(“Enter your age: “)
Enter your age: 19
चर fname स्ट्रिंग ‘Arnab’ को इनपुट के रूप में प्राप्त करता है। इसी प्रकार, चर age ‘19’ को स्ट्रिंग के रूप में प्राप्त करता है। हम उपयोगकर्ता से स्वीकृत स्ट्रिंग डेटा का डेटाटाइप उपयुक्त संख्यात्मक मान में बदल सकते हैं। उदाहरण के लिए, int() फ़ंक्शन स्वीकृत स्ट्रिंग को पूर्णांक में बदल देगा। यदि दर्ज की गई स्ट्रिंग गैर-संख्यात्मक है, तो एक त्रुटि उत्पन्न होगी।
उदाहरण 3.9
#function int() to convert string to integer
>>> age = int(input(“Enter your age: “))
Enter your age: 19
>>> type(age)
<class ‘int’>
Python स्क्रीन पर डेटा को मानक आउटपुट डिवाइस पर आउटपुट करने के लिए print() फ़ंक्शन का उपयोग करता है। print() फ़ंक्शन स्क्रीन पर प्रदर्शित करने से पहले अभिव्यक्ति का मूल्यांकन करता है। print() के लिए सिंटैक्स है:
print (value)
उदाहरण 3.10
| Statement | Output |
|---|---|
| print(“Hello”) | Hello |
| print $(10 * 2.5)$ | 25.0 |
3.9 डिबगिंग
त्रुटियों के कारण, एक प्रोग्राम निष्पादित नहीं हो सकता है या गलत आउटपुट उत्पन्न कर सकता है:
i) सिंटैक्स त्रुटियाँ
ii) लॉजिकल त्रुटियाँ
iii) रनटाइम त्रुटियाँ
3.9.1 सिंटैक्स त्रुटियाँ
किसी भी प्रोग्रामिंग भाषा की तरह, Python के भी नियम होते हैं जो निर्धारित करते हैं कि प्रोग्राम कैसे लिखा जाए। इसे सिंटैक्स कहा जाता है। इंटरप्रेटर किसी प्रोग्राम के कथन की व्याख्या तभी कर सकता है जब वह सिंटैक्टिकली सही हो। उदाहरण के लिए, कोष्ठक हमेशा जोड़े में होने चाहिए, इसलिए व्यंजक $(10+$ 12) सिंटैक्टिकली सही है, जबकि $(7+11$ दायां कोष्ठक न होने के कारण सही नहीं है। यदि कोई सिंटैक्स त्रुटि मौजूद है, तो इंटरप्रेटर त्रुटि संदेश दिखाता है और वहीं निष्पादन रोक देता है। ऐसी त्रुटियों को प्रोग्राम के निष्पादन से पहले हटाना आवश्यक होता है।
3.9.2 लॉजिकल त्रुटियाँ
एक लॉजिकल त्रुटि/बग (सेमैंटिक त्रुटि कहलाती है) निष्पादन को रोकती नहीं है, लेकिन प्रोग्रिम गलत व्यवहार करता है और अवांछित/गलत आउटपुट देता है। चूंकि प्रोग्राम लॉजिकल त्रुटियों की उपस्थिति में भी सफलतापूर्वक व्याख्या कर लेता है, कभी-कभी इन त्रुटियों की पहचान करना कठिन हो जाता है।
उदाहरण के लिए, यदि हम दो संख्याओं 10 और 12 का औसत निकालना चाहें और हम कोड $10+12 / 2$ लिखें, तो वह सफलतापूर्वक चलेगा और परिणाम 16 देगा, जो गलत है। औसत निकालने के लिए सही कोड $(10+12) / 2$ होना चाहिए ताकि आउटपुट 11 मिले।
3.9.3 रनटाइम त्रुटि
एक रनटाइम त्रुटि प्रोग्राम के चलते समय असामान्य रूप से समाप्त होने का कारण बनती है। रनटाइम त्रुटि तब होती है जब कथन सिंटैक्टिकली सही होता है, लेकिन इंटरप्रेटर उसे निष्पादित नहीं कर सकता।
उदाहरण के लिए, हमारे प्रोग्राम में एक डिवीज़न ऑपरेशन वाला स्टेटमेंट है। गलती से यदि डिनॉमिनेटर का मान शून्य हो जाता है तो यह “division by zero” जैसी रनटाइम एरर देगा।
लॉजिकल एरर्स और रनटाइम एरर्स को पहचानने और हटाने की प्रक्रिया को डिबगिंग कहा जाता है। हमें एक प्रोग्राम को डिबग करना होता है ताकि वह सफलतापूर्वक चल सके और वांछित आउटपुट उत्पन्न कर सके।
3.10 फंक्शन्स
एक फंक्शन उन स्टेटमेंट्स या इंस्ट्रक्शन्स के समूह को दर्शाता है जो किसी नाम के अंतर्गत समूहबद्ध होकर निर्धारित कार्य करते हैं। दोहराए जाने वाले या रूटीन कार्यों के लिए हम एक फंक्शन को परिभाषित करते हैं। एक फंक्शन को एक बार परिभाषित किया जाता है और प्रोग्राम में कई स्थानों पर केवल फंक्शन का नाम लिखकर, अर्थात् उस फंक्शन को कॉल करके पुनः उपयोग किया जा सकता है।
मान लीजिए हमारे पास एक प्रोग्राम है जिसे कई स्थानों पर कंपाउंड इंटरेस्ट की गणना करनी है। अब हर बार ब्याज़ की गणना करने का फॉर्मुला लिखने के बजाय, हम CalcCompInt नामक एक फंक्शन बना सकते हैं और उस फंक्शन के अंदर इनपुट लेने (जैसे ब्याज़ दर, अवधि, मूलधन), ब्याज़ की गणना करने और आउटपुट डिस्प्ले करने के लिए कोड लिख सकते हैं। जब भी कंपाउंड इंटरेस्ट की गणना करनी हो तो हम CalcCompInt फंक्शन का नाम लिखकर उसे सिंपली कॉल कर सकते हैं और इस प्रकार समय व प्रयास बचाने के लिए कोड को पुनः उपयोग कर सकते हैं।
Python में कई पूर्वनिर्धारित फलन होते हैं जिन्हें अंतर्निहित फलन (built-in functions) कहा जाता है। हम पहले ही दो अंतर्निहित फलन print() और input() का उपयोग कर चुके हैं। एक मॉड्यूल एक Python फ़ाइल होता है जिसमें कई फलनों को एक साथ समूहबद्ध किया जाता है। इन फलनों को आसानी से किसी Python प्रोग्राम में उपयोग किया जा सकता है, import कमांड द्वारा मॉड्यूल को आयात करके। अंतर्निहित फलनों के उपयोग से प्रोग्रामिंग तेज और कुशल बनती है। किसी अंतर्निहित फलन का उपयोग करने के लिए हमें उसके बारे में निम्नलिखित बातें जाननी चाहिए:
- फलन नाम - फलन का नाम।
- तर्क (Arguments) - फलन को बुलाते समय हम मान पास कर सकते हैं, जिन्हें तर्क कहा जाता है और जो कोष्ठक में लिखे जाते हैं। फलन इन मानों के आधार पर कार्य करता है। किसी फलन में तर्क हो सकते हैं या नहीं भी।
- प्रतिदान मान (Return Value) - कोई फलन एक या अधिक मान वापस कर सकता है या नहीं भी। फलन उन तर्कों पर आधारित संचालन करता है जो उसे दिए गए होते हैं और परिणाम वापस बुलाने वाले स्थान पर भेजा जाता है। कुछ फलन कोई मान वापस नहीं करते।
आइए निम्नलिखित Python प्रोग्राम पर विचार करें जो तीन अंतर्निहित फलन input(), int() और print() का उपयोग करता है:
#संख्या का वर्ग निकालना
num $=$ int (input (“पहली संख्या दर्ज करें”))
square $=$ num ${ }^{*}$ num
print(“संख्या”, num, " का वर्ग “, square, " है”)
ध्यान दें:
- पहले कथन में दो अंतर्निहित फ़ंक्शनों का उपयोग किया गया है, int() और input()। तीसरी पंक्ति में एक फ़ंक्शन print() है।
- इनपुट फ़ंक्शन एक तर्क “Enter your name” स्वीकार करता है। तर्क वे मान होते हैं जो कोष्ठक के भीतर पास किए जाते हैं।
- इसी प्रकार, प्रिंट फ़ंक्शन में चार तर्क “the square of”, num, “is”, square अल्पविराम से अलग-अलग हैं।
- पहली पंक्ति में int फ़ंक्शन उपयोगकर्ता द्वारा कुंजीपटल से दर्ज किए गए मान को तर्क के रूप में लेता है और उसे पूर्णांक में बदलकर लौटाता है। इस प्रकार int() फ़ंक्शन से लौटाया गया मान एक पूर्णांक होता है।
पायथन में सबसे अधिक प्रयोग किए जाने वाले कुछ अंतर्निहित फ़ंक्शनों को चार व्यापक श्रेणियों में तालिका 3.8 में सूचीबद्ध किया गया है।
तालिका 3.8 पायथन में कुछ सामान्यतः प्रयुक्त अंतर्निहित फ़ंक्शन
| इनपुट/ आउटपुट | डेटाटाइप रूपांतरण | गणितीय फ़ंक्शन | अन्य फ़ंक्शन |
|---|---|---|---|
| input( ) | bool( ) | abs( ) | import() |
| print() | $\operatorname{chr}()$ | divmod( ) | $\operatorname{len}()$ |
| $\operatorname{dict}()$ | $\max ()$ | range () | |
| float () | $\min ()$ | type( ) | |
| int( ) | pow () | ||
| list() | $\operatorname{sum}()$ | ||
| $\operatorname{ord}()$ | |||
| $\operatorname{set}()$ | |||
| $\operatorname{str}()$ | |||
| tuple( ) |
3.11 if. . else कथन
आमतौर पर प्रोग्राम में कथन एक के बाद एक निष्पादित होते हैं। हालांकि, कुछ स्थितियाँ ऐसी होती हैं जब हमें कुछ शर्तों के परिणाम के आधार पर एक से अधिक विकल्पों में से चयन करना होता है। यह if . . else शर्तीय कथनों का उपयोग करके किया जा सकता है। शर्तीय कथन हमें यह लिखने देते हैं कि प्रोग्रम शर्तों के परिणाम के आधार पर भिन्न कार्य करे या भिन्न मार्ग अपनाए।
if. . else कथन लिखने के तीन तरीके हैं:
- if कथन - जब शर्त सत्य होती है तो if के अंदर के कथन(नों) को निष्पादित करता है।
उदाहरण 3.11
age int(input(“Enter your age “))
if age >= 18: # use ‘:’ to indicate end of condition.
print(“Eligible to vote”)
- if…else कथन जब शर्त सत्य होती है तो if के अंदर के कथन(नों) को निष्पादित करता है, अन्यथा else के अंदर के कथन(नों) को निष्पादित करता है (जब शर्त असत्य होती है)
#Program to subtract smaller number from the
#larger number and display the difference.
num1 = int (input (“Enter first number: “))
num2 $=$ int(input(“Enter second number: “))
if num1 > num2:
diff = num1 - num2
else:
diff $=$ num2 - num1
print(“The difference of”, num1, “and”, num2,
“is”, diff)
आउटपुट:
Enter first number: 5
Enter second number: 6
The difference of 5 and 6 is 1
- if…elif…else का उपयोग एकाधिक शर्तों की जाँच और तदनुसार कथनों को निष्पादित करने के लिए किया जाता है। elif का अर्थ elseif है। अधिक स्पष्टता के लिए हम elif के स्थान पर elseif भी लिख सकते हैं।
Python ब्लॉक के साथ-साथ नेस्टेड ब्लॉक संरचनाओं के लिए भी इंडेंटेशन का उपयोग करता है। किसी स्टेटमेंट की शुरुआत में लीडिंग व्हाइटस्पेस (स्पेस और टैब) को इंडेंटेशन कहा जाता है। Python में, समान स्तर का इंडेंटेशन स्टेटमेंट्स को एक ही कोड ब्लॉक से जोड़ता है। इंटरप्रेटर इंडेंटेशन स्तरों की बहुत सख्ती से जाँच करता है और यदि इंडेंटेशन सही नहीं है तो सिंटैक्स एरर देता है। प्रत्येक इंडेंटेशन स्तर के लिए एक टैब का उपयोग करना सामान्य अभ्यास है।
उदाहरण 3.12 जाँच करें कि कोई संख्या धनात्मक है, ऋणात्मक है या शून्य है।
number $=$ int(input(“Enter a number: “)
if number >0 :
print(“Number is positive”)
elif number < 0 :
print(“Number is negative”)
else:
print (“Number is zero”)
जब कंडीशनल स्टेटमेंट्स आते हैं, तो Python इंटरप्रेटर उस एक ब्लॉक के अंदर का कोड चलाता है जिसे कंडीशन के आधार पर चुना जाता है। elif की संख्या उन कंडीशनों की संख्या पर निर्भर करती है जिन्हें चेक करना है। यदि पहली कंडीशन गलत है, तो अगली कंडीशन चेक की जाती है, और इसी तरह। यदि कोई एक कंडीशन सही है, तो संगत इंडेंटेड ब्लॉक चलता है, और if स्टेटमेंट समाप्त हो जाता है। उसके बाद, if..else के बाहर के स्टेटमेंट चलते हैं या यदि आगे कोई स्टेटमेंट नहीं हैं तो प्रोग्राम समाप्त हो जाता है।
3.12 For Loop
कभी-कभी हमें कुछ चीज़ों को निश्चित बार दोहराना पड़ता है। उदाहरण के लिए, एक प्रोग्राम को कक्षा के हर छात्र की उपस्थिति दिखानी होती है। यहाँ प्रोग्राम को हर छात्र के लिए print statement चलानी होती है। प्रोग्रामिंग में इस तरह की पुनरावृत्ति को लूपिंग या इटरेशन कहा जाता है, और यह for statement का उपयोग करके की जाती है। for statement का उपयोग मानों की रेंज या किसी अनुक्रम पर इटरेट करने के लिए किया जाता है। लूप रेंज में मौजूद हर आइटम के लिए चलाया जाता है। मान संख्यात्मक, स्ट्रिंग, लिस्ट या टपल हो सकते हैं।
जब रेंज के सभी आइटम समाप्त हो जाते हैं, तो लूप के भीतर के statements नहीं चलते और Python interpreter for loop के तुरंत बाद वाले statements चलाना शुरू कर देता है। for loop का उपयोग करते समय हमें पहले से पता होना चाहिए कि लूप कितनी बार चलेगा।
for Loop का Syntax:
for <control-variable> in <sequence/items in range>:
<statements inside body of the loop >
Program 3-4 for loop का उपयोग करके दी गई सीक्वेंस में सम संख्याएँ प्रिंट करने का प्रोग्राम।
#Program 3-4
#Print even numbers in the given sequence
numbers =[1,2,3,4,5,6,7,8,9,10]
for num in numbers:
if (num % 2)==0 :
print(num, ‘is an even Number’)
Output:
2 is an even Number
4 is an even Number
6 is an even Number
8 is an even Number
10 is an even Number
range() पायथन में एक अंतर्निहित फलन है। range() फलन की वाक्य-रचना है:
range([start], stop[, step])
इसका उपयोग दी गई प्रारंभिक संख्या से अंतिम संख्या (अंतिम संख्या को छोड़कर) तक, दिए गए चरण मान के अंतर से पूर्णांकों की एक अनुक्रम वाली सूची बनाने के लिए किया जाता है। यदि प्रारंभिक मान निर्दिष्ट नहीं किया गया है, तो सूचि डिफ़ॉल्ट रूप से 0 से शुरू होती है। यदि चरण भी निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट रूप से प्रत्येक पुनरावृत्ति में मान 1 से बढ़ाया जाता है। range() फलन के सभी प्राचल पूर्णांक होने चाहिए। चरण प्राचल धनात्मक या ऋणात्मक पूर्णांक हो सकता है, शून्य को छोड़कर।
उदाहरण 3.13
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#start value is given as 2
>>> list(range(2, 10))
[2, 3, 4, 5, 6, 7, 8, 9]
#step value is 5 and start value is 0
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
#step value is -1. Hence, decreasing
#sequence is generated
>>> list(range(0, -9, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8]
फलन range() प्रायः for लूप में संख्याओं की एक श्रृंखला उत्पन्न करने के लिए प्रयोग किया जाता है।
कार्यक्रम 3-5 दी गई सीमा में संख्याओं के लिए 10 के गुणकों को मुद्रित करने का कार्यक्रम।
#Program 3-5
#Print multiples of 10 for numbers in a range
for num in range(5):
if num $>0$ :
$\operatorname{print}($ num * 10$)$
आउटपुट:
10
20
30
40
3.13 नेस्टेड लूप
एक लूप के अंदर एक और लूप हो सकता है। एक लूप जो दूसरे लूप के अंदर होता है उसे नेस्टेड लूप कहा जाता है।
प्रोग्राम 3-6 नेस्टेड for लूप्स के कार्य को प्रदर्शित करने के लिए प्रोग्राम।
#प्रोग्राम 3-6
#नेस्टेड for लूप्स के कार्य को प्रदर्शित करना
for var1 in range(3):
print( “Iteration " + str(var1 + 1) + " of outer loop”)
for var2 in range(2): $\quad$ #nested loop
print(var2 +1 )
print(“Out of inner loop”)
print(“Out of outer loop”)
आउटपुट:
Iteration 1 of outer loop
1
2
Out of inner loop
Iteration 2 of outer loop
1
2
Out of inner loop
Iteration 3 of outer loop
1
2
Out of inner loop
Out of outer loop
सारांश
- Python एक ओपन-सोर्स, उच्च स्तरीय, इंटरप्रेटर-आधारित भाषा है जिसका उपयोग वैज्ञानिक और गैर-वैज्ञानिक कंप्यूटिंग उद्देश्यों की विविधता के लिए किया जा सकता है।
- कमेंट्स प्रोग्राम में निष्पादन योग्य नहीं होती हैं।
- एक आइडेंटिफायर प्रोग्राम में किसी वेरिएबल या कॉन्स्टेंट को दिया गया उपयोगकर्ता-परिभाषित नाम है।
- कंप्यूटर प्रोग्राम से त्रुटियों को पहचानने और हटाने की प्रक्रिया को डिबगिंग कहा जाता है।
- किसी वेरिएबल का उपयोग करने की कोशिश करना जिसे कोई मान नहीं दिया गया हो, एक त्रुटि देता है।
- Python में कई डेटा प्रकार हैं - पूर्णांक, बूलियन, फ्लोट, कॉम्प्लेक्स, स्ट्रिंग, सूची, टपल, सेट, None और शब्दकोश।
- ऑपरेटर ऐसी संरचनाएँ हैं जो ऑपरेंड्स के मान को नियंत्रित करती हैं। ऑपरेटर यूनरी या बाइनरी हो सकते हैं।
- एक एक्सप्रेशन मानों, वेरिएबल्स और ऑपरेटरों का संयोजन होता है।
- Python में उपयोगकर्ता इनपुट लेने के लिए input() फ़ंक्शन है।
- Python में डेटा को मानक आउटपुट डिवाइस पर आउटपुट करने के लिए print() फ़ंक्शन है।
- if कथन निर्णय लेने के लिए उपयोग किया जाता है।
- लूपिंग कोड के कुछ खंडों को किसी शर्त के तहत बार-बार निष्पादित करने की अनुमति देता है।
- for कथन मानों की सीमा या क्रम पर पुनरावृत्ति करने के लिए उपयोग किया जा सकता है।
- for लूप के शरीर के भीतर के कथन तब तक निष्पादित होते हैं जब तक मानों की सीमा समाप्त नहीं हो जाती।
अभ्यास
1. निम्नलिखित में से कौन-से आइडेंटिफायर नाम अमान्य हैं और क्यों?
| a) | Serial_no. | e) | Total_Marks |
|---|---|---|---|
| b) | 1st_Room | f) | total-Marks |
| c) | Hundred$ | g) | _Percentage |
| d) | Total Marks | h) | True |
2. संगत Python असाइनमेंट कथन लिखें:
a) चर length में 10 और चर breadth में 20 असाइन करें।
b) चर length और breadth के मानों का औसत चर sum में असाइन करें।
c) स्ट्रिंग्स ‘Paper’, ‘Gel Pen’, और ‘Eraser’ वाली सूची को चर stationery में असाइन करें।
d) स्ट्रिंग्स ‘Mohandas’, ‘Karamchand’, और ‘Gandhi’ को क्रमशः चर first, middle और last में असाइन करें।
e) स्ट्रिंग चर first, middle और last के संयुक्त मान को चर fullname में असाइन करें। नाम के विभिन्न भागों के बीच उचित रूप से खाली स्थान रखना सुनिश्चित करें।
3. निम्नलिखित डेटा मानों को दर्शाने के लिए कौन-सा डेटा प्रकार प्रयुक्त होगा और क्यों?
a) एक वर्ष में महीनों की संख्या
b) दिल्ली का निवासी है या नहीं
c) मोबाइल नंबर
d) पॉकेट मनी
e) गोले का आयतन
f) वर्ग की परिधि
g) छात्र का नाम
h) छात्र का पता
4. निम्नलिखित का आउटपुट दें जब num1 $=4$, num2 $=3$, num3 $=2$
a) num $1+=$ num $2+$ num 3
b) print (num1)
c) num1 = num 1 ** (num2 + num3)
d) print (num1)
e) num $1 * *=$ num $2+\mathrm{c}$
f) num $1=$ ‘5’ + ‘5’
g) $\operatorname{print}($ num 1 )
h) $\operatorname{print}(4.00 /(2.0+2.0))$
i) num $1=2+9 *((3 * 12)-8) / 10$
j) $\operatorname{print}($ num 1 )
k) num1 = float (10)
l) print (num1)
m) num $1=\operatorname{int}($ ‘3.14’)
n) print (num1)
o) $\operatorname{print}(10!=9$ and $20>=20)$
p) $\operatorname{print}(5 \% 10+10<50$ and $29<=29$ )
5. निम्नलिखित को सिंटैक्स एरर, लॉजिकल एरर या रनटाइम एरर के रूप में वर्गीकृत करें:
a) $25 / 0$
b) num $1=25$; num $2=0$; num $1 /$ num 2
6. एक Python प्रोग्राम लिखें जो सरल ब्याज पर उधार दिए गए धनराशि के लिए देय राशि की गणना करे। मूलधन या उधार दी गई राशि $=\mathrm{P}$, दर $=\mathrm{R} \%$ प्रति वर्ष और समय $=\mathrm{T}$ वर्ष। तब सरल ब्याज $(\mathrm{SI})=(\mathrm{P} \times \mathrm{R} \times \mathrm{T}) / 100$।
देय राशि $=$ मूलधन + SI।
$\mathrm{P}, \mathrm{R}$ और $\mathrm{T}$ प्रोग्राम को इनपुट के रूप में दिए जाते हैं।
7. एक प्रोग्राम लिखें जो स्ट्रिंग “GOOD MORNING” को $\mathrm{n}$ बार दोहराए। यहाँ $\mathrm{n}$ उपयोगकर्ता द्वारा दर्ज किया गया एक पूर्णांक है।
8. तीन संख्याओं का औसत निकालने के लिए एक प्रोग्राम लिखें।
9. एक प्रोग्राम लिखें जो उपयोगकर्ता से उसका नाम और आयु दर्ज करने को कहे। उपयोगकर्ता को संबोधित एक संदेश प्रिंट करें जो बताए कि वह/वह किस वर्ष 100 वर्ष का/की हो जाएगा/गी।
10. if स्टेटमेंट के else और elif निर्माण के बीच क्या अंतर है?
11. निम्नलिखित प्रोग्राम खंडों का आउटपुट खोजें:
a) for $i$ in range $(20,30,2)$ : print(i)
b) country = ‘INDIA’
for $i$ in country: print (i) c) $i=0 ;$ sum $=0$ while $i<9$ :
if i $\% 4==0$ :
sum $=$ sum $+i$
$i=i+2$
print (sum)
केस स्टडी आधारित प्रश्न
स्कूल “स्टूडेंट मैनेजमेंट इनफॉर्मेशन सिस्टम” (SMIS) का उपयोग छात्र संबंधित डेटा प्रबंधित करने के लिए करते हैं। यह सिस्टम निम्नलिखित सुविधाएँ प्रदान करता है:
- छात्रों की व्यक्तिगत जानकारी को रिकॉर्ड करना और बनाए रखना।
- मूल्यांकन में प्राप्त अंकों को बनाए रखना और छात्रों के परिणामों की गणना करना।
- छात्रों की उपस्थिति का ट्रैक रखना, और
- स्कूल में छात्रों से संबंधित कई अन्य डेटा का प्रबंधन करना। आइए इसे चरण दर चरण स्वचालित करें।
अपने स्कूल पहचान पत्र से छात्रों की व्यक्तिगत जानकारी की पहचान करें और एक ऐसा प्रोग्राम लिखें जो आपके स्कूल के सभी छात्रों के लिए इन विवरणों को स्वीकार करे और उन्हें इस प्रारूप में प्रदर्शित करे।