Chapter 05 Getting Started with Python
5.1 पायथन का परिचय
हमने अध्याय 4 में विभिन्न समस्याओं के लिए एल्गोरिद्म लिखे हैं। आइए अब एक कदम आगे बढ़ें और पायथन 3 के किसी भी संस्करण का उपयोग करके प्रोग्राम बनाएं। लेकिन पायथन प्रोग्रामिंग भाषा के बारे में सीखने से पहले, आइए समझें कि प्रोग्रामिंग भाषा क्या होती है और यह कैसे काम करती है।
“कंप्यूटर प्रोग्रामिंग एक कला है, क्योंकि यह संचित ज्ञान को दुनिया पर लागू करती है, क्योंकि इसके लिए कौशल और चतुराई की आवश्यकता होती है, और विशेष रूप से इसलिए कि यह सौंदर्य के वस्तुओं का निर्माण करती है। एक प्रोग्रामर जो अनजाने में खुद को एक कलाकार के रूप में देखता है, वह जो करता है उसका आनंद लेगा और उसे बेहतर तरीके से करेगा।”
$\quad$ - डोनाल्ड नाथ
कंप्यूटर द्वारा किसी विशिष्ट कार्य को करने के लिए निष्पादित किए जाने वाले निर्देशों का एक क्रमबद्ध समूह प्रोग्राम कहलाता है, और कंप्यूटर को इस निर्देशों के समूह को निर्दिष्ट करने के लिए प्रयुक्त भाषा को प्रोग्रामिंग भाषा कहा जाता है।
जैसा कि हम जानते हैं कि कंप्यूटर $0 \mathrm{~s}$ और $1 \mathrm{~s}$ की भाषा को समझते हैं जिसे मशीन भाषा या निम्न स्तर की भाषा कहा जाता है। हालांकि, मनुष्यों के लिए $0 \mathrm{~s}$ और $1 \mathrm{~s}$ का उपयोग करके निर्देश लिखना या समझना कठिन होता है। इसने पायथन, सी++, विजुअल बेसिक, पीएचपी, जावा जैसी उच्च स्तरीय प्रोग्रामिंग भाषाओं की उत्पत्ति को जन्म दिया जो मनुष्यों द्वारा प्रबंधित करना आसान होती हैं लेकिन कंप्यूटर द्वारा सीधे समझी नहीं जातीं।
एक उच्च-स्तरीय भाषा में लिखा गया कार्यक्रम स्रोत कोड कहलाता है। अध्याय 1 से याद कीजिए कि स्रोत कोड को मशीन भाषा में अनुवादित करने के लिए भाषा अनुवादक जैसे कंपाइलर और इंटरप्रेटर की आवश्यकता होती है। Python अपने निर्देशों को मशीन भाषा में बदलने के लिए एक इंटरप्रेटर का उपयोग करता है, ताकि कंप्यूटर उसे समझ सके। एक इंटरप्रेटर प्रोग्रम कथनों को एक-एक करके संसाधित करता है, पहले अनुवाद करता है और फिर निष्पादित करता है। यह प्रक्रिया तब तक जारी रहती है जब तक कोई त्रुटि नहीं आती या पूरा प्रोग्राम सफलतापूर्वक निष्पादित नहीं हो जाता। दोनों ही स्थितियों में, प्रोग्रम निष्पादन रुक जाएगा। इसके विपरीत, एक कंपाइलर संपूर्ण स्रोत कोड को एक साथ ऑब्जेक्ट कोड में अनुवादित करता है। पूरे प्रोग्रम को स्कैन करने के बाद, यह त्रुटि संदेश उत्पन्न करता है, यदि कोई हों।
5.1.1 Python की विशेषताएँ
- Python एक उच्च स्तरीय भाषा है। यह एक मुफ्त और खुला स्रोत भाषा है।
- यह एक व्याख्यात्मक भाषा है, क्योंकि Python प्रोग्रामों को एक इंटरप्रेटर द्वारा निष्पादित किया जाता है।
- Python प्रोग्राम समझने में आसान होते हैं क्योंकि उनकी स्पष्ट रूप से परिभाषित वाक्य रचना और अपेक्षाकृत सरल संरचना होती है।
- Python केस-संवेदी है। उदाहरण के लिए, NUMBER और number Python में समान नहीं हैं।
- Python पोर्टेबल और प्लेटफ़ॉर्म स्वतंत्र है, इसका अर्थ है कि यह विभिन्न ऑपरेटिंग सिस्टम और हार्डवेयर प्लेटफॉर्म पर चल सकता है।
- Python में पूर्वनिर्धारित फ़ंक्शंस का एक समृद्ध पुस्तकालय है।
- Python वेब विकास में भी सहायक है। कई लोकप्रिय वेब सेवाएँ और अनुप्रयोग Python का उपयोग करके बनाए गए हैं।
- Python ब्लॉक और नेस्टेड ब्लॉक के लिए इंडेंटेशन का उपयोग करता है।
पायथन डाउनलोड करना
पायथन 3 का नवीनतम संस्करण आधिकारिक वेबसाइट पर उपलब्ध है:
https:/www.python.org/
5.1.2 पायथन के साथ कार्य करना
पायथन प्रोग्राम लिखने और चलाने (निष्पादित करने) के लिए हमें अपने कंप्यूटर पर पायथन इंटरप्रेटर स्थापित करना होगा या हम किसी ऑनलाइन पायथन इंटरप्रेटर का उपयोग कर सकते हैं। इंटरप्रेटर को पायथन शेल भी कहा जाता है। पायथन इंटरप्रेटर की एक नमूना स्क्रीन चित्र 5.1 में दिखाई गई है:
चित्र 5.1: पायथन इंटरप्रेटर या शेल
उपरोक्त स्क्रीन में, प्रतीक »> पायथन प्रॉम्प्ट है, जो दर्शाता है कि इंटरप्रेटर निर्देश लेने के लिए तैयार है। हम इस प्रॉम्प्ट पर कमांड या कथन टाइप कर सकते हैं ताकि उन्हें पायथन इंटरप्रेटर द्वारा निष्पादित किया जा सके।
5.1.3 निष्पादन मोड
पायथन इंटरप्रेटर का उपयोग करने के दो तरीके हैं:
a) इंटरैक्टिव मोड
b) स्क्रिप्ट मोड
इंटरैक्टिव मोड व्यक्तिगत कथन को तुरंत निष्पादित करने की अनुमति देता है। जबकि स्क्रिप्ट मोड हमें एक से अधिक निर्देशों को एक फ़ाइल में लिखने की अनुमति देता है, जिसे पायथन स्रोत कोड फ़ाइल कहा जाता है और जिसे निष्पादित किया जा सकता है।
(A) इंटरैक्टिव मोड
इंटरैक्टिव मोड में कार्य करने के लिए, हम सीधे »> प्रॉम्प्ट पर कोई पायथन कथन टाइप कर सकते हैं। जैसे ही हम एंटर दबाते हैं, इंटरप्रेटर कथन को निष्पादित करता है और परिणाम(ों) को प्रदर्शित करता है, जैसा कि चित्र 5.2 में दिखाया गया है।
चित्र 5.2: इंटरैक्टिव मोड में पायथन इंटरप्रेटर
इंटरैक्टिव मोड में काम करना एक पंक्ति के कोड को तुरंत निष्पादित करने के लिए सुविधाजनक होता है। लेकिन इंटरैक्टिव मोड में हम कथनों को भविष्य में उपयोग के लिए सहेज नहीं सकते और उन्हें फिर से चलाने के लिए हमें कथनों को फिर से टाइप करना पड़ता है।
(B) स्क्रिप्ट मोड
स्क्रिप्ट मोड में, हम एक फ़ाइल में पायथन प्रोग्राम लिख सकते हैं, उसे सहेज सकते हैं और फिर इंटरप्रेटर का उपयोग करके उसे निष्पादित कर सकते हैं। पायथन स्क्रिप्ट्स फ़ाइलों के रूप में सहेजे जाते हैं जहाँ फ़ाइल नाम का एक्सटेंशन “.py” होता है। डिफ़ॉल्ट रूप से, पायथन स्क्रिप्ट्स पायथन इंस्टॉलेशन फ़ोल्डर में सहेजे जाते हैं। एक स्क्रिप्ट को निष्पादित करने के लिए, हम या तो:
a) प्रॉम्प्ट पर पथ के साथ फ़ाइल नाम टाइप करें। उदाहरण के लिए, यदि फ़ाइल का नाम prog5-1.py है, तो हम prog5-1.py टाइप करते हैं। हम अन्यथा आईडीएलई से सीधे प्रोग्राम को खोल सकते हैं जैसा कि चित्र 5.3 में दिखाया गया है।
b) स्क्रिप्ट मोड में काम करते समय, फ़ाइल को सहेजने के बाद, मेनू से [Run]->[Run Module] पर क्लिक करें जैसा कि चित्र 5.4 में दिखाया गया है।
c) आउटपुट शेल पर दिखाई देता है जैसा कि चित्र 5.5 में दिखाया गया है।
प्रोग्राम 5-1 स्क्रिप्ट मोड में प्रिंट कथन दिखाने के लिए एक प्रोग्राम लिखें।
चित्र 5.3: पायथन सोर्स कोड फ़ाइल (prog5-1.py)
चित्र 5.4: IDLE का उपयोग कर स्क्रिप्ट मोड में Python का निष्पादन
चित्र 5.5: स्क्रिप्ट मोड में निष्पादित प्रोग्राम का आउटपुट
5.2 PYTHON KEYWORDS
Keywords आरक्षित शब्द होते हैं। प्रत्येक keyword का Python दुभाषिये के लिए एक विशिष्ट अर्थ होता है, और हम किसी keyword का उपयोग अपने प्रोग्राम में केवल उस उद्देश्य के लिए ही कर सकते हैं जिसके लिए उसे परिभाषित किया गया है। चूँकि Python केस-संवेदी है, keywords को Table 5.1 में दिए गए रूप में ही ठीक-ठीक लिखना चाहिए।
$\hspace{1.5cm}$ तालिका 5.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 |
5.3 IDENTIFIERS
प्रोग्रामिंग भाषाओं में, identifiers वे नाम होते हैं जिनका उपयोग किसी प्रोग्राम में चर, फ़ंक्शन या अन्य संस्थाओं की पहचान करने के लिए किया जाता है। Python में किसी identifier का नामकरण करते समय निम्नलिखित नियम लागू होते हैं:
- नाम एक बड़े या छोटे अक्षर या अंडरस्कोर चिह्न () से शुरू होना चाहिए। इसके बाद $a-z, A-Z, 0-9$ या अंडरस्कोर () के किसी भी संयोजन का उपयोग किया जा सकता है। इस प्रकार, कोई पहचानकर्ता अंक से शुरू नहीं हो सकता।
- यह किसी भी लंबाई का हो सकता है। (हालांकि, इसे छोटा और सार्थक रखना पसंद किया जाता है)।
- यह तालिका 5.1 में दिए गए किसी कीवर्ड या रिज़र्व्ड शब्द नहीं होना चाहिए।
- हम पहचानकर्ताओं में विशेष प्रतीकों जैसे !, @, #, $, %, आदि का उपयोग नहीं कर सकते।
उदाहरण के लिए, किसी छात्र द्वारा तीन विषयों में प्राप्त अंकों का औसत निकालने के लिए, हम पहचानकर्ता के रूप में marks1, marks2, marks3 और avg चुन सकते हैं, a, b, c, या A, B, C के बजाय।
$$ \mathrm{avg}=(\text { marks1 }+ \text { marks } 2+\text { marks3 }) / 3 $$
इसी तरह, एक आयत के क्षेत्रफल की गणना करने के लिए, हम स्पष्टता और पठनीयता के लिए पहचानकर्ता नामों के रूप में area, length, breadth का उपयोग कर सकते हैं, एकल अक्षरों के बजाय।
$$ \text { area }=\text { length } \star \text { breadth } $$
5.4 चर
एक प्रोग्राम में चर को एक नाम (पहचानकर्ता) द्वारा अद्वितीय रूप से पहचाना जाता है। Python में चर किसी वस्तु को संदर्भित करता है - एक वस्तु या तत्व जो मेमोरी में संग्रहीत होता है। चर का मान एक स्ट्रिंग (जैसे, ‘b’, ‘Global Citizen’), संख्यात्मक (जैसे, 345) या किसी भी अल्फ़ान्यूमेरिक वर्णों के संयोजन (CD67) हो सकता है। Python में हम नए चर बनाने और उन्हें विशिष्ट मान निर्धारित करने के लिए असाइनमेंट स्टेटमेंट का उपयोग कर सकते हैं।
gender = ‘M’
message = “Keep Smiling”
price = 987.9
प्रोग्राम 5-2 Python में वेरिएबल्स के मान प्रदर्शित करने के लिए एक प्रोग्राम लिखें।
#प्रोग्राम 5-2
#वेरिएबल्स के मान प्रदर्शित करने के लिए
message = “Keep Smiling”
print (message)
userNo $=101$
print(‘User Number is’, userNo)
आउटपुट:
Keep Smiling
User Number is 101
प्रोग्राम 5-2 में, वेरिएबल message स्ट्रिंग प्रकार का मान रखता है और इसलिए इसकी सामग्री डबल कोट्स " " के भीतर निर्धारित की गई है (सिंगल कोट्स ’ ’ के भीतर भी हो सकती है), जबकि वेरिएबल userNo का मान कोट्स में नहीं है क्योंकि यह एक संख्यात्मक मान है।
Python में वेरिएबल डिक्लेरेशन अंतर्निहित है, इसका अर्थ है कि वेरिएबल्स स्वचालित रूप से घोषित और परिभाषित हो जाते हैं जब उन्हें पहली बार कोई मान सौंपा जाता है। वेरिएबल्स को हमेशा किसी एक्सप्रेशन में उपयोग करने से पहले मान सौंपना चाहिए अन्यथा इससे प्रोग्राम में त्रुटि होगी। जहाँ भी एक्सप्रेशन में वेरिएबल नाम आता है, इंटरप्रेटर उसे उस विशेष वेरिएबल के मान से प्रतिस्थापित कर देता है।
प्रोग्राम 5-3 एक Python प्रोग्राम लिखें जो आयत का क्षेत्रफल निकाले, दिया गया है कि इसकी लंबाई 10 यूनिट और चौड़ाई 20 यूनिट है।
#प्रोग्राम 5-3
#आयत का क्षेत्रफल निकालने के लिए
length $=10$
breadth $=20$
area $=$ length $*$ breadth
print (area)
आउटपुट:
200
5.5 कमेंट्स
कमेंट्स सोर्स कोड में कोई टिप्पणी या नोट जोड़ने के लिए उपयोग किए जाते हैं। कमेंट्स को इंटरप्रेटर द्वारा निष्पादित नहीं किया जाता है।
इन्हें मुख्यतः यह सुनिश्चित करने के लिए जोड़ा जाता है कि मानवों के लिए स्रोत कोड को समझना आसान हो। इनका प्रयोग मुख्य रूप से स्रोत कोड के अर्थ और उद्देश्य तथा इसके इनपुट और आउटपुट आवश्यकताओं का दस्तावेज़ीकरण करने के लिए किया जाता है, ताकि हम बाद में याद रख सकें कि यह किस प्रकार कार्य करता है और इसका उपयोग कैसे करना है। बड़े और जटिल सॉफ़्टवेयर के लिए, यह प्रोग्रामरों को टीमों में काम करने की आवश्यकता हो सकती है और कभी-कभी, एक प्रोग्रामर द्वारा लिखा गया प्रोग्राम किसी अन्य प्रोग्रामर द्वारा उपयोग या रखरखाव के लिए आवश्यक होता है। ऐसी स्थितियों में, प्रोग्राम की कार्यप्रणाली को समझने के लिए टिप्पणियों के रूप में दस्तावेज़ीकरण आवश्यक होता है।
Python में, एक टिप्पणी # (हैश चिह्न) से शुरू होती है। उस # के बाद से उस पंक्ति के अंत तक सब कुछ टिप्पणी माना जाता है और इंटरप्रेटर कथन को निष्पादित करते समय इसे बस अनदेखा कर देता है।
उदाहरण 5.1
#Variable amount is the total spending on
#grocery
amount = 3400
#totalMarks is sum of marks in all the tests
#of Mathematics
totalMarks = test1 + test2 + finalTest
प्रोग्राम 5-4 दो संख्याओं का योग ज्ञात करने के लिए एक Python प्रोग्राम लिखें।
#Program 5-4
#To find the sum of two numbers
num1 =10
num2 =20
result = num1 + num 2
print (result)
आउटपुट:
30
5.6 सब कुछ एक वस्तु है
Python प्रत्येक मान या डेटा आइटम को चाहे वह संख्यात्मक हो, स्ट्रिंग हो या अन्य प्रकार का (अगले खंड में चर्चा की गई है), एक वस्तु के रूप में मानता है इस अर्थ में कि इसे किसी चर को निर्धारित किया जा सकता है या किसी फ़ंक्शन को तर्क के रूप में पास किया जा सकता है।
पायथन में प्रत्येक वस्तु को एक अद्वितीय पहचान (ID) दी जाती है जो उस वस्तु के जीवनकाल तक समान रहती है। यह ID वस्तु के मेमोरी पते के समान है। फंक्शन $id()$ किसी वस्तु की पहचान लौटाता है।
ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP) के संदर्भ में वस्तुएँ वास्तविक दुनिया की प्रतिनिधित्व होती हैं, जैसे कर्मचारी, छात्र, वाहन, बॉक्स, पुस्तक आदि। किसी भी ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषा जैसे C++, JAVA आदि में प्रत्येक वस्तु से दो चीज़ें जुड़ी होती हैं: (i) डेटा या गुण और (ii) व्यवहार या विधियाँ। इसके अतिरिक्त वर्ग और वर्ग पदानुक्रम की संकल्पनाएँ होती हैं जिनसे वस्तुओं को उत्पन्न किया जा सकता है। यद्यपि OOP संकल्पनाएँ हमारी वर्तमान चर्चा के दायरे में नहीं हैं।
पायथन भी ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की श्रेणी में आता है। तथापि पायथन में वस्तु की परिभाषा ढीली-ढाली है क्योंकि कुछ वस्तुओं में गुण नहीं हो सकते या अन्य में विधियाँ नहीं हो सकतीं।
उदाहरण 5.2
>>> num1 = 20
>>> id(num1)
1433920576 $\qquad$ #num1 की पहचान
>>> num2 = 30 - 10
>>> id(num2)
1433920576 $\qquad$ #num2 और num1 की पहचान
$\qquad$ #समान है क्योंकि दोनों
$\qquad$ #वस्तु 20 को संदर्भित करते हैं
5.7 डेटा प्रकार
पायथन में प्रत्येक मान किसी विशिष्ट डेटा प्रकार का होता है। डेटा प्रकार यह पहचानता है कि चर किस प्रकार के डेटा मान रख सकता है और उस डेटा पर कौन-से संचालन किए जा सकते हैं। चित्र 5.6 पायथन में उपलब्ध डेटा प्रकारों की सूची देता है।
चित्र 5.6: Python में विभिन्न डेटा प्रकार
5.7.1 संख्या
संख्या डेटा प्रकार केवल संख्यात्मक मान संग्रहीत करता है। इसे आगे तीन भिन्न प्रकारों में वर्गीकृत किया गया है: int, float और complex।
$\hspace{3cm}$ तालिका 5.2 संख्यात्मक डेटा प्रकार
| प्रकार/ वर्ग | विवरण | उदाहरण |
|---|---|---|
| int | पूर्णांक संख्याएँ | $-12,-3,0,125,2$ |
| float | वास्तविक या फ्लोटिंग पॉइंट संख्याएँ | $-2.04,4.0,14.23$ |
| complex | समिश्र संख्याएँ | $3+4 \mathrm{j}, 2-2 \mathrm{j}$ |
बूलियन डेटा प्रकार (bool) पूर्णांक का एक उपप्रकार है। यह एक अद्वितीय डेटा प्रकार है, जिसमें दो स्थिरांक होते हैं, True और False। बूलियन True मान गैर-शून्य, गैर-नल और गैर-रिक्त होता है। बूलियन False शून्य मान होता है।
आइए अब इंटरैक्टिव मोड में कुछ कथन निष्पादित करके बिल्ट-इन फंक्शन type() का उपयोग करके चर के डेटा प्रकार का निर्धारण करने का प्रयास करें।
उदाहरण 5.3
>>> num1 = 10
>>> type(num1)
<class ‘int’>
>>> num2 = -1210
>>> type(num2)
<class ‘int’>
>>> var1 = True
>>> type(var1)
<class ‘bool’>
>>> float1 = -1921.9
>>> type(float1)
<class ‘float’>
>>> float2 = -9.8*10**2
>>> print(float2, type(float2))
-980.0000000000001 <class ‘float’>
>>> var2 = -3+7.2j
>>> print(var2, type(var2))
(-3+7.2j) <class ‘complex’>
पूर्णांक, फ्लोट, बूलियन आदि जैसे सरल डेटा प्रकारों के चर एकल मान रखते हैं। लेकिन ऐसे चर किसी लंबी सूची की जानकारी रखने में उपयोगी नहीं होते, उदाहरण के लिए एक वर्ष के महीनों के नाम, किसी कक्षा में विद्यार्थियों के नाम, फोन-बुक में नाम और नंबर या संग्रहालय में कलाकृतियों की सूची। इसके लिए Python टपल, सूचियाँ, शब्दकोश और सेट जैसे डेटा प्रकार प्रदान करता है।
5.7.2 अनुक्रम
Python अनुक्रम वस्तुओं का एक क्रमबद्ध संग्रह होता है, जहाँ प्रत्येक वस्तु एक पूर्णांक द्वारा अनुक्रमित होती है। Python में उपलब्ध तीन प्रकार के अनुक्रम डेटा प्रकार स्ट्रिंग, सूचियाँ और टपल हैं। हम इनमें से प्रत्येक के बारे में विस्तार से बाद के अध्यायों में सीखेंगे। इन डेटा प्रकारों का संक्षिप्त परिचय इस प्रकार है:
(A) स्ट्रिंग
स्ट्रिंग वर्णों का एक समूह होता है। ये वर्ण वर्णमाला, अंक या रिक्त स्थान सहित विशेष वर्ण हो सकते हैं। स्ट्रिंग मान या तो एकल उद्धरण चिह्नों में (जैसे ‘Hello’) या दोहरे उद्धरण चिह्नों में (जैसे “Hello”) संलग्न होते हैं। उद्धरण चिह्न स्ट्रिंग का हिस्सा नहीं होते, वे दुभाषिया के लिए स्ट्रिंग की शुरुआत और अंत को चिह्नित करने के लिए प्रयुक्त होते हैं। उदाहरण के लिए,
>>> str1 = ‘Hello Friend’
>>> str2 = “452”
हम स्ट्रिंग पर संख्यात्मक संचालन नहीं कर सकते, यहाँ तक कि जब स्ट्रिंग में संख्यात्मक मान हो, जैसे str2 में।
(B) सूची
सूची अल्पविराम से विभाजित वस्तुओं का एक अनुक्रम होता है और वस्तुओं को वर्गाकार कोष्ठक [ ] में संलग्न किया जाता है।
उदाहरण 5.4
#सूची बनाने के लिए
>>> list1 = [5, 3.4, “New Delhi”, “20C”, 45]
#सूची list1 के अवयवों को प्रिंट करें
>>> print(list1)
[5, 3.4, ‘New Delhi’, ‘20C’, 45]
(C) टपल
टपल वस्तुओं का एक क्रम होता है जिसे अल्पविराम से अलग किया जाता है और वस्तुओं को कोष्ठक () में बंद किया जाता है। यह सूची से भिन्न होता है, जहाँ मान कोष्ठक [] में बंद होते हैं। एक बार बन जाने पर हम टपल को बदल नहीं सकते।
उदाहरण 5.5
#एक टपल tuple1 बनाएँ
>>> tuple1 = (10, 20, “Apple”, 3.4, ‘a’)
#टपल tuple1 के अवयवों को प्रिंट करें
>>> print(tuple1)
(10, 20, “Apple”, 3.4, ‘a’)
5.7.3 सेट
सेट वस्तुओं का एक अक्रमित संग्रह होता है जिसे अल्पविराम से अलग किया जाता है और वस्तुओं को घुंघराले कोष्ठक {} में बंद किया जाता है। सेट सूची के समान होता है, सिवाय इसके कि इसमें दोहराव वाली प्रविष्टियाँ नहीं हो सकतीं। एक बार बन जाने पर सेट के अवयवों को बदला नहीं जा सकता।
उदाहरण 5.6
#एक सेट बनाएँ
>>> set 1={10,20,3.14, New Delhi"}
>>> print (type (set1))
$<$ class ‘set’>
>>> print (set1)
{10,20,3.14, “New Delhi”}
#दोहराव वाले अवयव सेट में शामिल नहीं होते
>>> set2 = {1,2,1,3}
>>> print(set2)
{1, 2, 3}
5.7.4 None
None एक विशेष डेटा प्रकार है जिसमें एकल मान होता है। इसका उपयोग किसी स्थिति में मान की अनुपस्थिति को दर्शाने के लिए किया जाता है। None कोई विशेष संक्रियाएँ समर्थित नहीं करता, और यह न तो False के समान है और न ही 0 (शून्य) के समान।
उदाहरण 5.7
>>> myVar = None
>>> print(type(myVar))
<class ‘NoneType’>
>>> print(myVar)
None
5.7.5 मैपिंग
मैपिंग Python में एक अव्यवस्थित डेटा प्रकार है। वर्तमान में, Python में केवल एक मानक मैपिंग डेटा प्रकार है जिसे शब्दकोश कहा जाता है।
(A) शब्दकोश
Python में शब्दकोश डेटा आइटमों को कुंजी-मान युग्मों में रखता है। शब्दकोश में आइटम कर्ली ब्रैकेट्स {} में संलग्न होते हैं। शब्दकोश डेटा तक तेज़ पहुँच की अनुमति देता है। प्रत्येक कुंजी को अपने मान से कोलन (:) चिह्न द्वारा अलग किया जाता है। शब्दकोश के कुंजी : मान युग्मों को कुंजी का उपयोग करके एक्सेस किया जा सकता है। कुंजियाँ आमतौर पर स्ट्रिंग्स होती हैं और उनके मान कोई भी डेटा प्रकार हो सकते हैं। शब्दकोश में किसी भी मान तक पहुँचने के लिए, हमें उसकी कुंजी को स्क्वायर ब्रैकेट्स [ ] में निर्दिष्ट करना होता है।
उदाहरण 5.8
#एक शब्दकोश बनाएँ
>>> dict1 = {‘Fruit’:‘Apple’,
‘Climate’:‘Cold’, ‘Price(kg)’:120}
>>> print(dict1)
{‘Fruit’: ‘Apple’, ‘Climate’: ‘Cold’,
‘Price(kg)’: 120}
>>> print(dict1[‘Price(kg)’])
120
5.7.6 परिवर्तनीय और अपरिवर्तनीय डेटा प्रकार
कभी-कभी हमें प्रोग्राम में उपयोग किए गए कुछ वेरिएबल्स के मानों को बदलने या अपडेट करने की आवश्यकता हो सकती है। हालाँकि, कुछ डेटा प्रकारों के लिए, Python हमें उन मानों को बदलने की अनुमति नहीं देता एक बार जब उस प्रकार का कोई वेरिएबल बनाया जाता है और मान असाइन किए जाते हैं।
वेरिएबल्स जिनके मान बनाने और मान असाइन करने के बाद बदले जा सकते हैं, उन्हें परिवर्तनीय कहा जाता है। वेरिएबल्स जिनके मान बनाने और मान असाइन करने के बाद नहीं बदले जा सकते, उन्हें अपरिवर्तनीय कहा जाता है। जब किसी अपरिवर्तनीय वेरिएबल के मान को अपडेट करने का प्रयास किया जाता है, तो पुराना वेरिएबल नष्ट हो जाता है और मेमोरी में उसी नाम से एक नया वेरिएबल बनाया जाता है।
पायथन डेटा प्रकारों को परिवर्तनीय (mutable) और अपरिवर्तनीय (immutable) के रूप में वर्गीकृत किया जा सकता है जैसा कि चित्र 5.7 में दिखाया गया है।
चित्र 5.7: डेटा प्रकारों का वर्गीकरण
आइए अब देखते हैं कि जब किसी वेरिएबल के मान को अपडेट करने का प्रयास किया जाता है तो क्या होता है। >>> num1 =300
यह स्टेटमेंट 300 मान के साथ एक ऑब्जेक्ट बनाएगा और ऑब्जेक्ट की पहचानकर्ता num1 द्वारा संदर्भित किया जाएगा जैसा कि चित्र 5.8 में दिखाया गया है।>>> num2= num1
चित्र 5.8: ऑब्जेक्ट और उसकी पहचानकर्ता
स्टेटमेंट num2 = num1, num2 को 300 मान की ओर संदर्भित करेगा, जिसे num1 भी संदर्भित कर रहा है, और जो मेमोरी लोकेशन नंबर, मान लीजिए 1000, पर संग्रहित है। इसलिए, num1 num2 के साथ संदर्भित लोकेशन साझा करता है जैसा कि चित्र 5.9 में दिखाया गया है।
चित्र 5.9: समान मान वाले वेरिएबलों की समान पहचानकर्ता होती है
इस प्रकार पायथन असाइनमेंट को प्रभावी बनाता है केवल संदर्भ की प्रतिलिपि बनाकर, न कि डेटा की:
>>> num1 = num2+ 100
चित्र 5.10: भिन्न मान वाले वेरिएबलों की भिन्न पहचानकर्ता होती है
यह कथन 1 num1 = num2 +100 चर num1 को स्मृति स्थान संख्या मान लीजिए 2200 पर संग्रहीत एक नए वस्तु से जोड़ता है जिसका मान 400 है। चूंकि num1 एक पूर्णांक है, जो एक अपरिवर्तनीय प्रकार है, इसे फिर से बनाया जाता है, जैसा कि चित्र 5.10 में दिखाया गया है।
5.7.7 पायथन डेटा प्रकारों के उपयोग का निर्णय लेना
जब हमें डेटा का एक सरल पुनरावृत्त संग्रह चाहिए जो बार-बार संशोधनों के लिए जा सकता है, तब सूचियों का उपयोग करना पसंद किया जाता है। उदाहरण के लिए, यदि हम किसी कक्षा के छात्रों के नाम एक सूची में संग्रहीत करते हैं, तब कुछ नए छात्रों के शामिल होने या कुछ के पाठ्यक्रम छोड़ने पर सूची को अद्यतन करना आसान होता है। टपल्स का उपयोग तब किया जाता है जब हमें डेटा में कोई परिवर्तन नहीं चाहिए। उदाहरण के लिए, एक वर्ष में महीनों के नाम। जब हमें अनूठे तत्वों की आवश्यकता होती है और दोहराव से बचना होता है, तब सेट्स का उपयोग करना पसंद किया जाता है, उदाहरण के लिए, एक संग्रहालय में कलाकृतियों की सूची। यदि हमारा डेटा लगातार संशोधित हो रहा है या हमें किसी कस्टम कुंजी के आधार पर तेज़ लुकअप चाहिए या हमें कुंजी : मान युग्म के बीच तार्किक संबंध चाहिए, तब शब्दकोशों का उपयोग करने की सलाह दी जाती है। एक मोबाइल फोन बुक शब्दकोश का एक अच्छा अनुप्रयोग है।
5.8 ऑपरेटर
एक ऑपरेटर मानों पर विशिष्ट गणितीय या तार्किक संचालन करने के लिए उपयोग किया जाता है। वे मान जिन पर ऑपरेटर कार्य करते हैं, ऑपरेंड कहलाते हैं। उदाहरण के लिए, अभिव्यक्ति 10+ num में, मान 10 और चर num ऑपरेंड हैं और + (प्लस) चिह्न एक ऑपरेटर है। पायथन कई प्रकार के ऑपरेटरों का समर्थन करता है जिनका वर्गीकरण इस खंड में संक्षेप में समझाया गया है।
पायथन स्ट्रिंग्स की तुलना लेक्सिकोग्राफ़िकली करता है, अक्षरों के ASCII मान का उपयोग करके। यदि दोनों स्ट्रिंग्स का पहला अक्षर समान है, तो दूसरा अक्षर तुलना के लिए लिया जाता है, और इसी तरह आगे बढ़ता है।
5.8.1 अंकगणितीय ऑपरेटर
पायथन अंकगणितीय ऑपरेटरों का समर्थन करता है जो चार बुनियादी अंकगणितीय संक्रियाओं के साथ-साथ मॉड्यूलर डिवीज़न, फ़्लोर डिवीज़न और घातांकन करने के लिए उपयोग किए जाते हैं।
$\hspace{3cm}$ तालिका 5.3 पायथन में अंकगणितीय ऑपरेटर
| ऑपरेटर | ऑपरेशन | विवरण | उदाहरण (लैब में आज़माएँ) |
|---|---|---|---|
| + | योग | ऑपरेटर के दोनों ओर मौजूद दो संख्यात्मक मानों को जोड़ता है यह ऑपरेटर दोनों ओर की दो स्ट्रिंग्स को जोड़ने के लिए भी प्रयोग किया जा सकता है |
>>> num1 = 5 >>> num2 =6 >>> num1 + num2 11 >>> str1 = “Hello” >>> str2 = “India” >>> str1 + str2 ‘HelloIndia’ |
| - | व्यवकलन | दाएँ ओर के ऑपरेंड से बाएँ ओर के ऑपरेंड को घटाता है | $>>>$ num1 $=5$ $>>>$ num2 $=6$ $>>>$ num1 - num2 -1 |
| * | गुणा | ऑपरेटर के दोनों ओर मौजूद दो मानों को गुणा करता है यदि पहला ऑपरेंड स्ट्रिंग है और दूसरा ऑपरेंड पूर्णांक है तो ऑपरेटर के बाएँ ओर की वस्तु को दोहराता है |
>>> num1 $=5$ >>> num $2=6$ >>> num1 $\star$ num2 30 >>> str1 = ‘India’ >>> str1 $* 2$ ‘IndiaIndia’ |
| / | भाग | बाएँ ओर के ऑपरेंड को दाएँ ओर के ऑपरेंड से भाग करता है और भागफल लौटाता है |
>>> num1 = 8 >>> num2 = 4 >>> num2 / num1 0.5 |
| $%$ | मॉड्यूलस | बाएँ ओर के ऑपरेंड को दाएँ ओर के ऑपरेंड से भाग करता है और शेषफल लौटाता है |
>>> num1 = 13 >>> num2 = 5 >>> num1 % num2 3 |
| $/ /$ | फ़्लोर डिवीज़न | बाएँ ओर के ऑपरेंड को दाएँ ओर के ऑपरेंड से भाग करता है और दशमलव भाग हटाकर भागफल लौटाता है। इसे कभी-कभी पूर्णांक भाग भी कहा जाता है। |
>>> num1 = 13 >>> num2 = 4 >>> num1 / / num2 3 num2 / / num1 0 |
| $* *$ | घातांक | ऑपरेंड्स पर घातांक (पावर) गणना करता है। अर्थात्, बाएँ ओर के ऑपरेंड को दाएँ ओर के ऑपरेंड की घात पर चढ़ाता है |
>>> num1 = 3 >>> num2 = 4 >>> num1 ** num2 81 |
5.8.2 संबंधात्मक संचालक
संबंधात्मक संचालक अपने दोनों ओर स्थित संचालकों के मानों की तुलना करता है और उनके बीच संबंध निर्धारित करता है। निम्न उदाहरणों के लिए Python चर num1 $=10$, num2$=0$, num3 $=10$, str $1=$ “Good”, str2 $=$
“Afternoon” मान लीजिए:
$\hspace{3cm}$ तालिका 5.4 Python में संबंधात्मक संचालक
| ऑपरेटर | ऑपरेशन | विवरण | उदाहरण (लैब में आज़माएँ) |
|---|---|---|---|
| $==$ | बराबर है | यदि दोनों ऑपरेंड्स के मान बराबर हैं, तो शर्त सही (True) है, अन्यथा गलत (False) है |
>>> num1 $==$ num 2 False >> str1 $==$ str 2 False |
| $!=$ | बराबर नहीं है | यदि दोनों ऑपरेंड्स के मान बराबर नहीं हैं, तो शर्त सही (True) है, अन्यथा गलत (False) है |
>>> num $1!=$ num 2 True >>> str $1!=$ str 2 True >>> num $1!=$ num 3 False |
| $>$ | से बड़ा है | यदि बाएँ ओर के ऑपरेंड का मान दाएँ ओर के ऑपरेंड के मान से बड़ा है, तो शर्त सही (True) है, अन्यथा गलत (False) है |
>>> num1 > num2 True >>> str1> str2 True |
| $<$ | से छोटा है | यदि बाएँ ओर के ऑपरेंड का मान दाएँ ओर के ऑपरेंड के मान से छोटा है, तो शर्त सही (True) है, अन्यथा गलत (False) है |
>>> num1< num 3 False >>> str $2<$ str 1 True |
| $>=$ | से बड़ा या बराबर है |
यदि बाएँ ओर के ऑपरेंड का मान दाएँ ओर के ऑपरेंड के मान से बड़ा या बराबर है, तो शर्त सही (True) है, अन्यथा गलत (False) है |
>>> num1 >= num 2 True >>> num $2>=$ num 3 False >>> str1 >= str 2 True |
| $<=$ | से छोटा या बराबर है |
यदि बाएँ ओर के ऑपरेंड का मान दाएँ ओर के ऑपरेंड के मान से छोटा या बराबर है, तो शर्त सही (True) है, अन्यथा गलत (False) है |
>>> num1 <= num2 False >>> num $2=$ num 3 True >>> str1 <= str2 False |
5.8.3 असाइनमेंट ऑपरेटर्स
असाइनमेंट ऑपरेटर अपने बाईं ओर के चर का मान निर्धारित करता है या बदलता है।
$\hspace{3cm}$ तालिका 5.5 पायथन में असाइनमेंट ऑपरेटर्स
| ऑपरेटर | विवरण | उदाहरण (लैब में आज़माएँ) |
|---|---|---|
| $=$ | दायीं ओर के ऑपरेंड का मान बाईं ओर के ऑपरेंड में निर्धारित करता है |
>>> num1 = 2 >>> num2 = num1 >>> num2 2 >>> country = ‘India’ >>> country ‘India’ |
| $+=$ | यह दायीं ओर के ऑपरेंड का मान बाईं ओर के ऑपरेंड में जोड़ता है और परिणाम को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x}+=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x}+\mathrm{y}$ है |
>>> num1 $=10$ >>> num2 $=2$ >>> num1 += num2 >>> num1 12 >>> num2 2 >>> str1 = ‘Hello’ >>> str2 = ‘India’ >>> str1 += str2 >>> str1 ‘HelloIndia’ |
| $-=$ | यह बाईं ओर के ऑपरेंड से दायीं ओर के ऑपरेंड का मान घटाता है और परिणाम को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x}-=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x}-\mathrm{y}$ है |
>>> num1 $=10$ >>> num2 $=2$ >>> num1 $-=$ num2 >>> num1 8 |
| $*=$ | यह बाईं ओर के ऑपरेंड का मान दायीं ओर के ऑपरेंड से गुणा करता है और परिणाम को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x}=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x} * \mathrm{y}$ है |
>>> num1 $=2$ >>> num $2=3$ >>> num1 $\star=3$ >>> num1 6 >>> $a=$ ‘India’ >>> $a \star=3$ >>> a ‘IndiaIndiaIndia’ |
| $/=$ | यह बाईं ओर के ऑपरेंड का मान दायीं ओर के ऑपरेंड से विभाजित करता है और परिणाम को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x} /=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x} / \mathrm{y}$ है |
>>> num1 = 6 >>> num2 $=3$ >>> num1 /= num2 >>> num1 2.0 |
| $%=$ | यह दो ऑपरेंड्स का उपयोग कर मॉड्यूलस संचालन करता है और परिणाम को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x} %=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x} % \mathrm{y}$ है |
>>> num1 $=7$ >>> num2 $=3$ >>> num1 $=$ num2 >>> num1 1 |
| $/ /=$ | यह दो ऑपरेंड्स का उपयोग कर फ़्लोर विभाजन करता है और परिणाम को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x} / /=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x} / / \mathrm{y}$ है |
>>> num1 $=7$ >>> num2 $=3$ >>> num1 //= num2 >>> num1 2 |
| $* *=$ | यह संचालकों पर घातांक (पावर) गणना करता है और मान को बाईं ओर के ऑपरेंड में निर्धारित करता है नोट: $\mathrm{x}{ }^{* *}=\mathrm{y}$ वही है जो $\mathrm{x}=\mathrm{x} * * \mathrm{y}$ है |
>>> num1 $=2$ >>> num2 $=3$ $>>>$ num1 $\star \star=$ num2 $>>>$ num1 8 |
5.8.4 लॉजिकल ऑपरेटर्स
Python तीन लॉजिकल ऑपरेटर्स को सपोर्ट करता है। ये ऑपरेटर्स (and, or, not) केवल छोटे अक्षरों में ही लिखे जाते हैं। लॉजिकल ऑपरेटर दोनों ओर के लॉजिकल ऑपरेंड्स के आधार पर या तो True या False में इवैल्यूएट होता है। हर वैल्यू लॉजिकल रूप से या तो True होती है या False। डिफ़ॉल्ट रूप से, सभी वैल्यूज़ True होती हैं सिवाय None, False, 0 (शून्य), खाली कलेक्शन्स “’, (), [], }, और कुछ अन्य स्पेशल वैल्यूज़ के। तो अगर हम कहें num $1=10$, num $2=-20$, तो num1 और num2 दोनों लॉजिकल रूप से True हैं।
$\hspace{3cm}$ तालिका 5.6 Python में लॉजिकल ऑपरेटर्स
| ऑपरेटर | ऑपरेशन | विवरण | उदाहरण (लैब में ट्राई करें) |
|---|---|---|---|
| and | लॉजिकल AND | यदि दोनों ऑपरेंड्स True हैं, तो कंडीशन True हो जाती है |
>>> True and True True >>> num1 $=10$ >>> num2 $=-20$ >>> bool (num1 and num2) True >>> True and False False >>> num3 = >>> bool (num1 and num3) False >>> False and False False |
| or | लॉजिकल OR | यदि दोनों ऑपरेंड्स में से कोई एक True है, तो कंडीशन True हो जाती है |
>>> True or True True >>> True or False True >>> bool (num1 or num3) True >>> False or False False |
| not | लॉजिकल NOT | अपने ऑपरेंड के लॉजिकल स्टेट्स को रिवर्स करने के लिए इस्तेमाल होता है |
>>> num1 = 10 >>> bool (num1) True >>> not num1 >>> bool (num1) False |
5.8.5 आइडेंटिटी ऑपरेटर्स
पहचान ऑपरेटरों का उपयोग यह निर्धारित करने के लिए किया जाता है कि किसी चर का मान किसी निश्चित प्रकार का है या नहीं। पहचान ऑपरेटरों का उपयोग यह भी निर्धारित करने के लिए किया जा सकता है कि दो चर एक ही वस्तु को संदर्भित कर रहे हैं या नहीं। दो पहचान ऑपरेटर होते हैं।
$\hspace{3cm}$ तालिका 5.7 Python में पहचान ऑपरेटर
| ऑपरेटर | विवरण | उदाहरण (प्रयोगशाला में आज़माएं) |
|---|---|---|
| is | True मूल्यांकित करता है यदि ऑपरेटर के दोनों ओर चर एक ही मेमोरी स्थान की ओर इंगित करते हैं और अन्यथा False। var1 is var2 का परिणाम True होता है यदि id(var1) id(var2) के बराबर है |
>>> num1 $=5$ >>> type(num1) is int True >>> num2 = num1 >>> id(num1) 1433920576 >>> id(num2) 1433920576 >>> num1 is num2 True |
| is not | False मूल्यांकित करता है यदि ऑपरेटर के दोनों ओर चर एक ही मेमोरी स्थान की ओर इंगित करते हैं और अन्यथा True। var1 is not var2 का परिणाम True होता है यदि id(var1) id(var2) के बराबर नहीं है |
>>> num1 is not num2 False |
5.8.6 सदस्यता ऑपरेटर
सदस्यता ऑपरेटरों का उपयोग यह जांचने के लिए किया जाता है कि कोई मान दी गई अनुक्रम का सदस्य है या नहीं।
$\hspace{3cm}$ तालिका 5.8 Python में सदस्यता ऑपरेटर
| ऑपरेटर | विवरण | उदाहरण (लैब में आज़माएँ) |
|---|---|---|
| in | यदि चर/मान निर्दिष्ट अनुक्रम में मिलता है तो True देता है, अन्यथा False | $>>> \mathrm{a}=[1,2,3]$ $>>> $ in a True $>>> 1 ‘$ in a False |
| not in | यदि चर/मान निर्दिष्ट अनुक्रम में नहीं मिलता तो True देता है, अन्यथा False | $>>> a=[1,2,3]$ $>>> 10$ not in a True $>>> 1$ not in a False |
5.9 एक्सप्रेशन
एक्सप्रेशन को स्थिरांक, चर और ऑपरेटरों के संयोजन के रूप में परिभाषित किया गया है। एक्सप्रेशन हमेशा एक मान का मूल्यांकन करता है। एक मान या स्वतंत्र चर भी एक्सप्रेशन माना जाता है, लेकिन स्वतंत्र ऑपरेटर एक्सप्रेशन नहीं होता। कुछ मान्य एक्सप्रेशन के उदाहरण नीचे दिए गए हैं।
(i) 100 $\hspace{2cm}$ (iv) 3.0 + 3.14
(ii) num $\hspace{2cm}$ (v) 23/3 -5 * 7(14 -2)
(iii) num – 20.4 $\hspace{1cm}$ (vi) “Global” + “Citizen”
5.9.1 ऑपरेटरों की प्राथमिकता
एक्सप्रेशन का मूल्यांकन ऑपरेटरों की प्राथमिकता (precedence) पर आधारित होता है। जब कोई एक्सप्रेशन विभिन्न प्रकार के ऑपरेटरों को सम्मिलित करता है, तो प्राथमिकता यह निर्धारित करती है कि कौन-सा ऑपरेटर पहले लागू होना चाहिए। उच्च प्राथमिकता वाला ऑपरेटर निम्न प्राथमिकता वाले ऑपरेटर से पहले मूल्यांकित होता है। अब तक अध्ययन किए गए अधिकांश ऑपरेटर बाइनरी ऑपरेटर हैं। बाइनरी ऑपरेटर वे होते हैं जिनमें दो ऑपरेंड होते हैं। यूनरी ऑपरेटरों को केवल एक ऑपरेंड की आवश्यकता होती है, और उनकी प्राथमिकता बाइनरी ऑपरेटरों से अधिक होती है। माइनस (-) तथा प्लस (+) ऑपरेटर दोनों यूनरी और बाइनरी रूप में कार्य कर सकते हैं, परंतु not एक यूनरी लॉजिकल ऑपरेटर है।
#Depth is using - (minus) as unary operator
Value = -Depth
#not is a unary operator, negates True
print(not(True))
निम्न तालिका सभी ऑपरेटरों की प्राथमिकता को उच्चतम से न्यूनतम क्रम में सूचीबद्ध करती है।
$\hspace{3cm}$ तालिका 5.9 Python में सभी ऑपरेटरों की प्राथमिकता
| प्राथमिकता क्रम |
ऑपरेटर | विवरण |
|---|---|---|
| 1 | $* *$ | घातांक (Exponentiation) |
| 2 | $\sim,+,-$ | कॉम्प्लिमेंट, यूनरी प्लस और यूनरी माइनस |
| 3 | $*, /, %, / /$ | गुणा, भाग, मॉड्यूलो और फ़्लोर डिवीज़न |
| 4 | ,+- | योग और व्यवकलन |
| 5 | $<=,<,>,>=,==,!=$ | रिलेशनल और तुलनात्मक ऑपरेटर |
| 6 | $=, %=, /=, / /=,-=,+=$, $*=, * *=$ |
असाइनमेंट ऑपरेटर |
| 7 | is, is not | आइडेंटिटी ऑपरेटर |
| 8 | in, not in | मेंबरशिप ऑपरेटर |
| 9 | not | लॉजिकल ऑपरेटर |
| 10 | and | |
| 11 | or |
नोट:
a) ऑपरेटरों की प्राथमिकता को ओवरराइड करने के लिए कोष्ठक (Parenthesis) का उपयोग किया जा सकता है। () के भीतर का एक्सप्रेशन पहले इवैल्यूएट होता है।
b) समान प्राथमिकता वाले ऑपरेटरों के लिए, एक्सप्रेशन बाएँ से दाएँ इवैल्यूएट होता है।
उदाहरण 5.9 निम्नलिखित एक्सप्रेशन को Python कैसे इवैल्यूएट करेगा?
हल:
$=20+(30 * 40)\qquad$ #Step 1
#precedence of * is more than that of +
$=20+1200 \qquad$ #Step 2
$=1220 \qquad$ #Step 3
उदाहरण 5.10 निम्नलिखित एक्सप्रेशन को Python कैसे इवैल्यूएट करेगा?
$$ 20-30+40 $$
हल:
दोनों ऑपरेटर $(-)$ और $(+)$ की समान प्राथमिकता है। इसलिए, पहला ऑपरेटर, यानी सब्ट्रैक्शन, दूसरे ऑपरेटर, यानी एडिशन से पहले लागू होता है (बाएँ से दाएँ)।
= (20 – 30) + 40 $\hspace{1cm}$ #Step 1
= -10 + 40 $\hspace{1.5cm}$ #Step 2
= 30 $\hspace{2cm}$ #Step 3
उदाहरण 5.11 निम्नलिखित एक्सप्रेशन को Python कैसे इवैल्यूएट करेगा?
$$ (20+30) * 40 $$
हल:
= (20 + 30) * 40 $\hspace{2cm}$ #Step 1
#using parenthesis(), we have forced precedence of + to be more than that of *
= 50 * 40 $\hspace{2cm}$ #Step 2
= 2000 $\hspace{2cm}$ #Step 3
उदाहरण 5.12 निम्नलिखित एक्सप्रेशन को Python में कैसे इवैल्यूएट किया जाएगा?
$$ 15.0 / 4+(8+3.0) $$
हल:
= 15.0 / 4 + (8.0 + 3.0) $\hspace{1cm}$ #Step 1
= 15.0 / 4.0 + 11.0 $\hspace{1.5cm}$ #Step 2
= 3.75 + 11.0 $\hspace{2cm}$ #Step 3
= 14.75 $\hspace{2.5cm}$ #Step 4
5.10 स्टेटमेंट (STATEMENT)
Python में, एक स्टेटमेंट कोड की एक इकाई होती है जिसे Python इंटरप्रेटर एक्सेक्यूट कर सकता है।
उदाहरण 5.13
>>> x = 4 #assignment statement
>>> cube = x ** 3 #assignment statement
>>> print (x, cube) #print statement
4 64
5.11 इनपुट और आउटपुट
कभी-कभी किसी प्रोग्राम को उपयोगकर्ता से कुछ इनपुट डेटा या सूचना प्राप्त करने के लिए उससे बातचीत करनी पड़ती है और फिर उसे प्रोसेस करके वांछित आउटपुट देना होता है। Python में हमारे पास उपयोगकर्ता से इनपुट लेने के लिए input() फ़ंक्शन है। input() फ़ंक्शन उपयोगकर्ता को डेटा दर्ज करने के लिए संकेत देता है। यह सारा उपयोगकर्ता इनपुट स्ट्रिंग के रूप में स्वीकार करता है। उपयोगकर्ता कोई संख्या या स्ट्रिंग दर्ज कर सकता है, लेकिन input() फ़ंक्शन उन्हें केवल स्ट्रिंग के रूप में ही मानता है। input() का सिंटैक्स है:
input([Prompt])
Prompt वह स्ट्रिंग है जिसे हम इनपुट लेने से पहले स्क्रीन पर दिखाना चाहते हैं, और यह वैकल्पिक है। जब prompt निर्दिष्ट किया जाता है, तो पहले वह स्क्रीन पर प्रदर्शित होता है जिसके बाद उपयोगकर्ता डेटा दर्ज कर सकता है। input() कीबोर्ड से जो कुछ भी टाइप किया जाता है, उसे बिल्कुल वैसे ही लेता है, उसे स्ट्रिंग में बदलता है और असाइनमेंट ऑपरेटर (=) के बाएँ हाथ की ओर स्थित चर को सौंपता है। input फ़ंक्शन के लिए डेटा दर्ज करना Enter कुंजी दबाने से समाप्त होता है।
उदाहरण 5.14
>>> fname = input("Enter your first name: ")
Enter your first name: Arnab
>>> age = input("Enter your age: ")
Enter your age: 19
>>> type(age)
<class 'str'>
चर fname उपयोगकर्ता द्वारा दर्ज किए गए स्ट्रिंग ‘Arnab’ को प्राप्त करेगा। इसी प्रकार, चर age स्ट्रिंग ’ 19 ’ प्राप्त करेगा। हम उपयोगकर्ता से स्वीकृत स्ट्रिंग डेटा का डेटाटाइप टाइपकास्ट या बदलकर उपयुक्त संख्यात्मक मान में परिवर्तित कर सकते हैं। उदाहरण के लिए, निम्नलिखित कथम स्वीकृत स्ट्रिंग को पूर्णांक में बदल देगा। यदि उपयोगकर्ता कोई गैर-संख्यात्मक मान दर्ज करता है, तो एक त्रुटि उत्पन्न होगी।
उदाहरण 5.15
#फंक्शन int() स्ट्रिंग को पूर्णांक में बदलने के लिए
>>> age = int( input(“Enter your age:”))
Enter your age: 19
>>> type(age)
<class ‘int’>
Python स्क्रीन पर डेटा आउटपुट करने के लिए print() फंक्शन का उपयोग करता है। हम फंक्शन के बारे में अध्याय 7 में सीखेंगे। फंक्शन print() स्क्रीन पर प्रदर्शित करने से पहले अभिव्यक्ति का मूल्यांकन करता है। print() एक पूरी पंक्ति आउटपुट करता है और फिर अगले आउटपुट के लिए अगली पंक्ति पर चला जाता है। print() के लिए सिंटैक्स है:
$$ \operatorname{print}\left(\operatorname{value}\left[, \ldots, \text { sep }=’ \text { ‘, end }=’ \backslash \mathrm{n}^{\prime}\right]\right) $$
- sep: वैकल्पिक पैरामीटर sep आउटपुट मानों के बीच एक विभाजक है। हम एक वर्ण, पूर्णांक या स्ट्रिंग को विभाजक के रूप में उपयोग कर सकते हैं। डिफ़ॉल्ट विभाजक स्पेस है।
- end: यह भी वैकल्पिक है और यह हमें किसी भी स्ट्रिंग को अंतिम मान के बाद जोड़ने की अनुमति देता है। डिफ़ॉल्ट नई पंक्ति है।
ध्यान दें कि एक प्लस साइन दो स्ट्रिंग्स के बीच कोई स्पेस नहीं जोड़ता है जबकि एक कॉमा print कथन में दो स्ट्रिंग्स के बीच एक स्पेस डालता है।
उदाहरण 5.16
| कथन | आउटपुट |
|---|---|
| print(“Hello”) | Hello |
| print(10*2.5) | 25.0 |
| print(“I” + “love” + “my” + “country”) |
Ilovemycountry |
| print(“I’m”, 16, “years old”) | I’m 16 years old |
उपरोक्त उदाहरण में तीसरा print फ़ंक्शन स्ट्रिंग्स को जोड़ रहा है, और हम दो स्ट्रिंग्स को जोड़ने के लिए + (प्लस) का उपयोग करते हैं। चौथा print फ़ंक्शन भी स्ट्रिंग्स को जोड़ता प्रतीत होता है लेकिन स्ट्रिंग्स के बीच अल्पविराम (,) का उपयोग करता है। वास्तव में, यहाँ हम print फ़ंक्शन को अल्पविराम द्वारा अलग किए गए कई तर्क पास कर रहे हैं। चूँकि तर्क विभिन्न प्रकार के हो सकते हैं, इसलिए print फ़ंक्शन यहाँ पूर्णांक (16) को स्ट्रिंग्स के साथ स्वीकार करता है। लेकिन यदि print कथन में विभिन्न प्रकार के मान हों और ’ + ’ का उपयोग अल्पविराम के बजाय किया जाए, तो यह त्रुटि उत्पन्न करेगा जैसा कि अगले खंड में स्पष्ट रूपांतरण के तहत चर्चा की गई है।
5.12 प्रकार रूपांतरण
निम्नलिखित प्रोग्राम पर विचार करें
num1 = input(“Enter a number and I’ll double \it: “)
num1 = num 1 * 2
print (num1)
प्रोग्राम से अपेक्षा थी कि वह प्राप्त संख्या के दोगुने मान को प्रदर्शित करेगा और चर num1 में संग्रहित करेगा। इसलिए यदि कोई उपयोगकर्ता 2 दर्ज करता है और प्रोग्राम से आउटपुट के रूप में 4 प्रदर्शित करने की अपेक्षा करता है, तो प्रोग्राम निम्नलिखित परिणाम प्रदर्शित करता है:
Enter a number and I’ll double it: 2
22
यह इसलिए है क्योंकि input फंक्शन द्वारा लौटाया गया मान डिफ़ॉल्ट रूप से स्ट्रिंग (“2”) होता है। नतीजतन, कथन num1 = num1 * 2 में, num1 में स्ट्रिंग मान है और * दोहराव ऑपरेटर के रूप में कार्य करता है जिससे आउटपुट “22” प्राप्त होता है। 4 आउटपुट प्राप्त करने के लिए, हमें उपयोगकर्ता द्वारा दर्ज किए गए मान का डेटा प्रकार पूर्णांक में बदलना होगा। इस प्रकार, हम प्रोग्राम को इस प्रकार संशोधित करते हैं:
num1 = input(“Enter a number and I’ll double it: “)
num1 = int(num1) $\quad$ #convert string input to
$\hspace{3cm}$ #integer
num1 = num1 * 2
print(num1)
अब, प्रोग्राम अपेक्षित आउटपुट इस प्रकार प्रदर्शित करेगा:
Enter a number and I’ll double it: 2
4
आइए अब समझते हैं कि टाइप कनवर्ज़न क्या है और यह कैसे काम करता है। जब भी आवश्यक हो, हम Python में किसी वेरिएबल का डेटा प्रकार एक प्रकार से दूसरे प्रकार में बदल सकते हैं। ऐसा डेटा प्रकार रूपांतरण दो तरीकों से हो सकता है: या तो स्पष्ट रूप से (बलपूर्वक) जब प्रोग्रामर इंटरप्रेटर को एक डेटा प्रकार को दूसरे प्रकार में बदलने के लिए निर्दिष्ट करता है; या अंतर्निहित रूप से, जब इंटरप्रेटर स्वयं ऐसी आवश्यकता समझ जाता है और टाइप कनवर्ज़न स्वचालित रूप से कर देता है।
5.12.1 स्पष्ट रूपांतरण
स्पष्ट रूपांतरण, जिसे टाइप कास्टिंग भी कहा जाता है, तब होता है जब डेटा प्रकार रूपांतरण इसलिए होता है क्योंकि प्रोग्रामर ने प्रोग्राम में इसे बलपूर्वक किया है। स्पष्ट डेटा प्रकार रूपांतरण का सामान्य रूप इस प्रकार है:
(new_data_type) (expression)
स्पष्ट प्रकार रूपांतरण के साथ, जानकारी के नुकसान का जोखिम होता है क्योंकि हम किसी अभिव्यक्ति को किसी विशिष्ट प्रकार का बनाने के लिए मजबूर कर रहे हैं। उदाहरण के लिए, $x=20.67$ के फ्लोटिंग मान को पूर्णांक प्रकार में बदलना, अर्थात् int(x) भाग .67 को छोड़ देगा। निम्नलिखित कुछ फ़ंक्शन हैं Python में जो किसी अभिव्यक्ति या चर को स्पष्ट रूप से दूसरे प्रकार में बदलने के लिए उपयोग किए जाते हैं।
तालिका 5.10 Python में स्पष्ट प्रकार रूपांतरण फ़ंक्शन
| फ़ंक्शन | विवरण |
|---|---|
| int(x) | x को पूर्णांक में बदलता है |
| float(x) | x को फ्लोटिंग-पॉइंट संख्या में बदलता है |
| str(x) | x को स्ट्रिंग प्रतिनिधित्व में बदलता है |
| chr(x) | x के ASCII मान को वर्ण में बदलता है |
| ord(x) | ASCII कोड x से संबद्ध वर्ण लौटाता है |
प्रोग्राम 5-5 int से float में स्पष्ट प्रकार रूपांतरण का प्रोग्राम।
#प्रोग्राम 5-5
#int से float में स्पष्ट प्रकार रूपांतरण
num1 = 10
num2 = 20
num3 = num1 + num2
print(num3)
print(type(num3))
num4 = float(num1 + num2)
print(num4)
print(type(num4))
आउटपुट:
30
<class ‘int’>
30.0
<class ‘float’>
प्रोग्राम 5-6 float से int में स्पष्ट प्रकार रूपांतरण का प्रोग्राम।
#प्रोग्राम 5-6
#float से int में स्पष्ट प्रकार रूपांतरण
num1 = 10.2
num2 = 20.6
num3 = (num1 + num2)
print(num3)
print(type(num3))
num4 = int(num1 + num2)
print(num4)
print(type(num4))
आउटपुट:
30.8
<class ‘float’>
30
<class ‘int’>
प्रोग्राम 5-7 संख्या और स्ट्रिंग के बीच टाइप कनवर्ज़न का उदाहरण।
#प्रोग्राम 5-7
#संख्या और स्ट्रिंग के बीच टाइप कनवर्ज़न
priceIcecream = 25
priceBrownie = 45
totalPrice = priceIcecream + priceBrownie
print(“The total is Rs.” + totalPrice )
चित्र 5.11: प्रोग्राम 5-7 का आउटपुट
जब प्रोग्राम 5-7 को चलाया जाता है, तो यह चित्र 5.11 में दिखाए अनुसार एक त्रुटि देता है, जिसमें बताया गया है कि इंटरप्रेटर एक पूर्णांक मान को स्वचालित रूप से स्ट्रिंग में कनवर्ट नहीं कर सकता। यह सहज लग सकता है कि प्रोग्राम को उपयोग के आधार पर पूर्णांक मान को स्ट्रिंग में बदल देना चाहिए। हालांकि, इंटरप्रेटर अपने आप यह निर्णय नहीं ले सकता कि कब कनवर्ज़न करना है, क्योंकि इससे सूचना के नुकसान का खतरा होता है। Python स्पष्ट टाइप कनवर्ज़न की सुविधा प्रदान करता है ताकि कोई स्पष्ट रूप से अपनी इच्छित परिणाम को बता सके। प्रोग्राम 5-8 स्पष्ट टाइप कास्टिंग का उपयोग करके पूरी तरह से काम करता है:
प्रोग्राम 5-8 स्पष्ट टाइप कास्टिंग दिखाने वाला प्रोग्राम।
#प्रोग्राम 5-8
#स्पष्ट टाइप कास्टिंग
priceIcecream = 25
priceBrownie = 45
totalPrice = priceIcecream + priceBrownie
print(“The total in Rs.” + str(totalPrice))
आउटपुट:
The total in Rs. 70
इसी प्रकार, फ्लोट को स्ट्रिंग में बदलने के लिए भी टाइप कास्टिंग की आवश्यकता होती है। Python में, जब भी आवश्यक हो, कोई भी स्ट्रिंग को पूर्णांक या फ्लोट मानों में कनवर्ट कर सकता है।
प्रोग्राम 5-9 स्पष्ट टाइप कनवर्ज़न दिखाने वाला प्रोग्राम।
#प्रोग्राम 5-9
#स्पष्ट टाइप रूपांतरण
icecream = ‘25’
brownie = ‘45’
#स्ट्रिंग कॉन्कैटेनेशन
price = icecream + brownie
print(“कुल कीमत रु.” + price)
#स्पष्ट टाइप रूपांतरण - स्ट्रिंग से पूर्णांक
price = int(icecream)+int(brownie)
print(“कुल कीमत रु.” + str(price))
आउटपुट:
कुल कीमत रु. 2545
कुल कीमत रु. 70
5.12.2 अंतर्निहित रूपांतरण
अंतर्निहित रूपांतरण, जिसे कोएर्शन भी कहा जाता है, तब होता है जब डेटा टाइप का रूपांतरण पायथन द्वारा स्वचालित रूप से किया जाता है और प्रोग्रामर द्वारा निर्देशित नहीं किया जाता।
प्रोग्राम 5-10 int से float में अंतर्निहित रूपांतरण दिखाने वाला प्रोग्राम।
#प्रोग्राम 5-10
#अंतर्निहित टाइप रूपांतरण int से float
num1 $=10 \quad$ #num1 एक पूर्णांक है
num2 $=20.0 \quad$ #num2 एक फ्लोट है
sum1 = num1 + num2 $\quad$ #sum1 एक फ्लोट और एक पूर्णांक का योग है
print (sum1)
print (type (sum1))
आउटपुट:
30.0
<class ‘float’>
उपरोक्त उदाहरण में, चर num1 में संग्रहीत पूर्णांक मान को चर num2 में संग्रहीत फ्लोट मान में जोड़ा गया, और परिणाम को स्वचालित रूप से फ्लोट मान में बदल दिया गया जो चर sum1 में संग्रहीत है, बिना दुभाषिया को स्पष्ट रूप से बताए। यह अंतर्निहित डेटा रूपांतरण का एक उदाहरण है। कोई यह सोच सकता है कि फ्लोट मान को पूर्णांक में क्यों नहीं बदला गया? यह टाइप प्रमोशन के कारण है जो ऑपरेशन करने की अनुमति देता है (जब भी संभव हो) डेटा को बड़े आकार के डेटा टाइप में बदलकर बिना किसी जानकारी के नुकसान के।
एक प्रोग्रामर प्रोग्राम लिखते समय गलतियाँ कर सकता है, और इसलिए प्रोग्राम न चल सकता है या गलत आउटपुट दे सकता है। प्रोग्राम से ऐसी गलतियों, जिन्हें बग या त्रुटियाँ भी कहा जाता है, की पहचान करके उन्हें हटाने की प्रक्रिया को डिबगिंग कहा जाता है। प्रोग्राम में आने वाली त्रुटियों को इस प्रकार वर्गीकृत किया जा सकता है:
i) वाक्य-रचना त्रुटियाँ
ii) तार्किक त्रुटियाँ
iii) रनटाइम त्रुटियाँ
5.13.1 वाक्य-रचना त्रुटियाँ
अन्य प्रोग्रामिंग भाषाओं की तरह, Python के भी अपने नियम होते हैं जो इसकी वाक्य-रचना निर्धारित करते हैं। इंटरप्रेटर केवल तभी कथनों की व्याख्या करता है जब वे वाक्य-रचना की दृष्टि से (Python के नियमों के अनुसार) सही हों। यदि कोई वाक्य-रचना त्रुटि मौजूद है, तो इंटरप्रेटर त्रुटि संदेश दिखाता है और वहीं निष्पादन रोक देता है। उदाहरण के लिए, कोष्ठक युग्मों में होने चाहिए, इसलिए व्यंजक $(10+12)$ वाक्य-रचना की दृष्टि से सही है, जबकि $(7+11$ दायें कोष्ठक की अनुपस्थिति के कारण सही नहीं है। ऐसी त्रुटियों को प्रोग्राम के निष्पादन से पहले हटाना आवश्यक है।
5.13.2 तार्किक त्रुटियाँ
एक तार्किक त्रुटि प्रोग्राम में एक ऐसा बग होता है जिससे प्रोग्राम गलत व्यवहार करता है। एक तार्किक त्रुटि अवांछित आउटपुट उत्पन्न करती है लेकिन प्रोग्राम के निष्पादन में अचानक विराम नहीं आता। चूँकि तार्किक त्रुटियाँ होने पर भी प्रोग्राम सफलतापूर्वक व्याख्या हो जाता है, इन त्रुटियों की पहचान करना कभी-कभी कठिन होता है। तार्किक त्रुटियों के अस्तित्व का एकमात्र प्रमाण गलत आउटपुट होता है। प्रोग्राम के आउटपुट से पीछे की ओर काम करते हुए, कोई यह पहचान सकता है कि क्या गलत हुआ।
उदाहरण के लिए, यदि हम दो संख्याओं 10 और 12 का औसत निकालना चाहते हैं और हम कोड को $10+12 / 2$ के रूप में लिखते हैं, तो यह सफलतापूर्वक चलेगा और परिणाम 16 उत्पन्न करेगा। निश्चित रूप से, 16, 10 और 12 का औसत नहीं है। औसत निकालने के लिए सही कोड $(10+12) / 2$ होना चाहिए था ताकि सही आउटपुट 11 मिल सके।
लॉजिकल त्रुटियों को सिमेंटिक त्रुटियाँ भी कहा जाता है क्योंकि ये तब होती हैं जब प्रोग्राम का अर्थ (इसका सिमेंटिक्स) सही नहीं होता है।
5.13.3 रनटाइम त्रुटि
एक रनटाइम त्रुटि प्रोग्राम के चलते समय उसके असामान्य रूप से समाप्त होने का कारण बनती है। रनटाइम त्रुटि तब होती है जब कथन वाक्य-रचना की दृष्टि से सही होता है, लेकिन इंटरप्रिटर उसे निष्पादित नहीं कर सकता। रनटाइम त्रुटियाँ तब प्रकट नहीं होती हैं जब तक प्रोग्राम चलना या निष्पादित होना शुरू नहीं कर देता।
उदाहरण के लिए, हमारे पास प्रोग्राम में भाग संचालन वाला एक कथन है। गलती से, यदि हर में शून्य दर्ज कर दिया जाता है तो यह “division by zero” जैसी रनटाइम त्रुटि देगा।
आइए प्रोग्राम 5-11 को देखें जो उपयोगकर्ता द्वारा गैर-पूर्णांक मान या मान ‘0’ दर्ज करने पर रनटाइम त्रुटियों के दो प्रकार दिखाता है। जब उपयोगकर्ता num2 के लिए पूर्णांक मान इनपुट करता है तो प्रोग्राम सही आउटपुट उत्पन्न करता है।
प्रोग्राम 5-11 एक प्रोग्राम का उदाहरण जो रनटाइम त्रुटि उत्पन्न करता है।
#Program 5-11
#Runtime Errors Example
num1 = 10.0
num2 = int(input(“num2 = “))
#if user inputs a string or a zero, it leads
to runtime error
print(num1/num2)
आकृति 5.11: प्रोग्राम 5-11 का आउटपुट
सारांश
- पायथन एक ओपन-सोर्स, उच्च स्तरीय, इंटरप्रेटर-आधारित भाषा है जिसका उपयोग वैज्ञानिक और गैर-वैज्ञानिक कंप्यूटिंग उद्देश्यों की विस्तृत श्रृंखला के लिए किया जा सकता है।
- कमेंट्स प्रोग्राम में निष्पादन योग्य नहीं होती हैं।
- पहचानकर्ता (identifier) प्रोग्राम में किसी चर या अचर को दिया गया उपयोगकर्ता-परिभाषित नाम होता है।
- कंप्यूटर प्रोग्राम से त्रुटियों की पहचान कर उन्हें हटाने की प्रक्रिया को डिबगिंग कहा जाता है।
- किसी ऐसे चर का उपयोग करने का प्रयास करना जिसे कोई मान नहीं दिया गया है, त्रुटि देता है।
- पायथन में कई डेटा प्रकार होते हैं - पूर्णांक, बूलियन, फ्लोट, कॉम्प्लेक्स, स्ट्रिंग, सूची, टपल, सेट, None और शब्दकोश।
- डेटा-प्रकार रूपांतरण या तो स्पष्ट रूप से या अंतर्निहित रूप से हो सकता है।
- ऑपरेटर ऐसी संरचनाएँ हैं जो ऑपरेंड्स के मानों को नियंत्रित करती हैं। ऑपरेटर एकल (unary) या द्वि-आधारित (binary) हो सकते हैं।
- एक अभिव्यक्ति मानों, चरों और ऑपरेटरों का संयोजन होती है।
- पायथन में उपयोगकर्ता इनपुट लेने के लिए input() फ़ंक्शन है।
- पायथन में डेटा को मानक आउटपुट डिवाइस पर आउटपुट करने के लिए print() फ़ंक्शन है।
अभ्यास
1. निम्नलिखित में से कौन-से पहचानकर्ता नाम अमान्य हैं और क्यों?
| i | Serial_no. | v | Total_Marks |
|---|---|---|---|
| ii | lst_Room | vi | total-Marks |
| iii | Hundred$ | vii | _Percentage |
| iv | Total Marks | viii | True |
2. संगत पायथन असाइनमेंट कथन लिखें:
a) चर length को 10 और चर breadth को 20 असाइन करें।
b) चर length और breadth के मानों का औसत चर sum को असाइन करें।
c) एक चर stationery को एक सूची सौंपें जिसमें स्ट्रिंग्स ‘Paper’, ‘Gel Pen’, और ‘Eraser’ हों।
d) स्ट्रिंग्स ‘Mohandas’, ‘Karamchand’, और ‘Gandhi’ को क्रमशः चर first, middle और last को सौंपें।
e) स्ट्रिंग चर first, middle और last के संयुक्त मान को चर fullname को सौंपें। नाम के विभिन्न भागों के बीच उचित रूप से खाली स्थान शामिल करना सुनिश्चित करें।
3. निम्नलिखित कथनों के अनुरूप Python में तार्किक व्यंजक लिखें और उन व्यंजकों का मूल्यांकन करें (यह मानते हुए कि चर num1, num2, num3, first, middle, last पहले से ही सार्थक मान रखते हैं):
a) 20 और -10 का योग 12 से कम है।
b) num3, 24 से अधिक नहीं है।
c) 6.75, पूर्णांकों num1 और num2 के मानों के बीच है।
d) स्ट्रिंग ‘middle’ स्ट्रिंग ‘first’ से बड़ी है और स्ट्रिंग ’last’ से छोटी है।
e) सूची Stationery खाली है।
4. प्रत्येक व्यंजक में एक जोड़ी कोष्ठक जोड़ें ताकि वह True मूल्यांकित हो।
a) $0==1==2$
b) $2+3==4+5==7$
c) $1<-1==3>4$
5. निम्नलिखित का आउटपुट लिखें:
a) num1 $=4$
num2 $=$ num1 +1
num1 $=2$
print (num1, num2)
b) num1, num2 $=2,6$
num1, num2 $=$ num2, num1 +2
print (num1, num2)
c) num1, num2 $=2,3$
num3, num2 $=$ num1, num3 +1
print (num1, num2, num3)
6. निम्नलिखित डेटा मानों को दर्शाने के लिए कौन-सा डेटा प्रकार प्रयुक्त होगा और क्यों?
a) वर्ष में महीनों की संख्या
b) दिल्ली का निवासी है या नहीं
c) मोबाइल नंबर
d) जेब खर्च
e) गोले का आयतन
f) वर्ग का परिमाप
g) छात्र का नाम
h) छात्र का पता
7. निम्नलिखित का आउटपुट दें जब num1 $=4$, num2 $=3$, num3 $=2$
a) num1 += num2 + num3
print (num1)
b) num1 $=$ num1 $\star \star$ (num2 + num3)
print (num1)
c) num1 $\star *=$ num $2+$ num 3
d) num1 = ‘5’ + ‘5’
print (num1)
e) print(4.00 /(2.0+2.0))
f) num1 =2+9 *((3 * 12)-8) / 10
print (num1)
g) num1 $=24 / / 4 / / 2$
print (num1)
h) num1 = float (10)
print (num1)
i) num1 = int (‘3.14’)
print (num1)
j) print(‘Bye’ == ‘BYE’)
k) print (10 != 9 and 20 >= 20 )
l) print (10+6 * 2 * * ! =9 / / 4-3 and 29 > = 29 / 9)
m) print (5 < 10 + 10 < 50 and 29 < = 29 )
n) print((0<6) or (not(10 == 6) and (10<0)))
8. निम्नलिखित को वर्गीकृत करें सिंटैक्स एरर, लॉजिकल एरर या रनटाइम एरर:
a) 25 / 0
b) num1 = 25; num2 = 0; num1/num2
9. 10 इकाई त्रिज्या का एक डार्टबोर्ड और वह दीवार जिस पर वह लटका है, को एक द्वि-आयामी निर्देशांक प्रणाली का उपयोग करके दर्शाया गया है, जिसमें बोर्ड का केंद्र निर्देशांक $(0,0)$ पर है। चर $\mathrm{x}$ और $\mathrm{y}$ डार्टबोर्ड पर लगने वाले डार्ट के $\mathrm{x}$-निर्देशांक और $\mathrm{y}$-निर्देशांक को संग्रहित करते हैं। चर $\mathrm{x}$ और $\mathrm{y}$ का उपयोग करते हुए एक Python व्यंजक लिखें जो True मूल्यांकित करता है यदि डार्ट बोर्ड के अंदर लगता है, और फिर इन डार्ट निर्देशांकों के लिए व्यंजक का मूल्यांकन करें:
a) $(0,0)$
b) $(10,10)$
c) $(6,6)$
d) $(7,8)$
10. Python में एक प्रोग्राम लिखें जो तापमान को डिग्री सेल्सियस से डिग्री फारेनहाइट में बदलता है। यदि पानी 100 डिग्री $\mathrm{C}$ पर उबलता है और 0 डिग्री $\mathrm{C}$ पर जमता है, तो प्रोग्राम का उपयोग करके ज्ञात करें कि पानी का उबलता बिंदु और जमना बिंदु फारेनहाइट पैमाने पर क्या है।
(संकेत: $\left.\mathrm{T}\left({ }^{\circ} \mathrm{F}\right)=\mathrm{T}\left({ }^{\circ} \mathrm{C}\right) \times 9 / 5+32\right)$
11. Python में एक प्रोग्राम लिखें जो साधारण ब्याज पर उधार दी गई राशि का भुगतान योग्य राशि की गणना करता है।
मूलधन या उधार दी गई राशि $=\mathrm{P}$, ब्याज दर $=\mathrm{R} %$ प्रति वर्ष और समय $=T$ वर्ष। तब साधारण ब्याज $(\mathrm{SI})=(\mathrm{P} \times \mathrm{R} \times \mathrm{T}) / 100$।
भुगतान योग्य राशि $=$ मूलधन + SI।
$P, R$ और $T$ प्रोग्राम को इनपुट के रूप में दिए जाते हैं।
12. तीन व्यक्तियों A, B और C मिलकर एक कार्य कितने दिनों में पूरा करेंगे, यह गणना करने के लिए एक प्रोग्राम लिखें। A, B, C अकेले कार्य करने पर क्रमशः x दिन, y दिन और z दिन लेते हैं। यदि वे एक साथ कार्य करें तो दिनों की संख्या निकालने का सूत्र है xyz/(xy + yz + xz) दिन, जहाँ x, y और z प्रोग्राम में इनपुट के रूप में दिए जाते हैं।
13. दो पूर्णांकों को दर्ज करने और उन पर सभी अंकगणितीय संक्रियाएँ करने के लिए एक प्रोग्राम लिखें।
14. एक तीसरे चर का उपयोग करके दो संख्याओं को स्वैप करने के लिए एक प्रोग्राम लिखें।
15. बिना किसी तीसरे चर के उपयोग के दो संख्याओं को स्वैप करने के लिए एक प्रोग्राम लिखें।
16. स्ट्रिंग “GOOD MORNING” को n बार दोहराने के लिए एक प्रोग्राम लिखें। यहाँ ’n’ एक पूर्णांक है जो उपयोगकर्ता द्वारा दर्ज किया जाता है।
17. तीन संख्याओं का औसत निकालने के लिए एक प्रोग्राम लिखें।
18. त्रिज्या r वाले गोले का आयतन 4/3 π r³ होता है। 7 cm, 12 cm, 16 cm त्रिज्या वाले गोलों का आयतन ज्ञात करने के लिए एक Python प्रोग्राम लिखें।
19. एक ऐसा प्रोग्राम लिखें जो उपयोगकर्ता से उसका नाम और आयु पूछे। उपयोगकर्ता को संबोधित एक संदेश प्रिंट करें जो बताए कि वह किस वर्ष 100 वर्ष का हो जाएगा।
20. सूत्र $\mathrm{E}=\mathrm{mc}^{2}$ बताता है कि तुल्य ऊर्जा (E) की गणना द्रव्यमान $(\mathrm{m})$ को प्रकाश की चाल $(\mathrm{c}=$ लगभग $3 \times 10^{8} \mathrm{~m} / \mathrm{s}$ ) के वर्ग से गुणा करके की जा सकती है। एक ऐसा प्रोग्राम लिखें जो किसी वस्तु के द्रव्यमान को स्वीकार करे और उसकी ऊर्जा निर्धारित करे।
21. मान लीजिए कि एक सीढ़ी को दीवार के सहारे सीधी खड़ी किया गया है। मानें कि चर length और angle सीढ़ी की लंबाई और जमीन के साथ बनाए गए कोण को संग्रहित करते हैं। सीढ़ी दीवार पर जितनी ऊंचाई तक पहुंचती है, उसकी गणना करने के लिए एक Python प्रोग्राम लिखें निम्नलिखित length और angle के मानों के लिए:
a) 16 फीट और 75 डिग्री
b) 20 फीट और 0 डिग्री
c) 24 फीट और 45 डिग्री
d) 24 फीट और 80 डिग्री
केस स्टडी-आधारित प्रश्न
विद्यालय “छात्र प्रबंधन सूचना प्रणाली” (SMIS) का उपयोग छात्र-संबंधी डेटा के प्रबंधन के लिए करते हैं। यह प्रणाली निम्नलिखित सुविधाएं प्रदान करती है:
- छात्रों के व्यक्तिगत विवरणों को रिकॉर्ड करना और बनाए रखना।
- मूल्यांकन में प्राप्त अंकों को बनाए रखना और छात्रों के परिणामों की गणना करना।
- छात्रों की उपस्थिति का ट्रैक रखना।
- कई अन्य छात्र-संबंधी डेटा का प्रबंधन करना। आइए इस प्रक्रिया को चरण दर चरण स्वचालित करें।
अपने विद्यालय की पहचान पत्र से छात्रों के व्यक्तिगत विवरणों की पहचान करें और एक प्रोग्राम लिखें जो आपके विद्यालय के सभी छात्रों के लिए इन विवरणों को स्वीकार करे और निम्नलिखित प्रारूप में प्रदर्शित करे।
दस्तावेज़न टिप्स
यह एक तथ्य है कि एक उचित रूप से दस्तावेज़ित प्रोग्राम पढ़ने, समझने और भविष्य के विकास के लिए लचीला होता है। इसलिए, यह महत्वपूर्ण है कि कोडिंग करते समय दस्तावेज़न पर अतिरिक्त ध्यान दिया जाए। आइए हम अपने केस स्टडी प्रोग्राम में किए गए दस्तावेज़न का मूल्यांकन करें और यह भी पता लगाएं कि क्या हमारे दोस्त भी दस्तावेज़न पर समान ध्यान देते हैं या नहीं।
निम्नलिखित एक अच्छे दस्तावेज़न के बिंदुओं की चेकलिस्ट है:
- प्रोग्राम का उद्देश्य शुरुआत में स्पष्ट रूप से बताया गया है।
- प्रत्येक फंक्शन का उद्देश्य प्रत्येक फंक्शन की शुरुआत में स्पष्ट रूप से उल्लेखित किया गया है।
- टिप्पणियाँ उचित स्थान पर डाली गई हैं ताकि प्रोग्राम की समझने और पढ़ने की क्षमता बढ़ सके।
(नोट: अधिक टिप्पणियाँ मददगार नहीं होतीं)
- वेरिएबल और फंक्शन के नाम सार्थक और उपयुक्त हैं।
- एक अक्षर वाले वेरिएबल नामों का उपयोग नहीं किया गया है।
- प्रोग्राम का नाम सार्थक है।
(नोट: अपना नाम प्रोग्राम के नाम के रूप में उपयोग करना उचित नहीं है, उदाहरण के लिए, ‘raman.py’ या ’namya.py’ अपने प्रोग्राम कोड को दर्शाने के लिए। यह अधिक उपयुक्त है कि बैंकिंग संबंधी प्रोग्राम के लिए प्रोग्राम का नाम ‘bankingProject.py’ हो या प्रवेश संबंधी प्रोग्राम के लिए ‘admProcess’ हो।)
- प्रोग्राम कोड उचित रूप से इंडेंट किया गया है।
- पूरे प्रोग्राम में समान नामकरण परंपराओं का उपयोग किया गया है।
(नोट: कुछ नामकरण परंपराएं हैं firstNum, first_num, पहला नंबर रखने वाले वेरिएबल को दर्शाने के लिए)।
आइए यह व्यायाम हम अपने सहपाठी के केस स्टडीज़ के लिए भी करें और उन्हें प्रतिक्रिया प्रदान करें।
एक प्रासंगिक सहकर्मी प्रतिक्रिया परियोजनाओं के दस्तावेज़ीकरण को बेहतर बनाने में मदद करती है। यह हमारी गलतियों की पहचान करने में भी सहायक होती है और हमें दूसरों द्वारा उपयोग की जाने वाली बेहतर विचारों से समृद्ध करती है।