Python/C3/Parsing-data/Hindi

From Script | Spoken-Tutorial
Revision as of 14:47, 22 April 2013 by Devraj (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Timing Narration
0:00 नमस्कार दोस्तों पार्सिंग डेटा पर ट्यूटोरियल में आपका स्वागत है।
0:06 इस ट्यूटोरियल के अंत में, आप निम्न करने में सक्षम होंगे,
  1. डेलीमीटर का इस्तेमाल करके आप स्ट्रिंग अलग करने में,
  2. स्ट्रिंग के आसपास व्हाईट स्पेस हटाने में।
  3. वेरिएबल्स के डेटा टाइप्स को एक प्रकार से दूसरे प्रकार में बदलने में।
0:18 इस ट्यूटोरियल को शुरू करने से पहले, हम आपको सलाह देते हैं कि "Getting started with Lists" पर ट्यूटोरियल को पूरा कर लें।
0:23 अब, अपने टर्मिनल पर ipython टाइप करके आईपाइथन इन्टरप्रेटर शुरू करें।
0:32 जैसा कि आप देख सकते हैं, फाइल sslc.txt में प्रत्येक रिकॉर्ड कॉलन से विभाजित फील्ड्स को समाविष्ट करता है।
0:51 पहला रिकॉर्ड है रीजन कोड, फिर रोल नम्बर, नाम, पहली भाषा, द्वितीय भाषा, गणित, विज्ञान और समाज के अंक और कुल अंक।
1:06 हमारा काम है रीजन "B" के सभी गणित के अंकों को समांतर माध्य निकालना।
1:14 अब समझते हैं कि, पार्सिंग डेटा का क्या मतलब है।
1:19 इनपुट फाइल से, हम देख सकते हैं, कि डेटा जो हमारे पास है टेक्स्ट फॉर्म में है।
1:25 इसे पार्सिंग करने का यही मतलब है कि इसे रीड करना है और इसे उस प्रकार में बदलना है जिसे अभिकलन के लिए इस्तेमाल कर सकें – हमारे उदाहरण में, यह संख्याओं का क्रम होगा।
1:40 हम साफ़ देख सकते हैं, कि समस्या फाइल को रीड करने में और टोकेनाइज़ करने में है।
1:45 स्ट्रिंग्स को टोकेनाइज़ करने के बारे में सीखते हैं।
1:48 हम पहले स्ट्रिंग निधारित करेंगे। टाइप करें
line = "parse this  (a long space)   string"
2:05 हम अब इस स्ट्रिंग को व्हाईट स्पेस पर विभाजित करेंगे। टाइप

line.split()

2:17 जैसा कि आप देख सकते हैं, हमें स्ट्रिंग्स का एक क्रम मिला है, जिसका मतलब, जब split को बिना किसी आर्ग्यूमेंट्स के कॉल करते हैं, तो वह व्हाईट स्पेस पर विभाजित होता है।
2:24 सरल शब्दों में, सभी स्पेसेस एक बड़े स्पेस की तरह संसाधित होते हैं।
2:29 फंक्शन split हमारी पसंद की स्ट्रिंग को विभाजित कर सकता है।
2:34 इसे आर्ग्युमेंट की तरह पास करके हम इसे कर सकते हैं।
2:36 किन्तु पहले फाइल से एक नमूना रिकॉर्ड निर्धारित करते हैं।

record = "A;015163;JOSEPH RAJ S;083;042;47;0;72;244"

अब टाइप करें record.split(';')
3:12 हम देख सकते हैं कि स्ट्रिंग सेमी-कॉलन पर विभाजित हुआ है और हमें प्रत्येक फील्ड अलग-अलग मिली है।
3:18 हम यह भी देख सकते हैं, कि एक खाली स्ट्रिंग लिस्ट में दिखाई देती है क्योंकि यहाँ दो सेमी-कॉलन्स हैं जिनके बीच में कुछ नहीं हैं।
3:25 संक्षेप में, यदि split बिना किसी आर्ग्यूमेंट्स के कॉल किया गया तो यह व्हाईट स्पेस पर विभाजित करता है, और यदि आर्ग्युमेंट के साथ कॉल किया गया तो दिए गये आर्ग्युमेंट पर विभाजित करता है।
3:33 यहाँ विडियो रोकें, निम्न अभ्यास की कोशिश करें और विडियो पुनः चलायें।
3:39 स्पेस को आर्ग्युमेंट के रूप में इस्तेमाल करके वेरिएबल लाइन को विभाजित करें।
3:43 क्या यह बिना किसी आर्ग्युमेंट के विभाजित करने के समान ही है?

टर्मिनल पर टाइप करें record.split()

3:57 हम देखते हैं, कि जब हम स्पेस पर विभाजित करते हैं, बहुत सारे व्हाईट स्पेसेस एक में इकट्ठे नहीं होते और हर बार जब दो स्पेसेस लगातार आते हैं तो एक खाली स्ट्रिंग है।
4:09 अब यह हमने जान लिया, कि कैसे एक स्ट्रिंग को विभाजित करें, हम रिकॉर्ड को विभाजित कर सकते हैं और प्रत्येक रिकॉर्ड को अलग-अलग पा सकते हैं।
4:16 किन्तु इसमें एक समस्या है।
4:17 रीजन कोड "B" और एक "B" व्हाईट स्पेसेस से घिरा हुए, दो भिन्न रीजन्स की तरह संसाधित होते हैं।
4:23 इसलिए, हमें स्ट्रिंग के आसपास सभी व्हाईटस्पेस को हटाने का एक तरीका खोजना ही होगा, ताकि रीजन कोड "B" और एक "B" व्हाईट स्पेसस के साथ एक ही संसाधित हों।
4:32 यह स्ट्रिंग्स के स्ट्रिप तरीके इस्तेमाल करके मुमकिन है।
4:36 एक स्ट्रिंग को निर्धारित करें टाइप करे, unstripped = within double quotes एक लम्बा स्पेस B फिर से एक लम्बा स्पेस unstripped.strip()
5:01 हम देख सकते हैं, कि स्ट्रिप वाक्य के आगे-पीछे सभी व्हाईट स्पेस को हटा देता है।
5:07 यहाँ पर विडियो रोकें, निम्न अभ्यास करें और विडियो पुनः चलायें।
5:13 जब वाक्य स्ट्रिप हुआ, तो उसके अंदर व्हाईट स्पेस का क्या हुआ
5:19 हम देखते हैं, कि केवल वाक्य के अंदर के व्हाईट स्पेस हटे हैं और बाक़ी अप्रभावित हैं।
5:54 टाइप करें, a_str = " (a long space) white (again long space) space (and long space) " a_str.strip() अब तक हम रिकॉर्ड से फील्ड्स को अलग करने और किसी भी व्हाईट स्पेस को स्ट्रिप करने के बारे में काफी जान गये हैं।
6:06 हमारे पास अब खाली एक रोड़ा है, स्ट्रिंग को फ्लॉट में बदलना।
6:12 स्प्लिट और स्ट्रिप ऑपरेशंस एक स्ट्रिंग पर करते हैं और उनके उत्तर भी एक स्ट्रिंग होते हैं।
6:17 अतः अंक जो हमारे पास हैं, अभी भी स्ट्रिंग्स हैं और इनपर गणितीय ऑपरेशंस मुमकिन नहीं हैं।
6:21 इससे पहले कि हम इन पर गणितीय ऑपरेशंस लागू कर सकें, हमें इन्हें संख्याओं(पूर्णांक या फ्लॉट्स) में बदलना होगा।
6:31 अतः, हम अब स्ट्रिंग्स को फ्लॉट्स में बदलना देखेंगे।
6:33 हम पहले एक फ्लॉट स्ट्रिंग निर्धारित करते हैं।
6:36 अतः टाइप करें,
mark_str = "1.25"
mark = int(float(mark_str))
type(mark_str)
type(mark)
7:22 हम देख सकते हैं कि स्ट्रिंग फ्लॉट में प्रवर्तित हो गया।
7:26 हम इनपर अब गणितीय ऑपरेशंस लागू कर सकते हैं।
7:29 यहाँ पर विडियो रोकें, निम्न अभ्यास की कोशिश करें और पुनः विडियो चलायें।
7:39 क्या होता है जब आप int within brackets "1.25" करते हैं
7:46 अतः टर्मिनल में टाइप करें int within brackets 1.25; यह एक एरर देता है कि एक पूर्णांक संख्या को फ्लॉट में सीधा बदलना मुमकिन नहीं है।
8:00 यह फ्लॉट में परिवर्तन का मध्यवर्ती प्रकार सम्मिलित करता है, अतः आपको परिवर्तन के निमांकित प्रकार का अनुकरण करना होगा।
8:08 अतः टाइप करें, dcml underscore str is equal to within double quotes 1.25; फिर flt = float within brackets dcml underscore str ; फिर टाइप करें flt
8:45 फिर number is equal to int within brackets flt; फिर टाइप करें number.


9:00 int का इस्तेमाल करके, फ्लॉट को पूर्णांक संख्या में बदलना भी मुमकिन है।
9:05 अब फाइल को पार्स करने के लिए सभी अपेक्षित यंत्र हमारे पास है, चलिए समस्या को हल करते हैं।
9:10 हम पहले फाइल को लाइन-दर-लाइन रीड करते हैं और प्रत्येक रिकॉर्ड को पार्स करते हैं।
9:14 हम फिर देखते हैं, कि यदि रीजन कोड B है और अंकों को तदनुसार संचित करता है।
9:26 तो टाइप करें math underscore marks underscore B is equal to empty brackets

for line in open within brackets and double quotes slash home slash fossee slash sslc dot txt colon

   fields is equal to line dot split within brackets in double quotes colon;
   region underscore code is equal to  fields within square  brackets 0.
   region underscore code underscore stripped is equal to region underscore code dot strip and empty brackets.
   math underscore mark underscore str is equal to fields within square brackets 5
   math underscore mark = float within brackets math underscore mark underscore str
   if region underscore code double equal to "B" colon
       math underscore marks underscore B dot append within brackets math underscore mark  और एंटर दबाएँ ।


12:37 अब हमारे पास रीजन "B" के सभी गणित अंक लिस्ट math_marks_B में है।
12:45 औसत के लिए, हमें अंकों को केवल जोड़ना है और लम्बाई से भाग देना है।

टाइप करें, math_marks_mean = sum(math_marks_B) / len(math_marks_B)

math_marks_mean
13:24 अतः हमें अंतिम उत्तर मिला।
13:27 इस प्रकार हम किसी बड़े डेटा को विभाजित और रीड करते हैं और उसपर संगणन क्रियान्वित करते हैं।
13:32 इसी के साथ, हम इस ट्यूटोरियल की समाप्ति की ओर आ गये हैं।
13:37 इस ट्यूटोरियल में, हमने सीखा,
13:38 1. विभिन्न डेलीमिटर्स जैसे सेमी-कॉलन्स का उपयोग करके एक स्ट्रिंग को टोकेनाइज़ करना।
13:44 2. split() फंक्शन का इस्तेमाल करके डेलीमिटर्स से विभाजित डेटा को अलग करना।
13:50 3.strip() फंक्शन का इस्तेमाल करके अतिरिक्त व्हाईट स्पेसेस से छुटकारा पाना।
13:55 संख्याओं के डेटा टाइप्स को एक प्रकार से दूसरे प्रकार में बदलना।
13:59 इनपुट डेटा को पार्स करना और उसपर संगणन क्रियान्वित करना।
14:05 यहाँ आपके हल करने के लिए कुछ स्वतः निर्धारण सवाल हैं।
14:12 1. आप शब्द पाने के लिए, स्ट्रिंग "Guido;Rossum;Python" को कैसे विभाजित करेंगे।
14:26 2. आप इस वाक्य " Hello World " से अतिरिक्त व्हाईट स्पेसेस कैसे हटायेंगे।
14:34 3.int("20.0") क्या देगा और विकल्प हैं-
14:40 20
14:42 20.0
14:43 एरर
14:44 "20"


14:47 और अब उत्तर देखें,
14:50 1.हम line.split(';') के रूप में split फंक्शन पर इसे एक आर्गुमेंट के रूप में पास करके स्ट्रिंग, सेमी-कॉलन को अलग कर सकते हैं।
15:03 " Hello World ".strip() स्ट्रिंग के आगे-पीछे के अतिरिक्त व्हाईट स्पेसेस को हटाएगा।
15:11 और अंतिम int("20.0") एक एरर देगा, क्योंकि एक फ्लॉट स्ट्रिंग 20.0, को सीधे पूर्णांक में बदलना मुमकिन नहीं है।
15:25 आशा है कि आपने इस ट्यूटोरियल का आनन्द उठाया और इसे लाभदायक पाया।
15:28 आई.आई.टी मुंबई की ओर से मैं रवि कुमार अब आपसे विदा लेता हूँ। धन्यवाद।

Contributors and Content Editors

Devraj, PoojaMoolya