(पायथन) स्ट्रिंग्स। मूल बातें



यदि आप स्ट्रिंग की लंबाई को नकारात्मक सूचकांक में जोड़ते हैं, तो आपको "सामान्य" मिलता है चरित्र की स्थिति।
 
याद रखने की जरूरत है!
पायथन में, आप एक स्ट्रिंग में एक वर्ण नहीं बदल सकते, क्योंकि तार स्वयं अपरिवर्तनीय हैं। 

लाइनें। सिंहावलोकन

एक स्ट्रिंग - स्थित वर्णों की एक सूची (या अनुक्रम) है एक विशेष ठीक में। वर्णों के पूरे अनुक्रम को एक ही वस्तु के रूप में माना जाता है।

एक वर्ण कुछ भी है जिसे आप कीबोर्ड पर एक कीस्ट्रोक (अक्षर, संख्या, बैकस्लैश, या कुछ अन्य वर्ण) के साथ टाइप कर सकते हैं।

स्ट्रिंग्स में रिक्त स्थान हो सकते हैं: "Hello world!"

एक खाली स्ट्रिंग एक ऐसी स्ट्रिंग होती है जिसमें 0 अक्षर होते हैं।

Python उद्धरण (" ") या apostrophes (' ') में संलग्न किसी भी चीज़ को स्ट्रिंग्स के रूप में स्वीकार करता है।

Python में एक string str प्रकार की होती है।
 
याद रखने की जरूरत है!
Python में स्ट्रिंग्स अपरिवर्तनीय हैं!


आप इनपुट स्टेटमेंट का उपयोग करके स्ट्रिंग में एक नया मान लिख सकते हैं <पूर्व आईडी = "सिद्धांत_py_1"> एस = इनपुट ()
आप वेरिएबल को बस एक स्ट्रिंग मान भी निर्दिष्ट कर सकते हैं, जैसे कि   <पूर्व आईडी = "सिद्धांत_py_2"> एस = 'पायथन' या ऐसा <पूर्व आईडी = "सिद्धांत_py_3"> एस = "पायथन" आप अंतर्निहित फ़ंक्शन len() का उपयोग करके स्ट्रिंग की लंबाई निर्धारित कर सकते हैं <पूर्व आईडी = "सिद्धांत_py_4"> एन = लेन (एस)


स्ट्रिंग तुलना

स्ट्रिंग्स की तुलना संख्याओं की तरह ही एक दूसरे से की जा सकती है। आप यह निर्धारित कर सकते हैं कि कौन सी रेखा अधिक है, कौन सी कम है।

स्ट्रिंग्स की तुलना करते समय, वर्ण कोड की तुलना की जाती है। वर्ण एन्कोडिंग के दर्जनों, यदि सैकड़ों नहीं हैं। इस अवधारणा को समझने का सबसे आसान तरीका सबसे आसान ASCII में से एक को समझना है (यहां पढ़ें)।  

यह समझना आवश्यक है कि आधुनिक एनकोडिंग में रूसी और अंग्रेजी दोनों अक्षरों को वर्णानुक्रम में व्यवस्थित किया जाता है, संख्याएं भी छोटे से बड़े की ओर जाती हैं। 
उदाहरण के लिए, ASCII कोड तालिका में, अंग्रेजी अक्षर 'A' - 65, अक्षर 'क' - 97, अंक '0' कोड 48 है। रूसी अक्षर ASCII कोड तालिका (128 से 255 तक की संख्या) के विस्तारित भाग में स्थित हैं। बड़े अक्षर छोटे अक्षरों से पहले आते हैं (अर्थात उनका कोड छोटा होता है)।

उपयोग की जाने वाली अधिकांश एन्कोडिंग तालिकाओं में, पैटर्न समान होते हैं, लोअरकेस अक्षर अपरकेस अक्षरों की तुलना में बाद में होते हैं, संख्याएँ अक्षरों की तुलना में पहले होती हैं, और रूसी अक्षर अंग्रेज़ी की तुलना में बाद में होते हैं।
 
अक्षरों या स्ट्रिंग्स की तुलना करते समय, पायथन वर्णों को उनके संबंधित क्रमिक मानों में परिवर्तित करता है और फिर बाएं से दाएं की तुलना करता है। 

उदाहरण के लिए: "लोकोमोटिव"  < "स्टीमबोट", क्योंकि शब्द पांचवें अक्षर और "इन" में भिन्न हैं < "एक्स".

किसी रेखा को भागों में विभाजित करना

एक स्ट्रिंग में प्रवेश करते समय, आप इसे किसी भी विभाजक द्वारा तुरंत भागों में विभाजित कर सकते हैं।
हम ऐसा पहले भी कर चुके हैं जब हमने एक ही लाइन पर कई संख्यात्मक चर दर्ज किए थे। हमने स्ट्रिंग को भागों में विभाजित करने के लिए split() विधि का उपयोग किया था। डिफ़ॉल्ट रूप से, यह स्पेस के अनुसार स्ट्रिंग्स को सबस्ट्रिंग्स में अलग करता है।
इस पद्धति का उपयोग करके, आप स्ट्रिंग को भागों में विभाजित कर सकते हैं, उदाहरण के लिए, रिक्त स्थान द्वारा। और स्ट्रिंग के प्रत्येक भाग को एक अलग वेरिएबल में लिखें।
 
