🔬
🧬
🔭
🪐
🧪
← डैशबोर्ड पर वापस जाएँ
Font Size:

1. परिचय

स्ट्रिंग (String) वर्णों (Characters) का एक क्रम है, जिसे पाइथन में कोट्स के अंदर लिखा जाता है। पाइथन में स्ट्रिंग बनाने के लिए सिंगल कोट्स ('...'), डबल कोट्स ("...") या ट्रिपल कोट्स ('...' या "...") का उपयोग किया जा सकता है। स्ट्रिंग अपरिवर्तनीय (Immutable) होती है, अर्थात स्ट्रिंग बनने के बाद उसके वर्णों को सीधे बदला नहीं जा सकता। स्ट्रिंग पर स्लाइसिंग, इंडेक्सिंग, संयोजन और विभिन्न अंतर्निहित (Built-in) फ़ंक्शन लागू होते हैं। यह अध्याय पाइथन में टेक्स्ट प्रोसेसिंग का आधार है।

2. स्ट्रिंग निर्माण (Creating Strings)

s1 = "नमस्ते"
s2 = 'पाइथन'
s3 = """बहु-पंक्ति
स्ट्रिंग"""
s4 = ''
s5 = " "
s = "पाइथन"
print(len(s))   # 6

3. स्ट्रिंग इंडेक्सिंग (String Indexing)

स्ट्रिंग के प्रत्येक वर्ण की एक स्थिति (इंडेक्स) होती है। इंडेक्सिंग दो प्रकार से हो सकती है:

  1. धनात्मक इंडेक्सिंग: बाएँ से दाएँ, 0 से शुरू।
  2. ऋणात्मक इंडेक्सिंग: दाएँ से बाएँ, -1 से शुरू।
s = "पाइथन"
# प - 0, ा - 1, ि - 2, थ - 3, न - 4
print(s[0])     # प
print(s[3])     # थ
print(s[-1])    # न (अंतिम वर्ण)
print(s[-2])    # थ

4. स्ट्रिंग स्लाइसिंग (String Slicing)

स्लाइसिंग से स्ट्रिंग का कोई भाग (सबस्ट्रिंग) प्राप्त किया जा सकता है। वाक्य-विन्यास: string[start:end] या string[start:end:step]

s = "पाइथन प्रोग्रामिंग"
print(s[0:6])      # "पाइथन"
print(s[7:])       # 7 से अंत तक
print(s[:6])       # प्रारंभ से 6 तक
print(s[-10:])     # अंतिम 10 वर्ण
print(s[::2])      # एक वर्ण छोड़कर

स्लाइसिंग के नियम

s = "पाइथन"
print(s[::-1])     # "नथािप" (स्ट्रिंग उल्टी)

5. स्ट्रिंग संचालन (String Operations)

संयोजन (Concatenation) और पुनरावृत्ति (Repetition)

a = "Hello"
b = "World"
print(a + " " + b)   # Hello World
print(a * 2)         # HelloHello

मेंबरशिप ऑपरेटर

print("o" in "Hello")        # True
print("z" not in "Hello")    # True

तुलना (Comparison)

स्ट्रिंगों की तुलना शब्दकोशीय (Lexicographic) क्रम में होती है।

print("apple" < "banana")    # True

6. स्ट्रिंग के अंतर्निहित फ़ंक्शन और मेथड (Built-in Functions and Methods)

सामान्य फ़ंक्शन

s = "पाइथन"
print(len(s))       # लंबाई
print(max(s))       # अधिकतम वर्ण (यूनिकोड)
print(min(s))       # न्यूनतम वर्ण

मेथड (Methods)

s = "  Python Programming  "
print(s.upper())          # PYTHON PROGRAMMING
print(s.lower())          # python programming
print(s.strip())          # सिरों की रिक्ति हटाना
print(s.title())          # प्रत्येक शब्द का पहला अक्षर बड़ा
print(s.replace("Python", "पाइथन"))
print(s.split())          # शब्दों की सूची
print("-".join(["a", "b", "c"]))   # a-b-c
print("Hello".find("lo")) # उप-स्ट्रिंग की स्थिति
print("Hello".count("l")) # गिनती
print("abc".isalpha())    # True
print("123".isdigit())    # True

स्ट्रिंग मेथड के प्रकार

7. स्ट्रिंग अपरिवर्तनीयता (String Immutability)

स्ट्रिंग अपरिवर्तनीय है, अर्थात किसी इंडेक्स पर वर्ण बदलने का प्रयास करने पर TypeError आती है।

s = "पाइथन"
# s[0] = "त"    # TypeError: 'str' object does not support item assignment

स्ट्रिंग को बदलने के लिए नई स्ट्रिंग बनानी पड़ती है।

