Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Python Basics (2015) Number Game App Squared

Haitao Huang
Haitao Huang
2,834 Points

How do I check if a variable is an integer or not?

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.

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


def squared(argument):
    try:
        if int(argument) == argument:
            return int(argument) ** 2
    except ValueError:
        return argument * len(argument)

squared("cake")
Christopher Shaw
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Christopher Shaw
Python Web Development Techdegree Graduate 58,236 Points

Good day,

You have not put a question, only pasted the challege question that is available anyway.

The community can help but it is more helpful for you to show what you have attempted and the community and assist you by pointing out where you are going wrong and point you in the right direction so that you understand the problem and solution.

Haitao Huang
Haitao Huang
2,834 Points

Thank you! Chris. I just added my attempt to the board.

1 Answer

Christopher Shaw
seal-mask
PLUS
.a{fill-rule:evenodd;}techdegree seal-36
Christopher Shaw
Python Web Development Techdegree Graduate 58,236 Points

You almost have it, only squared("2") would return 4 will not work and that is quite easliy sorted by removing the line if int(argument) == argument: as this only lets original integers pass.

def squared(argument):
    try:
        return int(argument) ** 2
    except ValueError:
        return argument * len(argument)
Haitao Huang
Haitao Huang
2,834 Points

Problem solved! Thank you so much! :)