payment by upi: sinhamit@icici or payment by bank account name: amit kumar sinha, account number: 2646728782 IFSC code: KKBK0005660 SWIFT: KKBKINBB

Please support if you like my work by payment through upi: sinhamit@icici or payment by bank

account name: Amit Kumar Sinha,
account number: 2646728782
IFSC code: KKBK0005660
SWIFT: KKBKINBB


Strings   in Category: पाइथन   by amit

🕙 Posted on 2023-07-10 at 22:06:03


अनुक्रम (Sequence) डेटा प्रकार

    बूलियन और संख्याएँ (पूर्णांक और फ़्लोट्स) आदिम (primitive) डेटा-प्रकार हैं। लेकिन स्ट्रिंग्स (Strings), सूचियाँ (Lists), टुपल (Tuples), डिक्शनरी (Dictionary), आदि अनुक्रम डेटा प्रकार हैं, जो वर्णों (characters) या तत्वों (elements/ आइटम) का संग्रह (collection) हैं। आइए उनमें से प्रत्येक को विस्तार में देखें। C, C++, Java, आदि के विपरीत, Python प्रोग्रामिंग भाषा में कोई Char या वर्ण (character) डेटा-प्रकार नहीं है। एकल उद्धरणों की एक जोड़ी या दोहरे उद्धरण चिह्नों की एक जोड़ी के भीतर एक वर्ण एक स्ट्रिंग शाब्दिक (literal) है ।

स्ट्रिंग्स Strings

    आपने पिछले पृष्ठों में विभिन्न स्ट्रिंग्स देखी हैं, उदाहरण के लिए, 'Hello', "Hello World", '12', Greeting = 'Hello World', name = 'Amit' आदि। पहले तीन स्ट्रिंग शाब्दिक हैं जिन पर print() अंतर्निहित फ़ंक्शन लागू किया गया है, और अंतिम दो स्ट्रिंग शाब्दिक को चर नामों, अर्थात् Greeting और name को सौंपा (निर्दिष्ट किया) गया है।

Caution (चेतावनी): स्ट्रिंग शाब्दिक लिखते समय आपको सावधान रहना चाहिए, क्योंकि बिना उद्धरण जोड़े के एक भी अक्षर (अंग्रेजी वर्णमाला के a से z या A से Z) को चर (variable) नाम के रूप में माना जाएगा, (चाहे परिभाषित या अपरिभाषित) और इसलिए, बग (BUGs) का कारण बन सकता है। निम्नलिखित उदाहरण में, शब्द Greeting एक चर नाम है, लेकिन जब यह एकल उद्धरणों की एक जोड़ी के भीतर संलग्न होता है, तो इसे स्ट्रिंग डेटा-प्रकार के रूप में माना जाता है।

Greeting = 'Hello World'
print( Greeting )     # outputs Hello World

print( 'Greeting' )   # outputs Greeting

स्ट्रिंग्स लिखने के विभिन्न तरीके

    स्ट्रिंग शाब्दिक चार तरीकों से लिखे जा सकते हैं, अर्थात्, एक या एक से अधिक अक्षर (1) सिंगल कोट्स (उद्धरण चिन्ह) की एक जोड़ी, (2) डबल कोट्स की एक जोड़ी, (3) तीन सिंगल कोट्स की एक जोड़ी, और (4) तीन दोहरे (डबल) उद्धरण चिन्हों की एक जोड़ी। अंतिम दो तरीकों को डॉकस्ट्रिंग्स (docstrings) कहा जाता है, और बहु-पंक्ति (multi-line) वर्ण, शब्द, पैराग्राफ, विशेष रूप से आपके कस्टम मॉड्यूल, फ़ंक्शन आदि के लिए दस्तावेज़ीकरण लिखे जाते हैं।

