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
12
+ >>> surface_area_cube(1.6)
13
+ 15.360000000000003
14
+ >>> surface_area_cube(0)
15
+ 0
13
16
>>> surface_area_cube(3)
14
17
54
15
18
>>> surface_area_cube(-1)
@@ -22,16 +25,46 @@ def surface_area_cube(side_length: float) -> float:
22
25
return 6 * side_length ** 2
23
26
24
27
28
+ def surface_area_cuboid (length : float , breadth : float , height : float ) -> float :
29
+ """
30
+ Calculate the Surface Area of a Cuboid.
31
+ >>> surface_area_cuboid(1, 2, 3)
32
+ 22
33
+ >>> surface_area_cuboid(0, 0, 0)
34
+ 0
35
+ >>> surface_area_cuboid(1.6, 2.6, 3.6)
36
+ 38.56
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
+ >>> surface_area_cuboid(1, -2, 3)
42
+ Traceback (most recent call last):
43
+ ...
44
+ ValueError: surface_area_cuboid() only accepts non-negative values
45
+ >>> surface_area_cuboid(1, 2, -3)
46
+ Traceback (most recent call last):
47
+ ...
48
+ ValueError: surface_area_cuboid() only accepts non-negative values
49
+ """
50
+ if length < 0 or breadth < 0 or height < 0 :
51
+ raise ValueError ("surface_area_cuboid() only accepts non-negative values" )
52
+ return 2 * ((length * breadth ) + (breadth * height ) + (length * height ))
53
+
54
+
25
55
def surface_area_sphere (radius : float ) -> float :
26
56
"""
27
57
Calculate the Surface Area of a Sphere.
28
58
Wikipedia reference: https://en.wikipedia.org/wiki/Sphere
29
59
Formula: 4 * pi * r^2
30
-
31
60
>>> surface_area_sphere(5)
32
61
314.1592653589793
33
62
>>> surface_area_sphere(1)
34
63
12.566370614359172
64
+ >>> surface_area_sphere(1.6)
65
+ 32.169908772759484
66
+ >>> surface_area_sphere(0)
67
+ 0.0
35
68
>>> surface_area_sphere(-1)
36
69
Traceback (most recent call last):
37
70
...
@@ -46,7 +79,6 @@ def surface_area_hemisphere(radius: float) -> float:
46
79
"""
47
80
Calculate the Surface Area of a Hemisphere.
48
81
Formula: 3 * pi * r^2
49
-
50
82
>>> surface_area_hemisphere(5)
51
83
235.61944901923448
52
84
>>> surface_area_hemisphere(1)
@@ -70,11 +102,14 @@ def surface_area_cone(radius: float, height: float) -> float:
70
102
Calculate the Surface Area of a Cone.
71
103
Wikipedia reference: https://en.wikipedia.org/wiki/Cone
72
104
Formula: pi * r * (r + (h ** 2 + r ** 2) ** 0.5)
73
-
74
105
>>> surface_area_cone(10, 24)
75
106
1130.9733552923256
76
107
>>> surface_area_cone(6, 8)
77
108
301.59289474462014
109
+ >>> surface_area_cone(1.6, 2.6)
110
+ 23.387862992395807
111
+ >>> surface_area_cone(0, 0)
112
+ 0.0
78
113
>>> surface_area_cone(-1, -2)
79
114
Traceback (most recent call last):
80
115
...
@@ -93,14 +128,51 @@ def surface_area_cone(radius: float, height: float) -> float:
93
128
return pi * radius * (radius + (height ** 2 + radius ** 2 ) ** 0.5 )
94
129
95
130
131
+ def surface_area_conical_frustum (
132
+ radius_1 : float , radius_2 : float , height : float
133
+ ) -> float :
134
+ """
135
+ Calculate the Surface Area of a Conical Frustum.
136
+ >>> surface_area_conical_frustum(1, 2, 3)
137
+ 45.511728065337266
138
+ >>> surface_area_conical_frustum(4, 5, 6)
139
+ 300.7913575056268
140
+ >>> surface_area_conical_frustum(0, 0, 0)
141
+ 0.0
142
+ >>> surface_area_conical_frustum(1.6, 2.6, 3.6)
143
+ 78.57907060751548
144
+ >>> surface_area_conical_frustum(-1, 2, 3)
145
+ Traceback (most recent call last):
146
+ ...
147
+ ValueError: surface_area_conical_frustum() only accepts non-negative values
148
+ >>> surface_area_conical_frustum(1, -2, 3)
149
+ Traceback (most recent call last):
150
+ ...
151
+ ValueError: surface_area_conical_frustum() only accepts non-negative values
152
+ >>> surface_area_conical_frustum(1, 2, -3)
153
+ Traceback (most recent call last):
154
+ ...
155
+ ValueError: surface_area_conical_frustum() only accepts non-negative values
156
+ """
157
+ if radius_1 < 0 or radius_2 < 0 or height < 0 :
158
+ raise ValueError (
159
+ "surface_area_conical_frustum() only accepts non-negative values"
160
+ )
161
+ slant_height = (height ** 2 + (radius_1 - radius_2 ) ** 2 ) ** 0.5
162
+ return pi * ((slant_height * (radius_1 + radius_2 )) + radius_1 ** 2 + radius_2 ** 2 )
163
+
164
+
96
165
def surface_area_cylinder (radius : float , height : float ) -> float :
97
166
"""
98
167
Calculate the Surface Area of a Cylinder.
99
168
Wikipedia reference: https://en.wikipedia.org/wiki/Cylinder
100
169
Formula: 2 * pi * r * (h + r)
101
-
102
170
>>> surface_area_cylinder(7, 10)
103
171
747.6990515543707
172
+ >>> surface_area_cylinder(1.6, 2.6)
173
+ 42.22300526424682
174
+ >>> surface_area_cylinder(0, 0)
175
+ 0.0
104
176
>>> surface_area_cylinder(6, 8)
105
177
527.7875658030853
106
178
>>> surface_area_cylinder(-1, -2)
@@ -124,9 +196,12 @@ def surface_area_cylinder(radius: float, height: float) -> float:
124
196
def area_rectangle (length : float , width : float ) -> float :
125
197
"""
126
198
Calculate the area of a rectangle.
127
-
128
199
>>> area_rectangle(10, 20)
129
200
200
201
+ >>> area_rectangle(1.6, 2.6)
202
+ 4.16
203
+ >>> area_rectangle(0, 0)
204
+ 0
130
205
>>> area_rectangle(-1, -2)
131
206
Traceback (most recent call last):
132
207
...
@@ -148,9 +223,12 @@ def area_rectangle(length: float, width: float) -> float:
148
223
def area_square (side_length : float ) -> float :
149
224
"""
150
225
Calculate the area of a square.
151
-
152
226
>>> area_square(10)
153
227
100
228
+ >>> area_square(0)
229
+ 0
230
+ >>> area_square(1.6)
231
+ 2.5600000000000005
154
232
>>> area_square(-1)
155
233
Traceback (most recent call last):
156
234
...
@@ -164,9 +242,12 @@ def area_square(side_length: float) -> float:
164
242
def area_triangle (base : float , height : float ) -> float :
165
243
"""
166
244
Calculate the area of a triangle given the base and height.
167
-
168
245
>>> area_triangle(10, 10)
169
246
50.0
247
+ >>> area_triangle(1.6, 2.6)
248
+ 2.08
249
+ >>> area_triangle(0, 0)
250
+ 0.0
170
251
>>> area_triangle(-1, -2)
171
252
Traceback (most recent call last):
172
253
...
@@ -188,13 +269,15 @@ def area_triangle(base: float, height: float) -> float:
188
269
def area_triangle_three_sides (side1 : float , side2 : float , side3 : float ) -> float :
189
270
"""
190
271
Calculate area of triangle when the length of 3 sides are known.
191
-
192
272
This function uses Heron's formula: https://en.wikipedia.org/wiki/Heron%27s_formula
193
-
194
273
>>> area_triangle_three_sides(5, 12, 13)
195
274
30.0
196
275
>>> area_triangle_three_sides(10, 11, 12)
197
276
51.521233486786784
277
+ >>> area_triangle_three_sides(0, 0, 0)
278
+ 0.0
279
+ >>> area_triangle_three_sides(1.6, 2.6, 3.6)
280
+ 1.8703742940919619
198
281
>>> area_triangle_three_sides(-1, -2, -1)
199
282
Traceback (most recent call last):
200
283
...
@@ -233,9 +316,12 @@ def area_triangle_three_sides(side1: float, side2: float, side3: float) -> float
233
316
def area_parallelogram (base : float , height : float ) -> float :
234
317
"""
235
318
Calculate the area of a parallelogram.
236
-
237
319
>>> area_parallelogram(10, 20)
238
320
200
321
+ >>> area_parallelogram(1.6, 2.6)
322
+ 4.16
323
+ >>> area_parallelogram(0, 0)
324
+ 0
239
325
>>> area_parallelogram(-1, -2)
240
326
Traceback (most recent call last):
241
327
...
@@ -257,9 +343,12 @@ def area_parallelogram(base: float, height: float) -> float:
257
343
def area_trapezium (base1 : float , base2 : float , height : float ) -> float :
258
344
"""
259
345
Calculate the area of a trapezium.
260
-
261
346
>>> area_trapezium(10, 20, 30)
262
347
450.0
348
+ >>> area_trapezium(1.6, 2.6, 3.6)
349
+ 7.5600000000000005
350
+ >>> area_trapezium(0, 0, 0)
351
+ 0.0
263
352
>>> area_trapezium(-1, -2, -3)
264
353
Traceback (most recent call last):
265
354
...
@@ -297,9 +386,12 @@ def area_trapezium(base1: float, base2: float, height: float) -> float:
297
386
def area_circle (radius : float ) -> float :
298
387
"""
299
388
Calculate the area of a circle.
300
-
301
389
>>> area_circle(20)
302
390
1256.6370614359173
391
+ >>> area_circle(1.6)
392
+ 8.042477193189871
393
+ >>> area_circle(0)
394
+ 0.0
303
395
>>> area_circle(-1)
304
396
Traceback (most recent call last):
305
397
...
@@ -313,11 +405,14 @@ def area_circle(radius: float) -> float:
313
405
def area_ellipse (radius_x : float , radius_y : float ) -> float :
314
406
"""
315
407
Calculate the area of a ellipse.
316
-
317
408
>>> area_ellipse(10, 10)
318
409
314.1592653589793
319
410
>>> area_ellipse(10, 20)
320
411
628.3185307179587
412
+ >>> area_ellipse(0, 0)
413
+ 0.0
414
+ >>> area_ellipse(1.6, 2.6)
415
+ 13.06902543893354
321
416
>>> area_ellipse(-10, 20)
322
417
Traceback (most recent call last):
323
418
...
@@ -339,9 +434,12 @@ def area_ellipse(radius_x: float, radius_y: float) -> float:
339
434
def area_rhombus (diagonal_1 : float , diagonal_2 : float ) -> float :
340
435
"""
341
436
Calculate the area of a rhombus.
342
-
343
437
>>> area_rhombus(10, 20)
344
438
100.0
439
+ >>> area_rhombus(1.6, 2.6)
440
+ 2.08
441
+ >>> area_rhombus(0, 0)
442
+ 0.0
345
443
>>> area_rhombus(-1, -2)
346
444
Traceback (most recent call last):
347
445
...
@@ -374,9 +472,12 @@ def area_rhombus(diagonal_1: float, diagonal_2: float) -> float:
374
472
print (f"Rhombus: { area_rhombus (10 , 20 ) = } " )
375
473
print (f"Trapezium: { area_trapezium (10 , 20 , 30 ) = } " )
376
474
print (f"Circle: { area_circle (20 ) = } " )
475
+ print (f"Ellipse: { area_ellipse (10 , 20 ) = } " )
377
476
print ("\n Surface Areas of various geometric shapes: \n " )
378
477
print (f"Cube: { surface_area_cube (20 ) = } " )
478
+ print (f"Cuboid: { surface_area_cuboid (10 , 20 , 30 ) = } " )
379
479
print (f"Sphere: { surface_area_sphere (20 ) = } " )
380
480
print (f"Hemisphere: { surface_area_hemisphere (20 ) = } " )
381
481
print (f"Cone: { surface_area_cone (10 , 20 ) = } " )
482
+ print (f"Conical Frustum: { surface_area_conical_frustum (10 , 20 , 30 ) = } " )
382
483
print (f"Cylinder: { surface_area_cylinder (10 , 20 ) = } " )
0 commit comments