s = "पाइथन"
s = "त" + s[1:]   # नई स्ट्रिंग: "ताइथन"

8. वर्ण प्रकार से संबंधित फ़ंक्शन

print(ord("A"))    # 65 (यूनिकोड कोड)
print(chr(97))     # 'a' (कोड से वर्ण)

9. प्रैक्टिकल उदाहरण (Practical Examples)

उदाहरण 1: स्ट्रिंग का पैलिंड्रोम होना जाँचना

s = input("एक शब्द दर्ज करें: ")
if s == s[::-1]:
    print("पैलिंड्रोम है")
else:
    print("पैलिंड्रोम नहीं है")

उदाहरण 2: स्वरों की गिनती

s = input("वाक्य दर्ज करें: ")
vowels = "aeiouAEIOU"
count = 0
for ch in s:
    if ch in vowels:
        count = count + 1
print("स्वरों की संख्या:", count)

उदाहरण 3: शब्दों की गिनती

s = "पाइथन सीखना बहुत आसान है"
words = s.split()
print("शब्दों की संख्या:", len(words))

10. एस्केप अनुक्रम (Escape Sequences)

कुछ विशेष वर्णों को स्ट्रिंग में दर्शाने के लिए बैकस्लैश () से शुरू होने वाले कोड का उपयोग होता है, जिन्हें एस्केप अनुक्रम कहते हैं। ये अनुक्रम स्ट्रिंग के अंदर विशेष प्रारूप (जैसे नई पंक्ति या टैब) लाने में सहायक होते हैं।

एस्केप अनुक्रम कार्य
\n नई पंक्ति (New Line)
\t टैब (अंतर)
\' सिंगल कोट
\" डबल कोट
\\ बैकस्लैश
print("पहली पंक्ति\nदूसरी पंक्ति")
print("नाम\tआयु")
print("यह एक \"कोट\" है")
print("बैकस्लैश: \\")

11. स्ट्रिंग ट्रैवर्सल (Traversing a String)

स्ट्रिंग के प्रत्येक वर्ण को for लूप के द्वारा एक-एक करके प्राप्त किया जा सकता है। इसे स्ट्रिंग ट्रैवर्सल कहते हैं। इंडेक्स के साथ ट्रैवर्स करने के लिए range() और len() का उपयोग होता है।

word = "पाइथन"
for ch in word:
    print(ch, end=" ")
print()

for i in range(len(word)):
    print(i, word[i])

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

12. स्ट्रिंग मेथड के व्यावहारिक उपयोग (Practical Use of String Methods)

स्ट्रिंग मेथड वास्तविक जीवन के डेटा साफ़ करने (Data Cleaning) के कार्यों में अत्यधिक उपयोगी हैं। उदाहरण के लिए, उपयोगकर्ता से नाम लेते समय उसके आगे-पीछे की रिक्ति हटाने के लिए strip(), उसे सही रूप में लिखने के लिए title() और सभी अक्षरों को एक समान करने के लिए lower() का उपयोग किया जा सकता है। खोज (find), प्रतिस्थापन (replace) और विभाजन (split) का उपयोग वाक्यों के शब्दों को अलग करने, नामों को घुमाने और फ़ाइल डेटा को प्रोसेस करने में होता है।

raw = input("पूरा नाम दर्ज करें: ")
cleaned = raw.strip().title()
print("स्वागत है,", cleaned)

sentence = "आज, मौसम, बहुत, सुहाना, है"
parts = sentence.split(", ")
print("शब्द:", parts)

text = "पाइथन सरल है"
print(text.replace("सरल", "शक्तिशाली"))

इसी प्रकार, किसी ईमेल पते या फ़ोन नंबर की वैधता जाँचने के लिए isdigit() और isalnum() जैसे मेथड का उपयोग किया जाता है। स्ट्रिंग मेथड की ये क्षमताएँ विद्यार्थी को टेक्स्ट आधारित समस्याओं को हल करने में सक्षम बनाती हैं, चाहे वह प्रश्नपत्र निर्माण हो, नाम सूची हो या संदेश प्रोसेसिंग।

त्वरित पुनरावृत्ति तालिकाएँ

तालिका 1: सामान्य स्ट्रिंग मेथड

मेथड कार्य उदाहरण परिणाम
upper() बड़े अक्षर "hi".upper() "HI"
lower() छोटे अक्षर "HI".lower() "hi"
strip() रिक्ति हटाना " a ".strip() "a"
replace() प्रतिस्थापन "ab".replace("a","x") "xb"
split() विभाजन "a b".split() ["a","b"]
find() स्थिति खोज "abc".find("b") 1

तालिका 2: इंडेक्सिंग प्रकार