string1 = 'Hello World'
string2 = "Good Morning"
string3 = '''
# You should be careful when writing string literals,
# because even a single letter (character) without any
# pair of quotes, will be treated as variable name,
# (whether defined or undefined) and therefore, may
# cause BUGs.
'''             # तीन सिंगल कोट्स डॉकस्ट्रिंग का समापन
string4 = """
# There are many built-in functions, and pre-defined
# methods for each of these functions in Python programming
# language. Many method names are same for different
# built-in functions.
"""             # तीन डबल कोट्स डॉकस्ट्रिंग का समापन
print( string1, string2, string3, string4 )

    उपरोक्त उदाहरण में, सभी चार चर नाम, अर्थात्, string1, string2, string3, string4 एक print() फ़ंक्शन के साथ निष्पादित किए गये हैं। इसलिए, इन चार चर नामों के मानों को एक पंक्ति में दिखना (आउटपुट होना) चाहिए। हालाँकि, जब आप वर्णों, शब्दों या पैराग्राफ्स को नई पंक्ति में रखते हैं, तो ये नई पंक्तियाँ संरक्षित (preserved) रहती हैं, और इसलिए, आउटपुट निम्न प्रकार है:

C:\xampp\htdocs\python2023>py new.py
Hello World Good Morning
# You should be careful when writing string literals,
# because even a single letter (character) without any
# pair of quotes, will be treated as variable name,
# (whether defined or undefined) and therefore, may
# cause BUGs.

# There are many built-in functions, and pre-defined
# methods for each of these functions in Python progra­mming
# language. Many method names are same for different
# built-in functions.

    आप देख सकते हैं कि उपरोक्त उदाहरण के आउटपुट में भी, # (हैश) प्रतीक किसी भी पंक्ति पर टिप्पणी नहीं करता है, जो तीन सिंगल/डबल कोट्स की एक जोड़ी के भीतर हैं। पायथन प्रोग्रामिंग भाषा के प्रोग्रामर और डेवलपर, दस्तावेज़ीकरण उद्देश्यों के लिए अक्सर डॉकस्ट्रिंग का उपयोग करते हैं। कई ट्यूटोरियल्स में, डॉकस्ट्रिंग को मल्टी-लाइन टिप्पणियों के रूप में उपयोग करने के लिए कहा जाता है।

    हालाँकि, डॉकस्ट्रिंग्स स्ट्रिंग शाब्दिक हैं, जिन्हें जब मल्टी-लाइन टिप्पणियों के रूप में उपयोग किया जाता है, यानी बिना किसी वैरिएबल नाम निर्दिष्ट किए, अस्थायी रूप से आपके स्थानीय कंप्यूटर या रिमोट सर्वर की रैम (RAM) में संग्रहीत किया जाता है। जब आपके कोड में बड़ी मात्रा में डॉकस्ट्रिंग्स का उपयोग किया जाता है, तो इससे प्रदर्शन संबंधी समस्याएं हो सकती हैं, जैसे वेब-पेजों की धीमी लोडिंग, हैंग होना आदि।

स्ट्रिंग लिटरल्स का सूचकांक (Indexing)

    एक स्ट्रिंग शाब्दिक एक या अधिक वर्णों का संग्रह है। रिक्त स्थान सहित प्रत्येक वर्ण की कुछ स्थिति (position) होती है, और इसे उस वर्ण की सूचकांक संख्या (index number) के रूप में दर्शाया जा सकता है। आप इन सूचकांक संख्याओं की सहायता से, एक स्ट्रिंग शाब्दिक से अलग-अलग वर्ण तक पहुंच (access) सकते हैं। पहला सूचकांक संख्या (बाएं से दाएं) 0 (शून्य) है, और अंतिम सूचकांक संख्या len( 'H' ) - 1 है, जब एक स्ट्रिंग शाब्दिक में केवल एक वर्ण होता है तब यह 0 है।

बाएं ओर से:    0,  1,   2,   3,   4,   5,  6,  7,  8,  9,   10,  ...

दाएं ओर से:   -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11 ...

    किसी स्ट्रिंग शाब्दिक की अंतिम सूचकांक संख्या को ऋणात्मक पूर्णांकों के साथ भी एक्सेस किया (पहुंचा) जा सकता है, अर्थात -1 (दांये से बांये तक)। इस प्रकार, पहला सूचकांक संख्या (len() के आउटपुट का ऋणात्मक मान) - len( 'H' ) है। सूचकांक संख्या केवल पूर्णांक मान हो सकती है, न कि फ़्लोट आदि। स्ट्रिंग शाब्दिक में किसी वर्ण के मान को स्ट्रिंग शाब्दिक या चर नाम (जिसके लिए इसे सौंपा गया है,) के ठीक बाद [] (वर्गाकार कोष्ठक) के साथ सूचकांक संख्या का उल्लेख करके, तक पहुँचा जा सकता है।

    निम्नलिखित उदाहरण में, आप देख सकते हैं कि, वेरिएबल नाम my_string के बाईं ओर से पहला अक्षर को
        my_string[0] # (धनात्मक positive) या
        my_string[ -len( my_string ) ] # (ऋणात्मक negative)
