Reputation: 183
I want to create a function that takes a short text and returns it in the so-called Jaden Case mode where each word's first letter is a capital (best reference I could find).
For example "Hi, I'm twenty years old"
should return "Hi I'm Twenty Years Old"
.
I have tried to solve this problem on my own, but the letter after the apostrophe sign becomes a capital whereas it shouldn't..
My attempt:
def toJadenCase(string):
for letter in string:
if letter == "\'" :
letter[+1].lowercase()
else:
return string.title()
return string
Upvotes: 7
Views: 4381
Reputation: 43
It can be done in another two methods:
Method#1
import string
def tojaden(jadencase):
return string.capwords(jadencase)
print(tojaden("I'm iron man"))
Method#2
def jadencase(str):
s1 = str.split()
capWords = []
for word in s1:
caps = word.capitalize()
capWords.append(caps)
final_string = " ".join(capWords)
print(final_string)
jadencase("it ain't me")
Upvotes: 0
Reputation: 29742
Use str.split
and str.capitalize
:
s = "Hi, I'm twenty years old"
' '.join([i.capitalize() for i in s.split()])
Output:
"Hi, I'm Twenty Years Old"
Upvotes: 11