प्रकार दिशा प्रारंभ उदाहरण (s="पाइथन")
धनात्मक बाएँ से दाएँ 0 s[0] = प
ऋणात्मक दाएँ से बाएँ -1 s[-1] = न

तालिका 3: जाँच मेथड

मेथड सत्य होने पर
isalpha() सभी वर्ण अक्षर हों
isdigit() सभी वर्ण अंक हों
isalnum() सभी वर्ण अक्षर या अंक हों
isspace() सभी वर्ण रिक्ति हों

माइंड मैप

graph TD A["स्ट्रिंग्स"] --> B["निर्माण और इंडेक्सिंग"] A --> C["स्लाइसिंग"] A --> D["संचालन"] A --> E["मेथड"] A --> F["अपरिवर्तनीयता"] B --> G["धनात्मक 0 से"] B --> H["ऋणात्मक -1 से"] C --> I["string[start:end:step]"] D --> J["संयोजन +, पुनरावृत्ति *"] D --> K["मेंबरशिप in"] E --> L["केस, जाँच, खोज, संशोधन"] F --> M["s[0] = 'x' → TypeError"]

महत्वपूर्ण आरेख (SVG)

स्ट्रिंग इंडेक्सिंग वर्ण: ि सूचकांक: 0 1 2 3 4 -5 -4 -3 -2 -1 len(s) = 5, s[-1] = न Golden Rule: इंडेक्स 0 से शुरू
स्ट्रिंग अपरिवर्तनीय s = \"पाइथन\" s[0] = \"त\" → TypeError नई स्ट्रिंग बनाएँ s = \"त\" + s[1:] स्लाइसिंग string[start:end:step] end सम्मिलित नहीं होता s[::-1] = स्ट्रिंग उल्टी पैलिंड्रोम जाँच में उपयोगी स्वर्ण नियम: स्ट्रिंग बदली नहीं जा सकती

सामान्य गलतियाँ

  1. स्लाइसिंग में अंतिम इंडेक्स को सम्मिलित समझना; s[0:3] में केवल 0, 1, 2 शामिल होते हैं।
  2. स्ट्रिंग के वर्ण को बदलने का प्रयास करना (s[0] = "x"), जिससे TypeError आती है क्योंकि स्ट्रिंग अपरिवर्तनीय है।
  3. इंडेक्सिंग में -1 को प्रथम वर्ण मानना; -1 अंतिम वर्ण का इंडेक्स होता है।
  4. len() का उपयोग भूलना और गलत लंबाई बताना; लंबाई वर्णों की कुल संख्या होती है।
  5. upper() और title() का भ्रम; upper() पूरी स्ट्रिंग को बड़ा करता है जबकि title() प्रत्येक शब्द का पहला अक्षर।
  6. split() और join() का कार्य उलट देना; split() तोड़ता है, join() जोड़ता है।
  7. isdigit() को "12.5" के लिए True मानना; "12.5" में डॉट होने से यह False देगा।

परीक्षा युक्तियाँ

  1. स्ट्रिंग इंडेक्सिंग के प्रश्नों में धनात्मक और ऋणात्मक दोनों इंडेक्स के मान लिखने का अभ्यास करें।
  2. स्लाइसिंग के चारों रूप (start, stop, step, negative step) को उदाहरण सहित याद रखें।
  3. सामान्य मेथड (upper, lower, strip, split, join, replace, find, count) के उदाहरण लिखें।
  4. ord() और chr() के प्रश्नों के लिए 65 (A), 97 (a), 48 (0) के मान याद रखें।
  5. स्ट्रिंग अपरिवर्तनीयता को सिद्ध करने वाला उदाहरण (TypeError) लिखें।
  6. पैलिंड्रोम और स्वर गिनती जैसे प्रोग्राम लिखने का अभ्यास करें।
  7. isalpha, isdigit, isalnum जैसी जाँच मेथड के परिणाम सटीक लिखें।

निष्कर्ष

स्ट्रिंग्स अध्याय पाइथन में टेक्स्ट प्रोसेसिंग का आधार है। स्ट्रिंग निर्माण, इंडेक्सिंग, स्लाइसिंग और विभिन्न अंतर्निहित मेथड के ज्ञान से विद्यार्थी पाठ्य डेटा को कुशलता से संसाधित कर सकता है। स्ट्रिंग की अपरिवर्तनीयता को समझना आवश्यक है, क्योंकि इसी पर आधारित गलतियाँ परीक्षा में अंक कटवा सकती हैं। ord() और chr() जैसे फ़ंक्शन वर्ण कोडिंग से जुड़ते हैं। स्ट्रिंग की ठोस समझ आगे के अध्यायों (लिस्ट्स, टपल्स, डिक्शनरी) में भी उपयोगी होगी, क्योंकि इन सभी में अनुक्रम और अनुक्रमण की अवधारणाएँ समान हैं।