# बाएं से दूसरे अक्षर को
        my_string[1] # (धनात्मक) या
        my_string[ -len( my_string ) + 1 ] # (ऋणात्मक),
# और इसी तरह से अन्य अक्षरों तक पहुंचा जा सकता है।

# आप बाएं से अंतिम (या दाएं से पहला) अक्षर को
        my_string[ ( len( my_string ) - 1 ) ] # (धनात्मक) या
        my_string[ -1 ] # (ऋणात्मक) द्वारा पहुंचा जा सकता है
# बाएं से दूसरे अंतिम अक्षर को

        my_string[ ( len( my_string ) - 2 ) ] # (धनात्मक) या
        my_string[ -2 ] # (ऋणात्मक)
# द्वारा पहुंचा जा सकता है

my_string = 'Hello World'

print( my_string[0] )   # बाएं से पहले स्थान पर आउटपुट H है
print( my_string[1] )   # बाएं से दूसरे स्थान पर आउटपुट e है

print( my_string[-1] )   # बाएं से अंतिम स्थिति पर आउटपुट d है
print( my_string[-2] )   # दाएं से दूसरे स्थान पर आउटपुट l है

length_of_my_string = len( my_string )
print( length_of_my_string )   # आउटपुट 11 है

print( my_string[ -length_of_my_string ] )   # दाएं से अंतिम स्थिति पर आउटपुट H है
print( my_string[ (-length_of_my_string + 1) ] )   # दाएं से दूसरे अंतिम स्थान पर आउटपुट e है

print( my_string[ length_of_my_string - 1 ] )   # बाईं ओर से अंतिम स्थान पर आउटपुट d है
print( my_string[ length_of_my_string - 2 ] )   # बाएं से अंतिम दूसरे स्थान पर आउटपुट l है

# ऋणात्मक संख्या से घटाने पर आउटपुट अधिक ऋणात्मक मान देगा
# उदाहरण के लिए, -5 - 1 = -6, लेकिन -5 + 1 = -4

    यदि आप उपरोक्त उदाहरण से भ्रमित हैं, तो नीचे दी गई तालिका का अनुसरण करें। लेकिन, वास्तविक दुनिया के उदाहरण में, जब एक स्ट्रिंग की लंबाई ज्ञात नहीं होती है, तो आपको len() अंतर्निहित फ़ंक्शन का उपयोग करना होगा जो स्ट्रिंग में वर्णों की कुल संख्या को आउटपुट करता है। चूँकि धनात्मक सूचकांक संख्या 0 (शून्य) से प्रारंभ होता है len() फ़ंक्शन का आउटपुट हमेशा अंतिम इंडेक्स संख्या से एक अधिक होता है। इसके अलावा, नकारात्मक सूचकांक संख्या (दाएं से बाएं) से -1 (ऋणात्मक एक) शुरू होता है, इसलिए दाएँ से बाएँ अंतिम वर्ण (या बाएँ से दाएँ पहला वर्ण) len() फ़ंक्शन के आउटपुट का नकारात्मक (ऋणात्मक) होगा।

Hello World
012345678910
-11-10-9-8-7-6-5-4-3-2-1

my_string = 'Hello World'

# ध्यान दें कि निम्नलिखित उदाहरण में, रिक्त स्थान नई पंक्ति में प्रदर्शित होता है
for one_char in my_string:
  print( one_char )

    आम तौर पर, for लूप का उपयोग अनुक्रम डेटा-प्रकार से एक वर्ण या एक आइटम को निकालने (extract) के लिए किया जाता है। अगले पृष्ठों में, आप स्ट्रिंग विधियों (methods) और अन्य डेटा-प्रकारों के बारे में जानेंगे।


Leave a Comment: