আমি সচেতন। ক্যাপিটালাইজ () একটি স্ট্রিংয়ের প্রথম অক্ষরকে মূলধন করে তবে প্রথম চরিত্রটি যদি পূর্ণসংখ্যা হয়?
এই
1bob
5sandy
এই
1Bob
5Sandy
আমি সচেতন। ক্যাপিটালাইজ () একটি স্ট্রিংয়ের প্রথম অক্ষরকে মূলধন করে তবে প্রথম চরিত্রটি যদি পূর্ণসংখ্যা হয়?
এই
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
অন্যান্য অক্ষরকেও নিম্নে রূপান্তরিত করবে। সরকারী দস্তাবেজগুলি থেকে: "এস এর একটি শিরোনামযুক্ত সংস্করণটি ফেরান, অর্থাত্ শিরোনামের অক্ষরের সাথে শব্দের সূচনা, বাকী সমস্ত
কেবল অন্য কারও এটি উল্লেখ না করার কারণে:
>>> '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'
এটিতে তাই মেহ।
এটি @ আননের উত্তরের অনুরূপ যে এটি পুনরায় মডিউলটির প্রয়োজন ছাড়াই বাকী স্ট্রিংয়ের ক্ষেত্রে অক্ষত রাখে।
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
@ জ্যান নির্দেশিত হিসাবে, ফাংশনটি আরও ত্রুটি পরীক্ষা করতে ব্যবহার করতে পারে (যেমন এক্সটি একটি ক্রম যাচাই করা - তবে আমি কৌশলটি বর্ণনা করার জন্য প্রান্তের মামলাগুলি বাদ দিচ্ছি)
@ নরম্যানিয়াস মন্তব্যে আপডেট হয়েছে (ধন্যবাদ!)
আমি জিওস্টোনমার্টেনকে ধন্যবাদ জানাতে চাই যে আমি প্রশ্নের উত্তর দিলাম না! - এটি ঠিক করা
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
কর্নারের ক্ষেত্রে যত্ন নেবে ।
এখানে একটি ওয়ান-লাইনার রয়েছে যা প্রথম অক্ষরকে বড় হাতের অক্ষরে ফেলবে এবং পরবর্তী সমস্ত অক্ষরের ক্ষেত্রে ছেড়ে দেবে:
import re
key = 'wordsWithOtherUppercaseLetters'
key = re.sub('([a-zA-Z])', lambda x: x.groups()[0].upper(), key, 1)
print key
এর ফলে হবে WordsWithOtherUppercaseLetters