Python Forum
Defining a function with input
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Defining a function with input
#1
Hi,

In a new file, I typed that:
def CircleArea():
    radius = input('Type the circle radius')
    return radius * 3.14
Then, I ran the module and typed CircleArea in the Shell but it just gave me <function CircleArea at 0x02A138E8> but not proposed me to enter the radius as I wanted.

How to remedy this please ?

Thank you!
buran write Feb-11-2021, 08:47 AM:
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.
Reply
#2
First, radius is going to be a string and you want an integer. Try this:

def CircleArea():
	radius = int (input ('Type the circle radius'))
	return radius * 3.14

print (CircleArea ())
Reply
#3
(Feb-10-2021, 10:15 PM)BashBedlam Wrote: First, radius is going to be a string and you want an integer.

It's correct that input returns str but radius can be integer as well as float.

For OP I suggest to follow conventions set in PEP8 for function naming (circle_area).

Regarding original question:

>>> def my_func():
...     print('This is my_func')
...
>>> my_func
<function my_func at 0x7fce15136c10>
>>> my_func()
This is my_func
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#4
CircleArea is a function. CircleArea() calls the function and returns the result.

You are probably wondering why you need the parenthesis to call the function. That is just how Python works. When Python encounters something that is not a keyword (if, else, while...), number (2, 3.14, 0xff, 0b1010), list([]), string(''), dictionary ({}) ... it looks for the name to be defined somewhere. The name might be a variable, or the name might be a function. If python cannot find the name it raises a NameError exception.

If python finds the name it returns the object that is bound to the name. In your example you have a name "CircleArea" that is bound to a function. When you print the function you get that "<function CircleArea at 0x02A138E8>" printed out. If you want to call the function you need to follow the name with parenthesis, possibly containing arguments to be passed to the function.
def cube(x):
    return x**3

print(cube)
print(cube(3))
x = cube
print(x(4))
Output:
<function cube at 0x000001D188108280> 27 64
Notice that I can reference the function using a different name. In this case I told Python that I wanted to use the name "x" to reference the function cube. If I follow "x" with parenthesis it calls the function the same way as if I used the name "cube".
Reply
#5
Alright, thank you all for your answers! Smile
Reply
#6
im fairly intermidiate, but i still know the answer. this is the original code:
def CircleArea():
    radius = input('Type the circle radius')
    return radius * 3.14
first thing that the radius variable in string, but it needs to be an integer variable, so a simple fix is like this:
def CircleArea():
	radius = int(input('Type the circle radius'))
	return radius * 3.14
also, if you forgot, add parenthses if you didnt already to the end of CircleArea, like this:
CircleArea()
.
now it should work fine, works at least for me.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  difference between forms of input a list to function akbarza 6 928 Feb-21-2024, 08:02 PM
Last Post: bterwijn
Information How to take url in telegram bot user input and put it as an argument in a function? askfriends 0 1,033 Dec-25-2022, 03:00 PM
Last Post: askfriends
  Showing an empty chart, then input data via function kgall89 0 943 Jun-02-2022, 01:53 AM
Last Post: kgall89
  input function question barryjo 12 2,636 Jan-18-2022, 12:11 AM
Last Post: barryjo
  function with 'self' input parameter errors out with and without 'self' called dford 12 3,009 Jan-15-2022, 06:07 PM
Last Post: deanhystad
  Problem with input after function luilong 10 4,021 Dec-04-2021, 12:16 AM
Last Post: luilong
  Exit function from nested function based on user input Turtle 5 2,858 Oct-10-2021, 12:55 AM
Last Post: Turtle
Star I'm getting syntax error while using input function in def. yecktmpmbyrv 1 1,932 Oct-06-2021, 09:39 AM
Last Post: menator01
  Conjugate Gradient having issues with defining A (function to solve [A]{x} = {b} ) DimosG 2 2,783 Sep-21-2021, 08:32 PM
Last Post: 1968Edwards
  Input function cutting off commands at spaces. throwaway34 3 2,154 May-12-2021, 06:40 AM
Last Post: throwaway34

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020