अध्याय 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 को future use के लिए save नहीं कर सकते और उन्हें दोबारा चलाने के लिए फिर से टाइप करना पड़ता है।
चित्र 3.2: Python Interpreter in Interactive Mode
(B) Script Mode
स्क्रिप्ट मोड में, हम एक फ़ाइल में Python प्रोग्राम लिख सकते हैं, उसे सहेज सकते हैं और फिर इंटरप्रेटर का उपयोग करके फ़ाइल से प्रोग्राम को निष्पादित कर सकते हैं। ऐसी प्रोग्राम फ़ाइलों का एक्सटेंशन .py होता है और उन्हें स्क्रिप्ट्स भी कहा जाता है। आमतौर पर, शुरुआती लोग Python को इंटरैक्टिव मोड में सीखते हैं, लेकिन कुछ पंक्तियों से अधिक वाले प्रोग्रामों के लिए, हमें हमेशा कोड को भविष्य के उपयोग के लिए फ़ाइलों में सहेजना चाहिए। Python स्क्रिप्ट्स किसी भी संपादक का उपयोग करके बनाई जा सकती हैं। Python में एक अंतर्निहित संपादक होता है जिसे IDLE कहा जाता है जिसका उपयोग प्रोग्राम बनाने के लिए किया जा सकता है। IDLE खोलने के बाद, हम File $>$ New File पर क्लिक करके एक नई फ़ाइल बना सकते हैं, फिर उस फ़ाइल पर अपना प्रोग्राम लिख सकते हैं और इच्छित नाम से सहेज सकते हैं। डिफ़ॉल्ट रूप से, 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 मान शून्य होता है।
अब आइए अन्तरक्रियात्मक मोड (interactive mode) में कुछ कथन चलाकर देखें कि 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 में पहले से परिभाषित कई फ़ंक्शन होते हैं जिन्हें बिल्ट-इन फ़ंक्शन कहा जाता है। हम पहले ही दो बिल्ट-इन फ़ंक्शन print() और input() का उपयोग कर चुके हैं। एक मॉड्यूल एक Python फ़ाइल होती है जिसमें कई फ़ंक्शन एक साथ समूहबद्ध किए जाते हैं। इन फ़ंक्शनों को आसानी से किसी Python प्रोग्राम में import कमांड का उपयोग करके आयात करके प्रयोग किया जा सकता है। बिल्ट-इन फ़ंक्शनों के उपयोग से प्रोग्रामिंग तेज़ और कुशल बनती है। किसी बिल्ट-इन फ़ंक्शन का उपयोग करने के लिए हमें उस फ़ंक्शन के बारे में निम्नलिखित बातें जाननी चाहिए:
- फ़ंक्शन नाम - फ़ंक्शन का नाम।
- आर्ग्युमेंट्स - जब हम किसी फ़ंक्शन को कॉल करते हैं, तो हम मान (मानों) को पैरेंथेसिस में बंद करके फ़ंक्शन को पास कर सकते हैं, जिसे आर्ग्युमेंट कहा जाता है। फ़ंक्शन इन मानों के आधार पर कार्य करता है। किसी फ़ंक्शन में आर्ग्युमेंट हो सकते हैं या नहीं भी हो सकते।
- रिटर्न वैल्यू - कोई फ़ंक्शन एक या अधिक मान वापस कर सकता है या नहीं भी कर सकता। एक फ़ंक्शन उन आर्ग्युमेंट्स के आधार पर संचालन करता है जो उसे पास किए जाते हैं और परिणाम वापस कॉलिंग पॉइंट पर भेजा जाता है। कुछ फ़ंक्शन कोई मान वापस नहीं करते।
आइए निम्नलिखित 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 का सिंटैक्स:
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’)
आउटपुट:
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
नोट: लूप के बॉडी को for statement के सापेक्ष इंडेंट किया जाता है।
3.12.1 The range() Function
range() पायथन में एक अंतर्निहित फलन है। range() फलन का वाक्य-विन्यास इस प्रकार है:
range([start], stop[, step])
इसका उपयोग दी गई प्रारंभिक संख्या से अंतिम संख्या तक (अंतिम संख्या को छोड़कर) दिए गए चरण मान के अंतर से पूर्णांकों की अनुक्रम वाली सूची बनाने के लिए किया जाता है। यदि प्रारंभिक मान निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट रूप से सूची 0 से प्रारंभ होती है। यदि चरण भी निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट रूप से प्रत्येक पुनरावृत्ति में मान 1 से बढ़ाया जाता है। range() फलन के सभी प्राचल पूर्णांक होने चाहिए। चरण प्राचल धनात्मक या ऋणात्मक पूर्णांक हो सकता है, शून्य को छोड़कर।
उदाहरण 3.13
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#प्रारंभिक मान 2 दिया गया है
>>> list(range(2, 10))
[2, 3, 4, 5, 6, 7, 8, 9]
#चरण मान 5 है और प्रारंभिक मान 0 है
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
#चरण मान -1 है। इसलिए, घटता हुआ
#अनुक्रम उत्पन्न होता है
>>> list(range(0, -9, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8]
फलन range() प्रायः for लूप में संख्याओं की अनुक्रम उत्पन्न करने के लिए प्रयोग किया जाता है।
कार्यक्रम 3-5 दी गई सीमा में संख्याओं के 10 के गुणक मुद्रित करने का कार्यक्रम।
#कार्यक्रम 3-5
#सीमा में संख्याओं के 10 के गुणक मुद्रित करें
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 में कई डेटा टाइप होते हैं - integer, boolean, float, complex, string, list, tuple, sets, None और dictionary।
- ऑपरेटर ऐसे निर्माण होते हैं जो ऑपरेंड्स के मान को नियंत्रित करते हैं। ऑपरेटर यूनरी या बाइनरी हो सकते हैं।
- एक एक्सप्रेशन मानों, वेरिएबल्स और ऑपरेटरों का संयोजन होता है।
- 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) का उपयोग छात्र संबंधित डेटा प्रबंधित करने के लिए करते हैं। यह सिस्टम निम्नलिखित सुविधाएँ प्रदान करता है:
- छात्रों के व्यक्तिगत विवरणों को रिकॉर्ड करना और बनाए रखना।
- मूल्यांकन में प्राप्त अंकों को बनाए रखना और छात्रों के परिणामों की गणना करना।
- छात्रों की उपस्थिति पर नज़र रखना, और
- स्कूल में छात्रों से संबंधित कई अन्य डेटा का प्रबंधन करना। आइए इसे चरण दर चरण स्वचालित करें।
अपने स्कूल के पहचान पत्र से छात्रों के व्यक्तिगत विवरणों की पहचान करें और एक ऐसा प्रोग्राम लिखें जो आपके स्कूल के सभी छात्रों के लिए इन विवरणों को स्वीकार करे और उन्हें इस प्रारूप में प्रदर्शित करे।