Python Python Collections (2016, retired 2019) Slices sillyCase

Brandon Evans
Brandon Evans
8,154 Points

Is this sort of code frowned upon?

I solved the solution like this:

def sillycase(str):
    str.split()
    return str[:(len(str) // 2)].lower() + str[(len(str) // 2):(len(str))].upper()

This honestly looks a little confusing to me at first glance, although from a programmatic standpoint, I figured this was a little bit more efficient than maybe some other approaches. I do not have much experience in DRY or efficient coding so I was just curious if this is something acceptable in the real world or if this is just too confusing and not practical.

Thanks! :)

2 Answers

Steven Parker
Steven Parker
203,731 Points

Learning how to make your code more DRY will come with experience, but here's two hints:

  • the "str.split()" line doesn't do anything and can be omitted
  • the second slice doesn't need a "stop" value
Brandon Evans
Brandon Evans
8,154 Points

Ah, I see! That makes perfect sense too. Sweet, thank you for the pointers, Steven!

sillycase=['Treehouse'] len=len(sillycase) sillycase=sillycase.upper(0:(len/2+1)+sillycase.lower(len/2::)

What is wrong with mine?

Steven Parker
Steven Parker
203,731 Points

Without formatting it's hard to read, but some issues that I think I'm seeing are:

  • the "def" line is missing to begin a function
  • the name "sillycase" seems to be used for both the function name and for a variable
  • the name "len" which is a built-in function seems to also be used as a variable
  • it looks like slices are being attempted using parentheses instead of brackets

Start a fresh question if you need more help. You should always do that instead of posting one as an "answer".