## 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!

### 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.  # I can't complete the squared challenge

This challenge is similar to an earlier one. Remember, though, I want you to practice! You'll probably want to use try and except on this one. You might have to not use the else block, though. Write a function named squared that takes a single argument. If the argument can be converted into an integer, convert it and return the square of the number (num ** 2 or num * num). If the argument cannot be turned into an integer (maybe it's a string of non-numbers?), return the argument multiplied by its length. Look in the file for examples.

That is the challenge. I've run the code in workspace and it works with all the test values listed. I've tried with just except ValueError, I've tried with just TypeError, both come back with errors that basically just say 'try again' If i use both of them, or just use "except:" in the code it comes back that 'squared' did not return the correct results.

squared.py
```# EXAMPLES
# squared(5) would return 25
# squared("2") would return 4
# squared("tim") would return "timtimtim"

def squared(num):
try:
int(num)
return num * num
except ValueError:
return num * len(num)
except TypeError:
return num * len(num)
``` Hi Christopher. In this challenge, it does not ask us to catch a specific error. Because of this, you should just write `except` and it will catch any error that comes up:

```def squared(num):
try:
num = int(num) #try to turn num into integer
return num * num #try to return num squared
except: #if an error comes up
return num * len(num) #just return num multiplied by its length
```

Thanks,

Haider

Why can't I just use if and else in this challenge? I feel like it makes more sense and is more intuitive...

Hello, I hope you see this comment. In the comments you wrote "try to turn num into integer". If the user inputs a number shouldn't python recognize it as an integer? (I'm not implying you're wrong, I just don't get why you have to declare a number as an integer)

Here you go:

```def squared(num):
try:
return (int(num) ** 2)
except ValueError:
return (str(num) * len(num))
``` I have tried except, and it came back saying that the number was wrong (that the code returned a wrong value). For some reason it was not accepting num * num as a valid code. when i changed it back to num ** 2 it went through fine.