How to calculate the area, diameter, and circumference of a circle in Python

2 Answers

0 votes
radius = 3
PI = 3.14

area = PI * radius * radius
print("Area = %.2f" % area)

diameter = 2 * radius
print("Diameter = %.2f" % diameter)

circumference = 2 * PI * radius
print("Circumference = %.2f" % circumference)


'''
run:

Area = 28.26
Diameter = 6.00
Circumference = 18.84

'''

 



answered Feb 18, 2016 by avibootz
edited Oct 18, 2024 by avibootz
0 votes
import math
from dataclasses import dataclass

@dataclass(frozen=True)
class CircleMetrics:
    """Immutable data container for circle measurements."""
    diameter: float
    circumference: float
    area: float

def calculate_circle_metrics(radius: float) -> CircleMetrics:
    """
    Calculates the diameter, circumference, and area of a circle.

    Args:
        radius (float): The radius of the circle (must be non-negative).

    Returns:
        CircleMetrics: An object containing the diameter, circumference, and area.

    Raises:
        TypeError: If the radius is not a numeric value.
        ValueError: If the radius is negative.
    """
    # Validate input type
    if not isinstance(radius, (int, float)):
        raise TypeError("Radius must be a numeric value.")

    # Guard clause: radius cannot be negative
    if radius < 0:
        raise ValueError("Radius cannot be negative.")

    diameter = 2.0 * radius
    circumference = 2.0 * math.pi * radius
    
    # Standard multiplication (radius * radius) is more efficient than radius ** 2
    area = math.pi * (radius * radius)

    return CircleMetrics(diameter=diameter, circumference=circumference, area=area)

# --- Example Usage ---
if __name__ == "__main__":
    try:
        radius = 3.0
        
        # Retrieve calculated metrics
        metrics = calculate_circle_metrics(radius)

        # Output results formatted to 2 decimal places using f-strings
        print(f"Radius: {radius}")
        print(f"Diameter: {metrics.diameter}")
        print(f"Circumference: {metrics.circumference:.2f}")
        print(f"Area: {metrics.area:.2f}")
        
    except (TypeError, ValueError) as error:
        print(f"Error: {error}")


'''
run:

Radius: 3.0
Diameter: 6.0
Circumference: 18.85
Area: 28.27

'''

 



answered 3 hours ago by avibootz

Related questions

...