मुझे पता है .capitalize () एक स्ट्रिंग के पहले अक्षर को कैपिटल करता है लेकिन क्या होगा यदि पहला वर्ण एक पूर्णांक है?
यह
1bob
5sandy
इसके लिए
1Bob
5Sandy
मुझे पता है .capitalize () एक स्ट्रिंग के पहले अक्षर को कैपिटल करता है लेकिन क्या होगा यदि पहला वर्ण एक पूर्णांक है?
यह
1bob
5sandy
इसके लिए
1Bob
5Sandy
जवाबों:
यदि पहला वर्ण पूर्णांक है, तो यह पहले अक्षर को कैपिटलाइज़ नहीं करेगा।
>>> '2s'.capitalize()
'2s'
यदि आप कार्यक्षमता चाहते हैं, तो अंकों को हटा दें, आप '2'.isdigit()प्रत्येक वर्ण की जांच के लिए उपयोग कर सकते हैं ।
>>> s = '123sa'
>>> for i, c in enumerate(s):
... if not c.isdigit():
... break
...
>>> s[:i] + s[i:].capitalize()
'123Sa'
next((i for i,e in enumerate(test) if not e.isdigit()), '0')इसे खाली स्ट्रिंग मामले के लिए हल करता है
. capitalizeअन्य वर्णों को भी निम्न में बदल देगा। आधिकारिक डॉक्स से: "S का शीर्षक शीर्षक वाला संस्करण लौटाएं, यानी शब्द शीर्षक केस के पात्रों से शुरू होते हैं, शेष सभी
केवल इसलिए कि किसी और ने इसका उल्लेख नहीं किया है:
>>> 'bob'.title()
'Bob'
>>> 'sandy'.title()
'Sandy'
>>> '1bob'.title()
'1Bob'
>>> '1sandy'.title()
'1Sandy'
हालाँकि, यह भी देगा
>>> '1bob sandy'.title()
'1Bob Sandy'
>>> '1JoeBob'.title()
'1Joebob'
इसका मतलब यह नहीं है कि पहले वर्णमाला वर्ण को केवल बड़ा किया जाए। लेकिन फिर .capitalize()एक ही मुद्दा है, कम से कम उस में 'joe Bob'.capitalize() == 'Joe bob', तो meh।
यह @ अननोन के जवाब के समान है कि यह स्ट्रिंग के बाकी मामले को बरकरार रखता है, बिना री मॉड्यूल की आवश्यकता के।
def sliceindex(x):
i = 0
for c in x:
if c.isalpha():
i = i + 1
return i
i = i + 1
def upperfirst(x):
i = sliceindex(x)
return x[:i].upper() + x[i:]
x = '0thisIsCamelCase'
y = upperfirst(x)
print(y)
# 0ThisIsCamelCase
जैसा कि @ Xan ने बताया, फ़ंक्शन अधिक त्रुटि जाँच का उपयोग कर सकता है (जैसे कि जाँच करना कि x एक अनुक्रम है - हालाँकि मैं तकनीक का वर्णन करने के लिए किनारे के मामलों को छोड़ रहा हूँ)
@Normanius टिप्पणी प्रति अपडेट (धन्यवाद!)
@GeoStoneMarten की ओर इशारा करते हुए धन्यवाद कि मैंने सवाल का जवाब नहीं दिया! -उपसर्ग किया
len(x) == 0शाखा की आवश्यकता है ।
return x[0].upper() + x[1:] if len(x) > 0 else x
capitalizeऔर titleपहले पूरे स्ट्रिंग को कम करता है और फिर केवल पहले अक्षर को अपरकेस करता है।
a[:1].upper() + a[1:], यह len(X)==0कोने के मामले का ध्यान रखेगा ।