स्ट्रिंग (String) वर्णों (Characters) का एक क्रम है, जिसे पाइथन में कोट्स के अंदर लिखा जाता है। पाइथन में स्ट्रिंग बनाने के लिए सिंगल कोट्स ('...'), डबल कोट्स ("...") या ट्रिपल कोट्स ('...' या "...") का उपयोग किया जा सकता है। स्ट्रिंग अपरिवर्तनीय (Immutable) होती है, अर्थात स्ट्रिंग बनने के बाद उसके वर्णों को सीधे बदला नहीं जा सकता। स्ट्रिंग पर स्लाइसिंग, इंडेक्सिंग, संयोजन और विभिन्न अंतर्निहित (Built-in) फ़ंक्शन लागू होते हैं। यह अध्याय पाइथन में टेक्स्ट प्रोसेसिंग का आधार है।
s1 = "नमस्ते"
s2 = 'पाइथन'
s3 = """बहु-पंक्ति
स्ट्रिंग"""
s4 = ''
s5 = " "
len() फ़ंक्शन स्ट्रिंग की लंबाई (वर्णों की संख्या) देता है।s = "पाइथन"
print(len(s)) # 6
स्ट्रिंग के प्रत्येक वर्ण की एक स्थिति (इंडेक्स) होती है। इंडेक्सिंग दो प्रकार से हो सकती है:
s = "पाइथन"
# प - 0, ा - 1, ि - 2, थ - 3, न - 4
print(s[0]) # प
print(s[3]) # थ
print(s[-1]) # न (अंतिम वर्ण)
print(s[-2]) # थ
स्लाइसिंग से स्ट्रिंग का कोई भाग (सबस्ट्रिंग) प्राप्त किया जा सकता है। वाक्य-विन्यास: 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]) # "नथािप" (स्ट्रिंग उल्टी)
a = "Hello"
b = "World"
print(a + " " + b) # Hello World
print(a * 2) # HelloHello
print("o" in "Hello") # True
print("z" not in "Hello") # True
स्ट्रिंगों की तुलना शब्दकोशीय (Lexicographic) क्रम में होती है।
print("apple" < "banana") # True
s = "पाइथन"
print(len(s)) # लंबाई
print(max(s)) # अधिकतम वर्ण (यूनिकोड)
print(min(s)) # न्यूनतम वर्ण
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
स्ट्रिंग अपरिवर्तनीय है, अर्थात किसी इंडेक्स पर वर्ण बदलने का प्रयास करने पर TypeError आती है।
s = "पाइथन"
# s[0] = "त" # TypeError: 'str' object does not support item assignment
स्ट्रिंग को बदलने के लिए नई स्ट्रिंग बनानी पड़ती है।
s = "पाइथन"
s = "त" + s[1:] # नई स्ट्रिंग: "ताइथन"
print(ord("A")) # 65 (यूनिकोड कोड)
print(chr(97)) # 'a' (कोड से वर्ण)
ord() वर्ण का यूनिकोड मान देता है।chr() यूनिकोड मान से वर्ण लौटाता है।s = input("एक शब्द दर्ज करें: ")
if s == s[::-1]:
print("पैलिंड्रोम है")
else:
print("पैलिंड्रोम नहीं है")
s = input("वाक्य दर्ज करें: ")
vowels = "aeiouAEIOU"
count = 0
for ch in s:
if ch in vowels:
count = count + 1
print("स्वरों की संख्या:", count)
s = "पाइथन सीखना बहुत आसान है"
words = s.split()
print("शब्दों की संख्या:", len(words))
कुछ विशेष वर्णों को स्ट्रिंग में दर्शाने के लिए बैकस्लैश () से शुरू होने वाले कोड का उपयोग होता है, जिन्हें एस्केप अनुक्रम कहते हैं। ये अनुक्रम स्ट्रिंग के अंदर विशेष प्रारूप (जैसे नई पंक्ति या टैब) लाने में सहायक होते हैं।
| एस्केप अनुक्रम | कार्य |
|---|---|
| \n | नई पंक्ति (New Line) |
| \t | टैब (अंतर) |
| \' | सिंगल कोट |
| \" | डबल कोट |
| \\ | बैकस्लैश |
print("पहली पंक्ति\nदूसरी पंक्ति")
print("नाम\tआयु")
print("यह एक \"कोट\" है")
print("बैकस्लैश: \\")
स्ट्रिंग के प्रत्येक वर्ण को for लूप के द्वारा एक-एक करके प्राप्त किया जा सकता है। इसे स्ट्रिंग ट्रैवर्सल कहते हैं। इंडेक्स के साथ ट्रैवर्स करने के लिए range() और len() का उपयोग होता है।
word = "पाइथन"
for ch in word:
print(ch, end=" ")
print()
for i in range(len(word)):
print(i, word[i])
ट्रैवर्सल के द्वारा हम स्वरों की गिनती, बड़े अक्षरों की जाँच या किसी विशेष वर्ण की उपस्थिति जैसी कई समस्याओं को हल कर सकते हैं। यह स्ट्रिंग प्रोसेसिंग की सबसे बुनियादी तकनीक है, जिस पर आगे के कई प्रोग्राम आधारित होते हैं।
स्ट्रिंग मेथड वास्तविक जीवन के डेटा साफ़ करने (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() जैसे मेथड का उपयोग किया जाता है। स्ट्रिंग मेथड की ये क्षमताएँ विद्यार्थी को टेक्स्ट आधारित समस्याओं को हल करने में सक्षम बनाती हैं, चाहे वह प्रश्नपत्र निर्माण हो, नाम सूची हो या संदेश प्रोसेसिंग।
| मेथड | कार्य | उदाहरण | परिणाम |
|---|---|---|---|
| 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 |
| प्रकार | दिशा | प्रारंभ | उदाहरण (s="पाइथन") |
|---|---|---|---|
| धनात्मक | बाएँ से दाएँ | 0 | s[0] = प |
| ऋणात्मक | दाएँ से बाएँ | -1 | s[-1] = न |
| मेथड | सत्य होने पर |
|---|---|
| isalpha() | सभी वर्ण अक्षर हों |
| isdigit() | सभी वर्ण अंक हों |
| isalnum() | सभी वर्ण अक्षर या अंक हों |
| isspace() | सभी वर्ण रिक्ति हों |
स्ट्रिंग्स अध्याय पाइथन में टेक्स्ट प्रोसेसिंग का आधार है। स्ट्रिंग निर्माण, इंडेक्सिंग, स्लाइसिंग और विभिन्न अंतर्निहित मेथड के ज्ञान से विद्यार्थी पाठ्य डेटा को कुशलता से संसाधित कर सकता है। स्ट्रिंग की अपरिवर्तनीयता को समझना आवश्यक है, क्योंकि इसी पर आधारित गलतियाँ परीक्षा में अंक कटवा सकती हैं। ord() और chr() जैसे फ़ंक्शन वर्ण कोडिंग से जुड़ते हैं। स्ट्रिंग की ठोस समझ आगे के अध्यायों (लिस्ट्स, टपल्स, डिक्शनरी) में भी उपयोगी होगी, क्योंकि इन सभी में अनुक्रम और अनुक्रमण की अवधारणाएँ समान हैं।