Python में स्ट्रिंग्स को हेरफेर करने के कई तरीके हैं। यदि आपको कोड चुनौती में Python में स्ट्रिंग के पहले अक्षर को कैपिटलाइज़ करना है, तो आप इसे कैसे करेंगे? यह लेख एक तरीके के बारे में बात करता है जिससे आप उस उद्देश्य को पूरा करने के लिए स्ट्रिंग्स को मैनिपुलेट कर सकते हैं।
प्रॉम्प्ट
एक Python स्ट्रिंग दिया गया है, एक फ़ंक्शन लिखें जो पहले अक्षर को कैपिटलाइज़ करेगा और उसे लौटाएगा।
स्पष्टीकरण प्रश्न पूछें
यह प्रॉम्प्ट नौकरी के इंटरव्यू के दौरान दिया जा सकता है। उस मामले में, इंटरव्यूअर से स्पष्टीकरण मांगें ताकि आप निश्चित हो सकें कि आप समस्या को समझते हैं।
यहां कुछ प्रश्न हैं जिनके बारे में आप सोच सकते हैं जैसे हम समस्या के करीब पहुंचते हैं:
- प्रश्न: क्या स्ट्रिंग हमेशा मौजूद रहेगी? मुझे कभी भी null या खाली स्ट्रिंग से निपटना नहीं पड़ेगा?
- उत्तर: स्ट्रिंग हमेशा मौजूद नहीं रहेगी। उन एज केस का ध्यान रखना अच्छा है!
- प्रश्न: पहला अक्षर। क्या इसका मतलब सिर्फ स्ट्रिंग का पहला अक्षर है या स्ट्रिंग में प्रत्येक शब्द का पहला अक्षर? आप इसे कैसे परिभाषित करना चाहेंगे?
- उत्तर: स्ट्रिंग का पहला अक्षर ही।
- प्रश्न: क्या पहला वर्ण हमेशा एक अक्षर होगा? क्या मुझे उन मामलों से निपटना होगा जहां स्ट्रिंग में पहला वर्ण संख्या हो सकता है?
- उत्तर: अच्छा पकड़ा। पहला अक्षर हमेशा स्ट्रिंग में पहला वर्ण नहीं हो सकता। मैं चाहता हूं कि आप स्ट्रिंग के पहले अक्षर को कैपिटलाइज़ करें।
दृष्टिकोण
इस समस्या को हल करने के कुछ अलग तरीके हैं। इसे करने का एक से अधिक सही तरीका है। यदि आप एक अलग तरीके से आते हैं, तो बढ़िया!
यदि उनसे निपटने के लिए कहा जाए तो पहले एज केस को संभालें।
यहां, हमें उस मामले को संभालने की आवश्यकता है जहां हमारे पास कोई स्ट्रिंग नहीं है, एक खाली स्ट्रिंग है, या पहला वर्ण अक्षर नहीं है। आइए अभी इसे कोड करें:
def capitalize_str(str):
if str == None: # यदि str None है
return "NoneType is not a string"
elif len(str) > 0: # यदि str मौजूद है
# पहला वर्ण किस प्रकार का है? यदि संख्या है, तो अगले अक्षर पर जाएं, यदि अक्षर है, तो इसे कैपिटलाइज़ करें।
return str # यह अस्थायी है -- हम इसे अगले चरण में बदलेंगे।
else: # यदि str खाली है
return "undefined string"
capitalize_str("hello")
यहां, हमने उन एज केस को निपटाया है जहां स्ट्रिंग None होगी या उसकी लंबाई 0 होगी। हमने अभी तक कैपिटलाइज़्ड अक्षर के साथ स्ट्रिंग को लौटाने के तर्क के साथ कुछ नहीं किया है। हमें पहले यह सुनिश्चित करने की आवश्यकता है कि यह मौजूद है।
आइए देखें कि कैसे जांचें कि स्ट्रिंग में पहला वर्ण अक्षर है या नहीं। यदि यह संख्या या विशेष वर्ण है, तो हमें अगले वर्ण पर तब तक जाने की आवश्यकता है जब तक हमें पहला अक्षर न मिल जाए। यदि यह अक्षर है, तो हम इसे कैपिटलाइज़ करते हैं और कैपिटलाइज़्ड अक्षर के साथ स्ट्रिंग लौटाते हैं। यदि हम स्ट्रिंग के अंत तक पहुंच जाते हैं और कोई अक्षर नहीं है, तो ऐसा कहें।
def capitalize_str(str):
if str == None: # यदि str None है
return "NoneType is not a string"
elif len(str) > 0: # यदि str मौजूद है
# पहला वर्ण किस प्रकार का है? यदि संख्या है, तो अगले अक्षर पर जाएं, यदि अक्षर है, तो इसे कैपिटलाइज़ करें।
i = 0
while i < len(str):
if str[i].isalpha():
return str[0:i] + str[i].upper() + str[i + 1:]
else:
i += 1
return "string does not have letters"
else: # यदि str खाली है
return "undefined string"
print(capitalize_str("christina"))
Python में मौजूद स्ट्रिंग मेथड्स में से एक है isalpha()। यह निश्चित करने के लिए जांचता है कि कोई वर्ण वर्णमाला का हिस्सा है या नहीं। यदि यह नहीं है, तो यह अगले अक्षर पर चला जाता है। जब हम पहले अक्षर वर्ण पर पहुंचते हैं, तो हम स्ट्रिंग के बाईं ओर, अपरकेस अक्षर, और स्ट्रिंग के बाकी हिस्से के संयोजन को लौटाएंगे।
Python capitalize() फ़ंक्शन है जो काम करता है क्योंकि यह पहले वर्ण को अपरकेस में बदल देता है, लेकिन यह उस एज केस को संभाल नहीं सकता जहां पहला वर्ण अक्षर नहीं है। यही कारण है कि हम व्हाइल लूप का उपयोग करके लूप करते हैं और पहले अक्षर को खोजने पर जानबूझकर व्हाइल लूप को तोड़ते हैं।
निष्कर्ष
यह इस कोड चुनौती को जीतने का सिर्फ एक तरीका है! मुझे यकीन है कि यहां बताए गए तरीके की तरह ही बहुत सारे अन्य तरीके हैं (यदि बेहतर नहीं तो)। लक्ष्य प्रश्न पूछना सीखना है यदि आप प्रॉम्प्ट पर स्पष्ट नहीं हैं और एज केस के बारे में सोचना! यदि आप ऐसा कर सकते हैं, तो आप कोड चुनौतियों को लगभग किसी भी समस्या के बिना पार कर पाएंगे। शुभकामनाएं!