पायथन 3 के लिए एक बुनियादी परिचय
थोड़ी देर पहले मुझे अपनी # 1 पसंदीदा प्रोग्रामिंग / स्क्रिप्टिंग भाषा बनने के लिए पेश किया गया था: पायथन। किसी भाषा डेवलपर के लिए ऐसा कुछ मुश्किल हो सकता है जो शक्तिशाली और लिखने में आसान हो, जो स्वाभाविक रूप से बहती है और आपको अपने कोड में महत्वपूर्ण चीज़ों पर ध्यान केंद्रित करने की अनुमति देती है। पाइथन यह खूबसूरती से करता है। यह केवल सही प्रकार की मान्यताओं को बनाता है, जिससे आप इस बात पर अधिक ध्यान केंद्रित कर सकते हैं कि आपके कार्यक्रम को वास्तव में कैसे किया जाना चाहिए इसके बजाय क्या करना चाहिए। मेमोरी मैनेजमेंट, वेरिएबल टाइपिंग, या उन विस्फोटित अर्धविरामों के बारे में कोई चिंता नहीं है, आप बस अपने दिमाग को अपने आवेदन के तर्क पर रखें।
पाइथन कुछ पारंपरिक भाषाओं जैसे सी / सी ++ से कुछ बहुत बड़े प्रस्थान लेता है, जो रूबी, स्मॉलटॉक और यहां तक कि जावास्क्रिप्ट जैसी गतिशील भाषाओं के साथ बेहतर तरीके से फिट बैठता है। पाइथन में जटिल कार्यों को तेज़ी से और आसानी से पूरा करने की क्षमता कुछ महान वेब कॉमिक्स का विषय भी रही है।
नोट - पायथन एक व्याख्या की गई भाषा है, दुभाषिया यहां डाउनलोड किया जा सकता है। इस गाइड में सभी उदाहरण पायथन 3.0 के लिए लिखे गए हैं जो पूर्व संस्करणों के साथ पूरी तरह पिछड़े-अनुकूल नहीं हैं । यदि आपको उदाहरण चलाने में परेशानी हो रही है, तो अपने पायथन संस्करण की जांच करें।
उदाहरण चल रहा है
मैं इस गाइड में विभिन्न उदाहरण शामिल करूंगा। एक बार जब आपको पायथन 3 दुभाषिया स्थापित हो जाए (सुनिश्चित करें कि यह पाइथन 3 है), कोड दो तरीकों से चलाया जा सकता है:
स्क्रिप्ट फाइल
आप उदाहरण कोड के पूर्ण पाठ को टेक्स्ट फ़ाइल में कॉपी / पेस्ट कर सकते हैं। पायथन फाइलें आमतौर पर .py में समाप्त होती हैं। अपना कमांड प्रॉम्प्ट खोलें और फ़ाइल के नाम के बाद पायथन निष्पादन योग्य चलाएं। मेरी लिनक्स मशीन पर, मैं चलाता हूं:
python3.0 myfile.py
यह लगभग विंडोज और मैक पर भी समान होना चाहिए, हालांकि आपको पाइथन दुभाषिया के लिए पूरा पथ निर्दिष्ट करना पड़ सकता है, जैसे कि
सी: \ Python30 \ python.exe myfile.py
इंटरएक्टिव इंटरप्रेटर
पाइथन को इंटरैक्टिव मोड में भी चलाया जा सकता है, जहां आप यह देखने के लिए एक समय में कमांड टाइप कर सकते हैं कि यह कैसा प्रतिक्रिया देता है। यह समस्या निवारण, या नई चीजों को आजमाने में बहुत उपयोगी हो सकता है। किसी भी स्क्रिप्ट फ़ाइल के बिना पाइथन निष्पादन योग्य चलाएं, और यह इंटरैक्टिव प्रॉम्प्ट खोल देगा।
Ctrl-D दुभाषिया से बाहर निकल जाएगा।
श्वेत रिक्ति
पायथन के सबसे असामान्य पहलुओं में से एक कोड के ब्लॉक को इंगित करने के लिए व्हाइटस्पेस का उपयोग है। प्रारंभ और अंत के बजाय, या ब्रैकेट द्वारा समूहित करने के बजाय, पाइथन लूपिंग के लिए कोड के ब्लॉक को संभालने के तरीके को बताने के लिए इंडेंटेशन की मात्रा का उपयोग करता है। अन्य प्रोग्रामिंग भाषाओं से आने वाले कई लोगों के लिए, यह पागलपन की तरह लगता है। एक बार जब आप इस विचार में उपयोग कर लेंगे, तो यह काफी स्वाभाविक हो जाता है और आपके कोड को स्पष्ट और पठनीय होने के लिए मजबूर करता है। हम सभी इंडेंट कोड ब्लॉक को वैसे भी (या कम से कम चाहिए) इसलिए यह समझने के लिए भाषा को समझ में आता है कि सभी एक साथ खड़े बयान एक ही ब्लॉक का हिस्सा हैं।
एक अतिरिक्त लाभ के रूप में, पाइथन इस बात के बारे में पसंद नहीं है कि आप कितना इंडेंट करना चाहते हैं, या यहां तक कि चाहे आप टैब या रिक्त स्थान पसंद करते हैं। आप एक टैब, एक स्पेस, दो रिक्त स्थान, 137 रिक्त स्थान का उपयोग कर सकते हैं, पायथन परवाह नहीं है। आपको बस इतना करना जरूरी है। यह आपके कोड की जांच करेगा और देखें "पहला कोड ब्लॉक 4 रिक्त स्थान से इंडेंट किया गया है, इसलिए मुझे लगता है कि एक दूसरे ब्लॉक को 4 अन्य स्पेस द्वारा इंडेंट किया गया है" या जो कुछ भी हो सकता है। जब तक आप अपना कोड इंडेंट करने के तरीके में सुसंगत होते हैं, तब तक पाइथन समझने के लिए पर्याप्त लचीला होता है। निम्नलिखित उदाहरण चीजों को साफ़ करने में मदद कर सकते हैं।
1 2 3 4 5 | x = 0 जबकि x <10: प्रिंट (x) x + = 1 प्रिंट ("सभी पूर्ण") |
कोड ब्रेकडाउन: जबकि लूप पाइथन को कोड के निम्न ब्लॉक को चलाने के लिए कहता है जब तक कि कुछ स्थितियां सत्य न हों। इस मामले में, शर्त यह है कि x 10 से कम है। यह उस ब्लॉक पर तब तक जारी रहेगा जब तक कि x हिट 10 न हो। "X + = 1" "x = x + 1" या "x को बड़ा बना देता है" "। ध्यान दें कि आखिरी पंक्ति तब तक नहीं चलती जब तक कि लूप समाप्त नहीं हो जाता है। पाइथन इंडेंट लाइनों को देखता है, और उनको लूप के माध्यम से प्रत्येक यात्रा पर चलाने के लिए कोड के समूह के रूप में व्यवहार करता है। अंतिम पंक्ति दूसरों के साथ इंडेंट नहीं है, इसलिए जब तक लूप समाप्त नहीं हो जाता है तब तक पाइथन इस पर कार्य नहीं करता है।
गतिशील टाइपिंग
पाइथन आपको यह निर्धारित करने की आवश्यकता नहीं है कि एक चर में किस प्रकार का डेटा होगा। आप पाइथन को यह बताने के बिना एक चर, एक स्ट्रिंग, एक दशमलव, जो भी आप एक चर में चाहते हैं डाल सकते हैं। पाइथन आपके द्वारा निर्दिष्ट किए जाने वाले कार्यों के आधार पर पता लगाएगा, किस प्रकार का डेटा चर होना चाहिए। निम्नलिखित उदाहरण प्रदर्शित करना चाहिए:
1 2 3 4 5 6 7 8 | x = 0 प्रिंट ("x is a:", टाइप (x)) x = 3.14 प्रिंट ("x is a:", टाइप (x)) x = "हैलो" प्रिंट ("x is a:", टाइप करें ( एक्स)) एक्स = [1, 2, 3, 4] प्रिंट ("एक्स एक है:", टाइप (एक्स)) |
जो हमें नीचे उत्पादन देता है
डेटा संरचनाएं
पाइथन में आपके द्वारा उपयोग किए जाने वाले तीन डेटा संरचनाएं हैं
- सूचियाँ
- tuples
- शब्दकोश
सूचियाँ
कुछ अन्य भाषाओं में सरणी की तरह बहुत हैं। वे वस्तुओं का एक आयामी अनुक्रम हैं (हालांकि तकनीकी रूप से आप उन्हें जितना चाहें उतने आयाम दे सकते हैं)। उस सूची में प्रत्येक आइटम को सूची को फिर से बनाने के बिना, और अन्य वस्तुओं में कोई परिवर्तन किए बिना, बदले में बदल दिया, स्थानांतरित किया जा सकता है और हटाया जा सकता है। सूची में कोई पाइथन ऑब्जेक्ट हो सकता है, भले ही यह एक संख्या हो, एक स्ट्रिंग, यहां तक कि अन्य सूचियां भी हों। निम्नलिखित कोड सूचियों के कुछ बुनियादी उपयोग दिखाता है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 9 20 21 22 23 24 25 26 | # कुछ नमूना वस्तुओं के साथ एक सूची बनाएं IList = [1, 2, 3, 4, 5] #len () हमारी सूची कितनी वस्तुओं को मुद्रित करती है ("myList है", लेन (myList), "आइटम । ") # सूची में आइटमों को एक ही प्रकार का नहीं होना चाहिए myList.append (" छः ") myList.append (" सात ") myList.append (8) # हमने तीन नए आइटम जोड़े हैं सूची प्रिंट का अंत ("माईलिस्ट अब है", लेन (myList), "आइटम।") # अब आइए आइटम नंबर 0 (पहला आइटम) प्रिंट देखें ("पहला आइटम:", myList [0]) # और अब चौथा आइटम प्रिंट ("चौथा आइटम:", मेरी सूची [3]) # फिर सूची प्रिंट ("और समाप्त होता है", myList.pop ()) प्रिंट ("myList अब है", लेन ( myList), "आइटम।") # और देखें कि हमने प्रिंट किया है ("पूरी सामग्री हैं:", myList) |
tuples
मैं ज्यादा tuples को कवर नहीं किया जाएगा, क्योंकि वे इसे हमारे उदाहरण कार्यक्रम का उपयोग नहीं किया जाएगा और वे कई तरीकों से सूचियों के समान हैं। सूचियों की तरह टुपल्स, एक साथ समूहित वस्तुओं की एक श्रृंखला हैं। अंतर यह है कि tuples mutable नहीं हैं। आप टुपल में आइटम्स में जगह-जगह परिवर्तन नहीं कर सकते हैं, आपको टुपल को फिर से बनाना होगा। इसका मतलब है कि "संलग्न" या "पॉप" या अन्य चीजें जो सीधे टुपल की सामग्री में परिवर्तन नहीं करती हैं। यदि यह मदद करता है, तो आप केवल पढ़ने-योग्य सूची के रूप में tuples के बारे में सोच सकते हैं (हालांकि यह वास्तव में बहुत सटीक नहीं है)।
शब्दकोश
ये, मुझे प्यार है। जब मुझे पहली बार शब्दकोशों के बारे में सिखाया गया था, मुझे याद है कि "ठीक है .. मुझे लगता है कि उपयोगी हो सकता है ... कभी-कभी"। एक सप्ताह के भीतर, मैंने उन्हें हर मौका दिया।
पायथन में, शब्दकोश कुंजी हैं: मूल्य जोड़े। यह एक सूची की तरह है, सिवाय इसके कि प्रत्येक आइटम में दो भाग होते हैं, एक कुंजी और एक मूल्य। निम्नलिखित उदाहरण में, मैं अपने बारे में जानकारी रखने के लिए एक शब्दकोश बनाने जा रहा हूं।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 9 20 | myDict = {} # कुंजी मूल्य myDict ["नाम"] = "जोश" myDict ["व्यवसाय"] = "कंप्यूटर गीक" myDict ["FavFood"] = "हानी स्पेशल (कोई सलाद)" myDict ["FavBand"] = "बी -52 के अलावा कुछ भी" myDict ["नायकों"] = "टॉम वेट्स, कर्ट वोनगुट, स्पेसबैट" myDict ["FavNumber"] = 3.141592 myDict [42] = "यह भी एक अच्छी संख्या है" प्रिंट ("मेरा नाम: ", myDict [" नाम "]) प्रिंट (" मेरे नायकों: ", myDict [" नायकों "]) प्रिंट (" मेरा पसंदीदा नंबर: ", myDict [" FavNumber "]) प्रिंट (" मैं 42 के बारे में क्या सोचता हूँ? ", myDict [42]) प्रिंट () # अब मैं # नया नया शब्दकोश myDict [" FavNumber "] + = 100 प्रिंट (" मेरा नया पसंदीदा नंबर: ", myDict [" FavNumber "बनाने के बिना अपना पसंदीदा नंबर बदल दूंगा। ]) |
उदाहरण से कुछ चीजें स्पष्ट होनी चाहिए। सबसे पहले, शब्दकोश किसी भी प्रकार के डेटा को मिलाकर मिलान कर सकते हैं। आपकी चाबियाँ और मूल्य कुछ भी हो सकते हैं। आप वास्तव में पागल हो सकते हैं और चीजों को शब्दकोशों के अंदर कार्यों की तरह रख सकते हैं, लेकिन इस गाइड के दायरे से परे यह तरीका है।
दूसरा, शब्दकोश परिवर्तनीय हैं। आप शब्दकोश को पुनर्निर्माण या अन्य वस्तुओं को प्रभावित किए बिना फ्लाई पर आइटम जोड़ और निकाल सकते हैं।
यदि आप अभी भी शब्दकोशों की उपयोगिता के बारे में सुनिश्चित नहीं हैं, तो उपयोगकर्ता की सेटिंग्स को ट्रैक करने के लिए उनका उपयोग करने पर विचार करें। आपके पास उपयोगकर्ता नाम, आईपी पता, और स्क्रीन रिज़ॉल्यूशन जैसी सेटिंग्स और स्टोर चीजें नामक एक शब्दकोश हो सकता है। किसी भी समय आपको उस डेटा को संदर्भित करने की आवश्यकता होती है, तो आप इसे केवल [[उपयोगकर्ता नाम "], या जो भी अन्य कुंजी निर्दिष्ट कर सकते हैं उसे खींच सकते हैं।
इसे सभी घर लाओ
अब हम एक वास्तविक पायथन 3.0 प्रोग्राम बनाने, वास्तविक कार्रवाई करने जा रहे हैं। यह कार्यक्रम क्या करेगा, वह संख्या का प्रतिनिधित्व करने वाला नंबर लेता है, और आपको बताता है कि जेब परिवर्तन कितना राशि देगा। यह एक बहुत ही सामान्य कोडिंग अभ्यास है और अब तक की अवधारणाओं को प्रदर्शित करने का एक अच्छा तरीका है।
मुझे अब आपको यह बताने चाहिए कि यह कार्यक्रम "सर्वश्रेष्ठ" तरीके से लिखा नहीं जा रहा है, मेरा लक्ष्य इसे सबसे बुनियादी अवधारणाओं और संचालनों का उपयोग करके लिखना है। इसे लिखने के कई "बेहतर" तरीके हैं, जैसे फ़ंक्शंस और मॉड्यूलस ऑपरेटर का उपयोग करना, और त्रुटि जांच सहित, लेकिन यह संस्करण समझने में बहुत आसान होना चाहिए।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 9 20 21 22 23 24 25 26 27 28 2 9 30 31 32 33 34 35 36 37 38 39 | # नकद राशि कुल = इनपुट प्राप्त करें ("डॉलर में नकदी राशि दर्ज करें: $") # पाठ इनपुट से पढ़ना पाठ मानता है, इसलिए # से दशमलव और एकाधिक 100 को परिवर्तित करें ताकि हम पैनीज़ # (सरल गणित को उस तरह से गिन सकते हैं) pennies = फ्लोट (कुल) * 100 # क्रिएटिव डिक्शनरी हमारे परिवर्तन मूल्यों को बदलने के लिए = {"क्वार्टर": 0, "डाइम्स": 0, "निकल": 0, "पेनीज़": 0} # लूप जब तक सभी पैसे का हिसाब नहीं लिया जाता है जबकि पेनीज> 0: # कुल से प्रत्येक सिक्का को घटाएं, प्रत्येक सिक्का के लिए # गिनने के लिए 1 जोड़ें, और पेनीज़ = = 25: ["क्वार्टर"] + = 1 पेनीज़ = = 25 बदलें * elif pennies को जारी रखने के बाद लूप को पुनरारंभ करें> = 10: बदलें ["डाइम्स"] + = 1 पैसा - = 10 एलिफ पेनी जारी रखें> = 5: बदलें ["निकल"] + = 1 पैसा - = 5 जारी रखें: ["पेनीज़"] = int (पैनीज़) बदलें pennies = 0 # अंत में, हमारे परिणाम प्रिंट प्रिंट करें ("क्यू:", ["क्वार्टर"] बदलें) प्रिंट ("डी:", ["डाइम्स"] बदलें) प्रिंट ("एन:", ["निकल" बदलें] ) प्रिंट ("पी:", बदलें ["पेनीज़"]) |
कोड ब्रेकडाउन: हम कमांड लाइन से धनराशि प्राप्त करने के लिए इनपुट का उपयोग कर रहे हैं। पायथन मानते हैं कि जो भी दर्ज किया जा रहा है वह टेक्स्ट की एक स्ट्रिंग है, जैसा कि किसी संख्या के विपरीत है, इसलिए हमें इसे उस इनपुट को एक उपयोगी संख्या में बदलने के लिए कहना होगा। हम अकेले नंबर छोड़ सकते थे (यानी 15.9 5) लेकिन इसके बजाय हमने गणित को सरल बनाने के लिए इसे पैनीज़ (100 से गुणा करके) में परिवर्तित कर दिया ताकि हमें दशमलव बिंदुओं के बारे में चिंता न करें।
इसके बाद, हम अपने कंप्यूटिंग के परिणामों को पकड़ने के लिए एक शब्दकोश बनाते हैं। यदि यह एक अधिक जटिल कार्यक्रम था, तो हम उस शब्दकोष को हमारे कार्यों, कक्षाओं आदि के आसपास पास कर सकते थे, बिना किसी प्रकार के सिक्का के अलग-अलग चर का ट्रैक रखने के बारे में चिंता किए।
उसके बाद असली काम आता है - हमारे पैसे को कुल सिक्के में विभाजित करने का कार्य। यह प्रोग्राम साइक्लिंग रखने के लिए थोड़ी देर के लूप का उपयोग करता है जब तक कि हमारे मूल इनपुट से कोई पैसा नहीं बचा है। लूप के माध्यम से प्रत्येक यात्रा पैसे की मात्रा को देखती है, यह सबसे बड़ा सिक्का घटा सकता है, और लूप को पुनरारंभ करता है। घटाव करने के बजाय, यदि हम मॉड्यूलस ऑपरेटर का उपयोग करते थे, तो यह प्रोग्राम अधिक कुशल होगा, लेकिन घटाव को समझना आसान है।
एक बार जब हम लूप के साथ समाप्त हो जाते हैं, तो जो कुछ भी करने के लिए छोड़ दिया जाता है वह हमारे परिणाम प्रदर्शित करता है।
पाइथन एफएआर से अधिक सक्षम है, जितना संभवतः मैं यहां कवर कर सकता हूं, लेकिन मुझे आशा है कि मैं यह कैसे काम करता है इसकी मूल बातें प्रदर्शित करने में सक्षम हूं, और यह कैसे उपयोग किया जा सकता है ताकि इसे तेज़ी से और आसानी से टूल बनाने के लिए उपयोग किया जा सके जो कि अधिक जटिल हो कम सहज भाषा।
यदि कोई भी उत्सुक है क्योंकि मैं "टुपल" का सही तरीके से उच्चारण करने के तरीके के बारे में था, तो मैं भाग्यशाली था कि वह गुडीडो वैन रॉसम से खुद से पूछने का अवसर प्राप्त करे कि वह "तोप" या "टुपल" था, और उसने कुछ हद तक असंतुष्ट उत्तर दिया "यह वही है जो आप चाहते हैं।"