7
7
def surface_area_cube (side_length : float ) -> float :
8
8
"""
9
9
Calculate the Surface Area of a Cube.
10
-
11
10
>>> surface_area_cube(1)
12
11
6
13
12
>>> surface_area_cube(3)
@@ -22,12 +21,34 @@ def surface_area_cube(side_length: float) -> float:
22
21
return 6 * side_length ** 2
23
22
24
23
24
+ def surface_area_cuboid (length : float , breadth : float , height : float ) -> float :
25
+ """
26
+ Calculate the Surface Area of a Cuboid.
27
+ >>> surface_area_cuboid(1, 2, 3)
28
+ 22
29
+ >>> surface_area_cuboid(-1, 2, 3)
30
+ Traceback (most recent call last):
31
+ ...
32
+ ValueError: surface_area_cuboid() only accepts non-negative values
33
+ >>> surface_area_cuboid(1, -2, 3)
34
+ Traceback (most recent call last):
35
+ ...
36
+ ValueError: surface_area_cuboid() only accepts non-negative values
37
+ >>> surface_area_cuboid(1, 2, -3)
38
+ Traceback (most recent call last):
39
+ ...
40
+ ValueError: surface_area_cuboid() only accepts non-negative values
41
+ """
42
+ if length < 0 or breadth < 0 or height < 0 :
43
+ raise ValueError ("surface_area_cuboid() only accepts non-negative values" )
44
+ return 2 * ((length * breadth ) + (breadth * height ) + (length * height ))
45
+
46
+
25
47
def surface_area_sphere (radius : float ) -> float :
26
48
"""
27
49
Calculate the Surface Area of a Sphere.
28
50
Wikipedia reference: https://en.wikipedia.org/wiki/Sphere
29
51
Formula: 4 * pi * r^2
30
-
31
52
>>> surface_area_sphere(5)
32
53
314.1592653589793
33
54
>>> surface_area_sphere(1)
@@ -46,7 +67,6 @@ def surface_area_hemisphere(radius: float) -> float:
46
67
"""
47
68
Calculate the Surface Area of a Hemisphere.
48
69
Formula: 3 * pi * r^2
49
-
50
70
>>> surface_area_hemisphere(5)
51
71
235.61944901923448
52
72
>>> surface_area_hemisphere(1)
@@ -70,7 +90,6 @@ def surface_area_cone(radius: float, height: float) -> float:
70
90
Calculate the Surface Area of a Cone.
71
91
Wikipedia reference: https://en.wikipedia.org/wiki/Cone
72
92
Formula: pi * r * (r + (h ** 2 + r ** 2) ** 0.5)
73
-
74
93
>>> surface_area_cone(10, 24)
75
94
1130.9733552923256
76
95
>>> surface_area_cone(6, 8)
@@ -93,12 +112,41 @@ def surface_area_cone(radius: float, height: float) -> float:
93
112
return pi * radius * (radius + (height ** 2 + radius ** 2 ) ** 0.5 )
94
113
95
114
115
+ def surface_area_conical_frustum (
116
+ radius_1 : float , radius_2 : float , height : float
117
+ ) -> float :
118
+ """
119
+ Calculate the Surface Area of a Conical Frustum.
120
+ >>> surface_area_conical_frustum(1, 2, 3)
121
+ 45.511728065337266
122
+ >>> surface_area_conical_frustum(4, 5, 6)
123
+ 300.7913575056268
124
+ >>> surface_area_conical_frustum(-1, 2, 3)
125
+ Traceback (most recent call last):
126
+ ...
127
+ ValueError: surface_area_conical_frustum() only accepts non-negative values
128
+ >>> surface_area_conical_frustum(1, -2, 3)
129
+ Traceback (most recent call last):
130
+ ...
131
+ ValueError: surface_area_conical_frustum() only accepts non-negative values
132
+ >>> surface_area_conical_frustum(1, 2, -3)
133
+ Traceback (most recent call last):
134
+ ...
135
+ ValueError: surface_area_conical_frustum() only accepts non-negative values
136
+ """
137
+ if radius_1 < 0 or radius_2 < 0 or height < 0 :
138
+ raise ValueError (
139
+ "surface_area_conical_frustum() only accepts non-negative values"
140
+ )
141
+ slant_height = (height ** 2 + (radius_1 - radius_2 ) ** 2 ) ** 0.5
142
+ return pi * ((slant_height * (radius_1 + radius_2 )) + radius_1 ** 2 + radius_2 ** 2 )
143
+
144
+
96
145
def surface_area_cylinder (radius : float , height : float ) -> float :
97
146
"""
98
147
Calculate the Surface Area of a Cylinder.
99
148
Wikipedia reference: https://en.wikipedia.org/wiki/Cylinder
100
149
Formula: 2 * pi * r * (h + r)
101
-
102
150
>>> surface_area_cylinder(7, 10)
103
151
747.6990515543707
104
152
>>> surface_area_cylinder(6, 8)
@@ -124,7 +172,6 @@ def surface_area_cylinder(radius: float, height: float) -> float:
124
172
def area_rectangle (length : float , width : float ) -> float :
125
173
"""
126
174
Calculate the area of a rectangle.
127
-
128
175
>>> area_rectangle(10, 20)
129
176
200
130
177
>>> area_rectangle(-1, -2)
@@ -148,7 +195,6 @@ def area_rectangle(length: float, width: float) -> float:
148
195
def area_square (side_length : float ) -> float :
149
196
"""
150
197
Calculate the area of a square.
151
-
152
198
>>> area_square(10)
153
199
100
154
200
>>> area_square(-1)
@@ -164,7 +210,6 @@ def area_square(side_length: float) -> float:
164
210
def area_triangle (base : float , height : float ) -> float :
165
211
"""
166
212
Calculate the area of a triangle given the base and height.
167
-
168
213
>>> area_triangle(10, 10)
169
214
50.0
170
215
>>> area_triangle(-1, -2)
@@ -188,9 +233,7 @@ def area_triangle(base: float, height: float) -> float:
188
233
def area_triangle_three_sides (side1 : float , side2 : float , side3 : float ) -> float :
189
234
"""
190
235
Calculate area of triangle when the length of 3 sides are known.
191
-
192
236
This function uses Heron's formula: https://en.wikipedia.org/wiki/Heron%27s_formula
193
-
194
237
>>> area_triangle_three_sides(5, 12, 13)
195
238
30.0
196
239
>>> area_triangle_three_sides(10, 11, 12)
@@ -233,7 +276,6 @@ def area_triangle_three_sides(side1: float, side2: float, side3: float) -> float
233
276
def area_parallelogram (base : float , height : float ) -> float :
234
277
"""
235
278
Calculate the area of a parallelogram.
236
-
237
279
>>> area_parallelogram(10, 20)
238
280
200
239
281
>>> area_parallelogram(-1, -2)
@@ -257,7 +299,6 @@ def area_parallelogram(base: float, height: float) -> float:
257
299
def area_trapezium (base1 : float , base2 : float , height : float ) -> float :
258
300
"""
259
301
Calculate the area of a trapezium.
260
-
261
302
>>> area_trapezium(10, 20, 30)
262
303
450.0
263
304
>>> area_trapezium(-1, -2, -3)
@@ -297,7 +338,6 @@ def area_trapezium(base1: float, base2: float, height: float) -> float:
297
338
def area_circle (radius : float ) -> float :
298
339
"""
299
340
Calculate the area of a circle.
300
-
301
341
>>> area_circle(20)
302
342
1256.6370614359173
303
343
>>> area_circle(-1)
@@ -313,7 +353,6 @@ def area_circle(radius: float) -> float:
313
353
def area_ellipse (radius_x : float , radius_y : float ) -> float :
314
354
"""
315
355
Calculate the area of a ellipse.
316
-
317
356
>>> area_ellipse(10, 10)
318
357
314.1592653589793
319
358
>>> area_ellipse(10, 20)
@@ -339,7 +378,6 @@ def area_ellipse(radius_x: float, radius_y: float) -> float:
339
378
def area_rhombus (diagonal_1 : float , diagonal_2 : float ) -> float :
340
379
"""
341
380
Calculate the area of a rhombus.
342
-
343
381
>>> area_rhombus(10, 20)
344
382
100.0
345
383
>>> area_rhombus(-1, -2)
@@ -376,7 +414,9 @@ def area_rhombus(diagonal_1: float, diagonal_2: float) -> float:
376
414
print (f"Circle: { area_circle (20 ) = } " )
377
415
print ("\n Surface Areas of various geometric shapes: \n " )
378
416
print (f"Cube: { surface_area_cube (20 ) = } " )
417
+ print (f"Cuboid: { surface_area_cuboid (10 , 20 , 30 ) = } " )
379
418
print (f"Sphere: { surface_area_sphere (20 ) = } " )
380
419
print (f"Hemisphere: { surface_area_hemisphere (20 ) = } " )
381
420
print (f"Cone: { surface_area_cone (10 , 20 ) = } " )
421
+ print (f"Conical Frustum: { surface_area_conical_frustum (10 , 20 , 30 ) = } " )
382
422
print (f"Cylinder: { surface_area_cylinder (10 , 20 ) = } " )
0 commit comments