# Function help python

i dont understand how to pull the value out of function. how can i do this. im trying to complete the objective in python basics of functions. the lesson question is called "creating a function. Heres what i have so far.

https://w.trhou.se/r18rm7carl MOD

Hi Austin,

I took at some of the code you linked and in your tests.py file I found your `square(number_to_be_squared)` function.

Here's the good news: there's nothing wrong with this function! You've figured out functions and return values. Your function has no issues. The way that you're calling this function does have an issue though, and it's got to do with variable types.

Your `square()` function is multiplying your argument by itself, so you need to pass square an argument that can be multiplied by itself. This works fine for things like ints (e.g. -5, 100, 2) and floats (e.g. 3.14, -0.12, 9999.99) but it doesn't work if you try something like `wisdom = "experience" * "knowledge"`. The thing is, it also doesn't work if you try `result = "5" * "10"`

Strings are a sequence of characters, so they get treated very differently than numeric values.

You're getting the number to be passed to your `square()` function from the `input()` function. The input function returns a String!

The good news is it's very easy to convert between a string and a numeric type if the sequence of characters is digits. For the sake of example, let's assume your users are always going to type integers and only integers.

We can convert a string of numeric characters into an integer value with the `int()` function. You can put your input call inside the int function like `user_input = int(input("What number would you like to square? "))` or you can split it out over two lines for readability:

```user_input = input("What number would you like to square?  ")
user_integer = int(user_input)
```

However you like, then when you pass that value to your square function it should work!

If you're interested in reading more about this, this type of conversion between one datatype and another is called a "cast" or "casting" from a string to an int. Different programming languages handle this (and many other things) differently.

P.S. While you can't multiply a string by a string, you can multiply a string by an int! If you used `foo = 5 * "good luck! "` foo would then store the value `'good luck! good luck! good luck! good luck! good luck! '`