Can anyone explain it easily? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Can anyone explain it easily?

See the code below and explain me how does it work? def square (x): return x*x def test (func,x): print (func(x)) test(square,42)

2nd Apr 2021, 10:53 AM
Chinmoy Roy
Chinmoy Roy - avatar
3 Answers
+ 4
Hello there :) With the first piece of code, you declare a function (def), named 'square'. It declares a variable named 'x'. This function should return the value of 'x' * value of 'x'. In the second function, you declare again 2 variables: func and x. This function should return to print the variable x in the parentheses of a function (func variable). At the end you call the function 'test'. You assign to the variable 'func' = square, and to x = 42. Just put these 2 values inside the test function parenthesis. This returns to square(42). And at the end your function square will return to 42*42, == x*x. :)
2nd Apr 2021, 10:58 AM
Matthew
Matthew - avatar
+ 3
First we will understand def square(x): return x*x Here we created a function name 'square' that takes one argument, 'x' then returns the value x*x. The Python return statement is a special statement that you can use inside a function or method to send the function's result back to the caller. A return statement consists of the return keyword followed by an optional return value. Now, def test(func, x): print(func, x) here we define the function TEST this test function tells us that the test will take the 1st function against the argument and then the 2nd function against argument result of the 1st Next we define the function WITHIN our test function and set the argument (x) as a placeholder, i.e: test(square, 42) Now when we call our functions we add 42 as the argument which takes x`s place test()...42 is our first argument So, 42 * 42 = 1764 1764 becomes our argument after the first function 1764 * 1764 = 3111696 is our output (answer)
5th Apr 2021, 3:38 PM
Scarlet Witch
Scarlet Witch - avatar
0
You call a function called test, passing in two arguments: (square, 42). The test function assigns your 2 arguments (square, 42) to 2 parameters (func, x) and prints the result of calling func with x: print(func(x)). That means it prints square(42) because of the arguments you provided. So, square must be a function. We see above square is indeed a function that takes one argument: something called x. In this case, that's 42. This square function multiplies that x argument by itself and returns it, which in this case is return 42 * 42. The result of that is what ends up getting printed.
2nd Apr 2021, 11:25 AM
CamelBeatsSnake
CamelBeatsSnake - avatar