string मॉड्यूल उपयोगी कांस्टेंट्स, क्लासेस, और हेल्पर फंक्शन capwords() प्रदान करता है।
महत्वपूर्ण कांस्टेंट्स
| कांस्टेंट | विवरण | उदाहरण |
|---|---|---|
ascii_letters | लोअरकेस + अपरकेस | abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ |
ascii_lowercase | लोअरकेस अक्षर | abcdefghijklmnopqrstuvwxyz |
ascii_uppercase | अपरकेस अक्षर | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
digits | अंक | 0123456789 |
hexdigits | हेक्साडेसिमल अंक | 0123456789abcdefABCDEF |
octdigits | ऑक्टल अंक | 01234567 |
punctuation | विराम चिह्न | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ |
whitespace | व्हाइटस्पेस कैरेक्टर्स | स्पेस, टैब, न्यूलाइन, आदि |
printable | प्रिंट करने योग्य सभी | digits + letters + punctuation + whitespace |
उपयोग उदाहरण
import string print(string.ascii_letters) print(string.digits) print(string.punctuation) print(string.whitespace)
capwords() फंक्शन
प्रत्येक शब्द को कैपिटलाइज़ करता है:
- स्ट्रिंग को शब्दों में विभाजित करता है (
str.split()) - प्रत्येक शब्द को कैपिटलाइज़ करता है (
str.capitalize()) - शब्दों को जोड़ता है (
str.join())
import string text = 'all animals are equal. some are more equal' result = string.capwords(text) print(result) # All Animals Are Equal. Some Are More Equal
Formatter क्लास
कस्टम स्ट्रिंग फॉर्मेटिंग के लिए string.Formatter को सबक्लास करें।
from string import Formatter
f = Formatter()
result = f.format('नाम: {name}, उम्र: {age}, अंक: {marks}', name='राहुल', age=30, marks=50)
print(result) # नाम: राहुल, उम्र: 30, अंक: 50
# कस्टम फॉर्मेटर
class CustomFormatter(Formatter):
def format_field(self, value, format_spec):
if format_spec == 'upper':
return str(value).upper()
return super().format_field(value, format_spec)
cf = CustomFormatter()
print(cf.format('{name:upper}', name='hello')) # HELLO
Template क्लास
सरल स्ट्रिंग सब्स्टीट्यूशन के लिए (उपयोगकर्ता इनपुट के लिए सुरक्षित):
from string import Template
template = Template('मेरा नाम $name है। मैं $age साल का हूँ।')
result = template.substitute(name='राहुल', age=30)
print(result) # मेरा नाम राहुल है। मैं 30 साल का हूँ।
# safe_substitute - मिसिंग की पर एरर नहीं
result = template.safe_substitute(name='राहुल')
print(result) # मेरा नाम राहुल है। मैं $age साल का हूँ।
Template सिंटैक्स
$varया${var}- वेरिएबल सब्स्टीट्यूशन$$- लिटरल $ चिह्न
स्ट्रिंग मेथड्स (बिल्ट-इन str क्लास)
string मॉड्यूल के अलावा, str ऑब्जेक्ट्स के कई उपयोगी मेथड्स हैं:
text = " Hello, World! "
print(text.strip()) # "Hello, World!" - व्हाइटस्पेस हटाएं
print(text.lower()) # " hello, world! "
print(text.upper()) # " HELLO, WORLD! "
print(text.title()) # " Hello, World! "
print(text.replace("World", "Python")) # " Hello, Python! "
print(text.split(",")) # [" Hello", " World! "]
print(text.startswith("He")) # True
print(text.endswith("!")) # True
print(text.find("World")) # 7 (इंडेक्स)
print("Python".center(20, "-")) # "-------Python-------"
print("42".zfill(5)) # "00042"
फॉर्मेटिंग के आधुनिक तरीके
name = "राहुल"
age = 30
# f-strings (पायथन 3.6+) - अनुशंसित
print(f"नाम: {name}, उम्र: {age}")
# str.format()
print("नाम: {}, उम्र: {}".format(name, age))
print("नाम: {n}, उम्र: {a}".format(n=name, a=age))
# % फॉर्मेटिंग (पुराना)
print("नाम: %s, उम्र: %d" % (name, age))
उपयोगी रेसिपी
import string
import random
# रैंडम पासवर्ड जनरेटर
def generate_password(length=12):
chars = string.ascii_letters + string.digits + string.punctuation
return ''.join(random.choice(chars) for _ in range(length))
# स्लग जनरेटर (URL-फ्रेंडली)
def slugify(text):
text = text.lower()
for char in string.punctuation + string.whitespace:
text = text.replace(char, '-')
# मल्टीपल हाइफन्स को सिंगल में बदलें
while '--' in text:
text = text.replace('--', '-')
return text.strip('-')
print(generate_password())
print(slugify("Hello, World! This is Python."))