Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python Collections (2016, retired 2019) Tuples Stringcases

Report a problem in challenge task

The assignment says:

Create a function named stringcases that takes a single string but returns a tuple of different string formats. The formats should be: All uppercase All lowercase Titlecased (first letter is capitalized) Reversed There are str methods for all but the last one.

My code is: def stringcases(string): return string.upper(), string.lower(), string.capitalize(), string[::-1]

For "Hi my name is Bob." my function returns:

('HI MY NAME IS BOB.', 'hi my name is bob.', 'Hi my name is bob.', '.boB si eman ym iH')

Why and how is this wrong?

stringcases.py
def stringcases(string):
    return string.upper(), string.lower(), string.capitalize(), string[::-1]

2 Answers

Torsten Lundahl
Torsten Lundahl
2,570 Points

The method capitalize() only capitalizes the first letter in the very first word of the string. Use the title() method instead to capitalize the first letter in every word.

def stringcases(string):
    return string.upper(), string.lower(), string.title(), string[::-1]

Thank you, I thought only the first letter of the entire string needed to be capitalized.