स्ट्रिंग बनाना और इंडेक्सिंग
स्ट्रिंग उद्धरण चिह्नों में: 'Hi', "Hi", या '''कई पंक्तियाँ'''। स्ट्रिंग इम्यूटेबल है: s[0] = 'J' से TypeError।
इंडेक्सिंग: s = 'PYTHON' → s[0] = 'P', s[5] = 'N', s[-1] = 'N', s[-6] = 'P'। सीमा से बाहर इंडेक्स पर IndexError। len(s) = 6।
स्ट्रिंग संक्रियाएँ: जोड़ना, दोहराना, सदस्यता, स्लाइसिंग
- जोड़ना (+):
'Hi' + 'Ram'→ 'HiRam'। दोनों ओर स्ट्रिंग चाहिए:'Age' + 16से TypeError;str(16)लें। - दोहराना (*):
'ab' * 3→ 'ababab'। - सदस्यता:
'TH' in 'PYTHON'→ True;'z' not in 'PYTHON'→ True। - स्लाइसिंग s[start:stop:step]:
s[1:4]→ 'YTH',s[:3]→ 'PYT',s[3:]→ 'HON',s[::2]→ 'PTO',s[-3:]→ 'HON',s[::-1]→ 'NOHTYP'। स्लाइस कभी IndexError नहीं देती।
स्ट्रिंग का ट्रैवर्सल
s = 'PYTHON'
for ch in s: # अक्षर से
print(ch, end=' ')
for i in range(len(s)): # इंडेक्स से
print(i, s[i])
i = 0
while i < len(s): # while से
print(s[i]); i += 1स्वर गिनना: v = 0; for ch in s.lower(): if ch in 'aeiou': v += 1।
बिल्ट-इन स्ट्रिंग फ़ंक्शन और मेथड
| मेथड | उदाहरण → परिणाम |
|---|---|
| len(s) | len('cat') → 3 |
| upper(), lower() | 'Hi'.upper() → 'HI' |
| title(), capitalize() | 'hello world'.title() → 'Hello World'; .capitalize() → 'Hello world' |
| count(sub) | 'banana'.count('a') → 3 |
| find(sub) / index(sub) | 'banana'.find('n') → 2; न मिले तो find −1, index ValueError |
| replace(old, new) | 'cat'.replace('c', 'b') → 'bat' |
| split(sep), join(list) | 'a b c'.split() → ['a', 'b', 'c']; '-'.join(['a', 'b']) → 'a-b' |
| strip(), lstrip(), rstrip() | ' hi '.strip() → 'hi' |
| startswith(), endswith() | 'python'.startswith('py') → True |
| isalpha(), isdigit(), isalnum() | 'abc1'.isalnum() → True |
| islower(), isupper(), isspace() | 'ABC'.isupper() → True |
| partition(sep) | 'a=b'.partition('=') → ('a', '=', 'b') |
इनमें से कोई s को नहीं बदलता; सब नया मान लौटाते हैं।
बोर्ड परीक्षा पर ध्यान
स्लाइसिंग और मेथड पर आउटपुट प्रश्न (1–2 अंक) और प्रोग्राम: स्वर/बड़े अक्षर/अंक गिनना, पैलिंड्रोम, शब्द उलटना, केस बदलना, अक्षर बदलना (3 अंक)।
मुख्य सूत्र और परिभाषाएँ
- इंडेक्स: बाएँ से 0 … len−1; दाएँ से −1 … −len
- s[start:stop:step] — stop शामिल नहीं
- + जोड़ · * दोहराव · in सदस्यता
- स्ट्रिंग इम्यूटेबल; मेथड नई स्ट्रिंग देते हैं
- find() → न मिले तो −1; index() → ValueError
हल किए गए उदाहरण
1. s = 'COMPUTER'। s[2], s[-2], s[2:5], s[::-2] निकालें।
s[2] = 'M'; s[-2] = 'E'; s[2:5] = 'MPU'; s[::-2] = 'RTPO' (इंडेक्स 7, 5, 3, 1)।
2. आउटपुट? print('ab' * 2 + 'c', 'b' in 'abc', len('Hi there'))
ababc True 8
3. 'Class11A' में बड़े, छोटे अक्षर और अंक गिनें।
u = l = d = 0 for ch in 'Class11A': if ch.isupper(): u += 1 elif ch.islower(): l += 1 elif ch.isdigit(): d += 1 # u = 2, l = 4, d = 2
4. स्ट्रिंग पैलिंड्रोम है या नहीं जाँचें।
s = input().lower() if s == s[::-1]: print('पैलिंड्रोम') else: print('पैलिंड्रोम नहीं') # 'Madam' → पैलिंड्रोम
5. आउटपुट? s = 'hello world'; print(s.title(), s.find('o'), s.count('l'), s.replace('l', 'L', 1))
Hello World 4 3 heLlo world
6. swapcase() के बिना हर अक्षर का केस बदलें।
r = '' for ch in s: if ch.isupper(): r += ch.lower() else: r += ch.upper() # 'PyThOn' → 'pYtHoN'
7. वाक्य का हर शब्द अलग पंक्ति में और शब्दों की संख्या छापें।
w = 'I love Python'.split() for x in w: print(x) print(len(w)) # 3
आम गलतियाँ
- अक्षर बदलने की कोशिश: s[0] = 'J'। स्ट्रिंग इम्यूटेबल है; नई स्ट्रिंग बनाएँ।
- s[1:4] में इंडेक्स 4 शामिल समझना।
- स्ट्रिंग और संख्या को + से जोड़ना। पहले str() लगाएँ।
- सोचना कि upper() s बदल देता है। परिणाम रखने के लिए s = s.upper() लिखें।