59
votes

Does anyone know of a really simple way of capitalizing just the first letter of a string, regardless of the capitalization of the rest of the string?

For example:

asimpletest -> Asimpletest
aSimpleTest -> ASimpleTest

I would like to be able to do all string lengths as well.

9

9 Answers

76
votes

@saua is right, and

s = s[:1].upper() + s[1:]

will work for any string.

141
votes
>>> b = "my name"
>>> b.capitalize()
'My name'
>>> b.title()
'My Name'
12
votes

What about your_string.title()?

e.g. "banana".title() -> Banana

8
votes
s = s[0].upper() + s[1:]

This should work with every string, except for the empty string (when s="").

5
votes

this actually gives you a capitalized word, instead of just capitalizing the first letter

cApItAlIzE -> Capitalize

def capitalize(str): 
    return str[:1].upper() + str[1:].lower().......
3
votes

for capitalize first word;

a="asimpletest"
print a.capitalize()

for make all the string uppercase use the following tip;

print a.upper()

this is the easy one i think.

2
votes

You can use the str.capitalize() function to do that

In [1]: x = "hello"

In [2]: x.capitalize()
Out[2]: 'Hello'

Hope it helps.

2
votes

Docs can be found here for string functions https://docs.python.org/2.6/library/string.html#string-functions
Below code capitializes first letter with space as a separtor

s="gf12 23sadasd"
print( string.capwords(s, ' ') )

Gf12 23sadasd

-4
votes
str = str[:].upper()

this is the easiest way to do it in my opinion