टेक्स्ट के साथ काम — इंडेक्सिंग, स्लाइसिंग और f-strings
टेक्स्ट से टुकड़े निकालना, उसे साफ़ करना, बदलना और f-strings से पठनीय संदेश बनाना — साथ ही यह नियम कि टेक्स्ट को सीधे उसी स्थान पर नहीं बदला जा सकता।
- 1समस्या
- 2समझें
- 3उदाहरण
- 4अनुमान
- 5स्वयं करें
- 6चुनौती
वह समस्या जिसे हम हल कर रहे हैं
एक फ़ॉर्म से नाम प्राप्त हुआ: " Rafi Ahmed "। दोनों सिरों पर अतिरिक्त स्पेस हैं, और आपको केवल पहला नाम और एक स्वागत संदेश चाहिए — "Welcome, Rafi!"।
टेक्स्ट को साफ़ करना, उसके टुकड़े अलग करना और उनसे नई चीज़ें बनाना प्रोग्रामिंग के सबसे आम कार्यों में से एक है। यूज़रनेम, ईमेल पते, आईडी, फ़ाइल नाम, एपीआई से मिलने वाला डेटा — सब कुछ टेक्स्ट ही है।
और आज एक बहुत महत्वपूर्ण बात स्पष्ट होगी: पायथन में, स्ट्रिंग (टेक्स्ट) को सीधे बदला नहीं जा सकता (Strings are immutable)। name.upper() लिखने से मूल name वेरिएबल अपरकेस नहीं बन जाता। ऐसा क्यों है और इसके बदले क्या करना चाहिए, यह इस मिशन का सबसे मूल्यवान हिस्सा है।
इस मिशन के अंत तक आप सीखेंगे
- इंडेक्स द्वारा आगे और पीछे से किसी भी वर्ण (character) तक पहुँचना
- स्लाइसिंग (slicing) के साथ टेक्स्ट का एक हिस्सा काटना
strip,upper,lower,replaceऔरsplitके साथ टेक्स्ट साफ़ करना और बदलना- यह समझना कि मेथड के परिणाम को किसी वेरिएबल में सुरक्षित रखना क्यों ज़रूरी है
- f-strings के साथ साफ़ और पठनीय संदेश बनाना
पूर्वापेक्षाएँ: वेरिएबल और प्रकार.
उद्धरण चिह्न (Quotes)
पायथन में 'Rafi' और "Rafi" एक ही चीज़ हैं:
print("It's working")
print('She said "yes"')It's working
She said "yes"तीन उद्धरण चिह्न (""") कई पंक्तियों में फैले टेक्स्ट को संभालते हैं:
note = """Dear customer,
Your order is confirmed.
Thank you."""
print(note)Dear customer,
Your order is confirmed.
Thank you.एक संपूर्ण उदाहरण
account.py:
# Turn a raw form entry into a clean display name and a login id
raw_input_name = " Rafi Ahmed "
domain = "example.com"
clean = raw_input_name.strip()
parts = clean.split(" ")
first_name = parts[0]
last_name = parts[-1]
login_id = f"{first_name.lower()}.{last_name.lower()}"
email = f"{login_id}@{domain}"
initials = f"{first_name[0]}{last_name[0]}"
print(f"Display name : {clean}")
print(f"Login id : {login_id}")
print(f"Email : {email}")
print(f"Initials : {initials}")
print(f"Name length : {len(clean)} characters")Display name : Rafi Ahmed
Login id : rafi.ahmed
Email : rafi.ahmed@example.com
Initials : RA
Name length : 10 charactersparts[-1] क्यों? क्योंकि नाम में दो या तीन शब्द हो सकते हैं। पीछे से अंतिम भाग लेना हमेशा काम करता है।
सामान्य गलतियाँ और समाधान
IndexError: string index out of range माँगा गया इंडेक्स टेक्स्ट की लंबाई से अधिक है। यदि len(word) 6 है, तो मान्य इंडेक्स 0 से 5 तक हैं।
मेथड कॉल किया लेकिन टेक्स्ट में कोई बदलाव नहीं हुआ स्ट्रिंग अपरिवर्तनीय (immutable) हैं। name.strip() मूल name को नहीं बदलता; आपको इसे सहेजना होगा: name = name.strip().
strip() बीच के स्पेस नहीं हटा रहा है strip() केवल दोनों सिरों के स्पेस हटाता है। बीच के स्पेस हटाने के लिए replace(" ", "") का उपयोग करें।
चरण 4 / 6 — अनुमान
अपनी समझ की जाँच करें
What is the output of these four lines?
word = "PYTHON"
print(word[0])
print(word[-1])
print(word[1:4])- AP N YTH
- BP N YTHO
- CP O YTH
- DY N YTHO
The intent was to print Hello, RAFI!, but the name comes out lowercase and still padded with spaces. Why?
name = " rafi "
name.strip()
name.upper()
print(f"Hello, {name}!")- A`strip()` and `upper()` do not change the original — they return new text, so the result has to be assigned back to `name`
- BA method can only be called once on a piece of text, not twice
- CAn f-string cannot show the result of a method
- D`strip()` cannot be called before `upper()`; the order has to be reversed
What does this f-string print?
item = "pen"
qty = 3
price = 12.5
print(f"{qty} x {item} = {qty * price:.2f}")- A3 x pen = 37.50
- B3 x pen = 37.5
- C{qty} x {item} = {qty * price}
- D3 x pen = 3 * 12.5
उत्तर देने के लिए अकाउंट आवश्यक है
अपने उत्तर जाँचने के लिए साइन इन करें
प्रश्न ऊपर दिए गए हैं, और मन में उत्तर सोचना ही मुख्य कार्य है। सही उत्तर, व्याख्या और तीन-स्तरीय संकेत देखने के लिए साइन इन करें।
आपकी बारी
slug.py नाम से एक फ़ाइल लिखें जो किसी शीर्षक को वेब एड्रेस (URL slug) के उपयुक्त प्रारूप में बदले:
आरंभिक मान: title = " Learn Python Step By Step "
आउटपुट ऐसा होना चाहिए:
Title : Learn Python Step By Step
Slug : learn-python-step-by-step
Slug length: 25शर्तें:
- दोनों सिरों के अतिरिक्त स्पेस हटाएँ (
strip) - सभी अक्षरों को लोअरकेस करें (
lower) - बीच के स्पेस को हाइफ़न (
-) से बदलें (replace) - तीनों पंक्तियों को f-strings से प्रिंट करें
There is more in this mission
What you read above is the complete mission — nothing was cut out of it. Pro adds:
- भीतर वास्तव में क्या होता है — पायथन इसे कैसे निष्पादित करता है
- अभ्यास का संपूर्ण समाधान, चरण-दर-चरण स्पष्टीकरण के साथ
- कठिन अतिरिक्त अभ्यास
- इस विषय पर साक्षात्कार में क्या पूछा जाता है और उसका आदर्श उत्तर
Step 6 of 6
चुनौती — the chapter quiz
सरल से कठिन — दस प्रश्न, अंतिम वाले जानबूझकर चुनौतीपूर्ण बनाए गए हैं।
Sign in to take the quiz