Understanding a piece of code - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Understanding a piece of code (/thread-36146.html) |
Understanding a piece of code - Michael1 - Jan-20-2022 def area(x,y = 3.14): # formal parameters a = y*x*x print (a) return a a = area(10) print("area",a)* Here is what I am doing: 3.14 * 3.14 * 3.14 = 30.56476 30.56476 is a then 30.56476 * 10 305.6476 but the actual answer is: 314.0 ( when you run the program) RE: Understanding a piece of code - deanhystad - Jan-20-2022 Actually you are doing 10 * 3.14* 3.14 and the answer should be 98.596. This is bad code. What does it do? area? area of what? By looking at the code I can see that this is the area of a circle with radius x, but I should not have to read the code. And why is y a variable? If this computes the area of a circle is y ever going to be something other than PI? def circle_area(radius): """Returns area of circle with radius 'radius'""" return 3.14 * radius * radiusWhat is 3.14? It is kind of close to PI. If it is supposed to be PI, why not use PI? import math def circle_area(radius): """Returns area of circle with radius 'radius'""" return math.pi * radius**2 RE: Understanding a piece of code - Michael1 - Jan-20-2022 Im trying to understand why the complier gives 314.0 RE: Understanding a piece of code - deanhystad - Jan-20-2022 My mistake. Actually it is returning 3.14 * 10 * 10. I mixed up the x and y. That is a pretty good indication that x and y are not good variable names. They got me so confused I forgot how to calculate the area of a circle. And now my humiliation is frozen in time in Michael1's reply for all to see. This is a better way to write the function in question. x should be renamed radius and y should be the constant pi, not a function argument. The function name should clearly indicate what the function does, and the function should have a docstring. import math def circle_area(radius): """Returns area of circle with radius 'radius' """ return math.pi * radius**2 RE: Understanding a piece of code - Michael1 - Jan-20-2022 Thanks! |