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

Wajid Mohammed
Wajid Mohammed
5,698 Points

Need help on Stringcases program. Computer says Bummer! got the wrong string(s)

When I run the program in workspace it returns a tuple of all types of string required but program calls me Bummer and doesn't like what I wrote. Could you please help?

stringcases.py
def stringcases(string_value):
    upcase_string = string_value.upper()
    lowcase_string = string_value.lower()
    titlecase_string = string_value.capitalize()
    reverse_string = ''
    x = list(enumerate(string_value))
    x.reverse()

    for item in x:
        reverse_string = reverse_string + item[1]
    return upcase_string, lowcase_string, titlecase_string, reverse_string

3 Answers

Wade Williams
Wade Williams
24,476 Points

The reason your program isn't working is because string_value.capitalize() only capitalizes the first letter of the first word in a string, so you fail the Title cased condition. For title case use string_value.title().

This should work for you:

def stringcases(string_value):
    upcase_string = string_value.upper()
    lowcase_string = string_value.lower()

    # title() used to capitalize every word of a string
    titlecase_string = string_value.title()

    # simplified way to reverse a string in python
    reverse_string = string_value[::-1]

    return upcase_string, lowcase_string, titlecase_string, reverse_string
Jeff Muday
MOD
Jeff Muday
Treehouse Moderator 28,720 Points

Everything in your code works, but the 'Titlecased' (first letter of each word is capitalized) needs to use the .title() string method. This will allow you to pass the challenge.

Capitalize only does the first word in a sentence. Where Title does the first letter of every word in the string.

x = 'the chicken laid eggs'
print x.capitalize()
'The chicken laid eggs'
print x.title()
'The Chicken Laid Eggs'
Wajid Mohammed
Wajid Mohammed
5,698 Points

Thank you guys for spotting the issue.