उदाहरण
<पूर्व आईडी = "सिद्धांत_py_1"> एस 1, एस 2 = इनपुट ()। विभाजन ()
उदाहरण में, जब दो शब्दों को एक स्थान से अलग करते हुए दर्ज किया जाता है, तो पहला शब्द वेरिएबल s1 में संग्रहीत होता है, दूसरा - वेरिएबल s2 में।

स्ट्रिंग्स का जोड़ और गुणा

स्ट्रिंग्स को जोड़ा जा सकता है, इसके लिए "+" चिन्ह का प्रयोग किया जाता है। इस ऑपरेशन को स्ट्रिंग संयोजन या संयोजन कहा जाता है। 
 
उदाहरण 
<पूर्व आईडी = "सिद्धांत_py_1"> एस = "हैलो," एस 1 = "दुनिया" प्रिंट(एस + एस1) स्क्रीन "<कोड>हैलो वर्ल्ड" (उद्धरण चिह्नों के बिना)।

पायथन एक स्ट्रिंग को एक संख्या से गुणा करने के ऑपरेशन को लागू करता है: यह कई जोड़ को बदल देता है।
 
उदाहरण 
डोरी <पूर्व आईडी = "सिद्धांत_py_2"> एस = "दुनिया "+"दुनिया "+"दुनिया "+"दुनिया " द्वारा प्रतिस्थापित किया जा सकता है   <पूर्व आईडी = "सिद्धांत_py_3"> एस = "विश्व " *4

पंक्ति सूचकांकों को संदर्भित करते हुए

स्ट्रिंग में प्रत्येक वर्ण की एक संख्या होती है (जिसे इंडेक्स कहा जाता है), और कई भाषाओं में नंबरिंग हमेशा शून्य से शुरू होती है।
पायथन में, आप नकारात्मक अनुक्रमणिका निर्दिष्ट कर सकते हैं। इसका मतलब है कि यह पंक्ति के अंत से गिना जाता है।
 
उदाहरण 
<टेबल क्लास = "टेबल-बॉर्डर्ड टेबल-लिस्ट-टेस्ट टेबल-एसएम टेबल-स्ट्राइप्ड"> <शरीर>
स्ट्रिंग एस एच l l
इंडेक्स S[0] S[1] S[2] S[3] S[4]
इंडेक्स S[-5] S[-4] S[-3] S[-2] S[-1]

सभी वर्णों पर पुनरावृति करें

चूँकि किसी वर्ण को अनुक्रमणिका द्वारा एक्सेस किया जा सकता है, आप सभी वर्णों पर पुनरावृति करने के लिए एक चर लूप का उपयोग कर सकते हैं, जो संभावित सूचकांक मान लेगा। उदाहरण के लिए, एक प्रोग्राम जो s स्ट्रिंग के सभी वर्ण कोड प्रदर्शित करता है, वह ऐसा दिखाई देगा <पूर्व> मैं सीमा में (लेन (रों)) के लिए: प्रिंट (एस [i], ऑर्ड (एस [i])) कार्यक्रम के लिए स्पष्टीकरण:
1) len(s) फ़ंक्शन स्ट्रिंग की लंबाई का पता लगाता है। पहले वर्ण का सूचकांक 0 है और अंतिम का सूचकांक len(s)-1 है। लूप वेरिएबल i केवल मानों को 0 से len(s)-1 तक ले जाएगा।
2) प्रत्येक पंक्ति में, प्रतीक स्वयं पहले प्रदर्शित होगा, और उसके बाद उसका कोड, जो अंतर्निहित फ़ंक्शन ord() द्वारा वापस किया जाता है।

उसी गणना को छोटा लिखा जा सकता है: <पूर्व> सी में एस के लिए: प्रिंट (सी, ऑर्ड (सी)) इस फ़्रैगमेंट में, लूप हेडर सभी वर्णों के माध्यम से लूप करता है, उन्हें बदले में वेरिएबल c में रखता है।

जैसा कि पहले ही उल्लेख किया गया है, स्ट्रिंग्स के साथ काम करते समय पायथन की ख़ासियत यह है कि तार अपरिवर्तनीय वस्तुएं हैं। दूसरे शब्दों में, हम किसी स्ट्रिंग के अलग-अलग वर्णों को नहीं बदल सकते हैं।

उदाहरण के लिए, निम्न कथन काम नहीं करेगा <पूर्व> s[5]='a' लेकिन आप आवश्यक परिवर्तनों के साथ वर्णों से एक नई पंक्ति बना सकते हैं।
 
कार्य
इनपुट स्ट्रिंग में, 'a' अक्षर 'b'.  <पूर्व> एस = इनपुट () नया = "" सी में एस के लिए: अगर सी == 'ए': सी = 'बी' नया + = सी प्रिंट(sNew)
इस प्रोग्राम में, लूप स्ट्रिंग s के सभी वर्णों से होकर जाता है। लूप की बॉडी में, हम वेरिएबल с के मान की जांच करते हैं: यदि प्रतीक प्रतीक 'a' से मेल खाता है, तो हम इसे बदल देते हैं 'b' के साथ और इसे अतिरिक्त ऑपरेटर का उपयोग करके नई लाइन sNew के अंत में जोड़ें।
यह विकल्प काफी धीमा है।

भविष्य में, हम बिल्ट-इन स्ट्रिंग मैनिपुलेशन फ़ंक्शंस पर एक नज़र डालेंगे और सीखेंगे कि इसे तेज़ी से कैसे करना है।