Calculate area of triangle when the length of 3 sides are known. This function uses Heron's formula: https://en.wikipedia.org/wiki/Heron%27s_formula >>> area_triangle_three_sides(5, 12, 13) 30.0 >>> area_triangle_three_sides(10, 11, 12) 51.521233486786784 >>> ar
(side1: float, side2: float, side3: float)
| 313 | |
| 314 | |
| 315 | def area_triangle_three_sides(side1: float, side2: float, side3: float) -> float: |
| 316 | """ |
| 317 | Calculate area of triangle when the length of 3 sides are known. |
| 318 | This function uses Heron's formula: https://en.wikipedia.org/wiki/Heron%27s_formula |
| 319 | |
| 320 | >>> area_triangle_three_sides(5, 12, 13) |
| 321 | 30.0 |
| 322 | >>> area_triangle_three_sides(10, 11, 12) |
| 323 | 51.521233486786784 |
| 324 | >>> area_triangle_three_sides(0, 0, 0) |
| 325 | 0.0 |
| 326 | >>> area_triangle_three_sides(1.6, 2.6, 3.6) |
| 327 | 1.8703742940919619 |
| 328 | >>> area_triangle_three_sides(-1, -2, -1) |
| 329 | Traceback (most recent call last): |
| 330 | ... |
| 331 | ValueError: area_triangle_three_sides() only accepts non-negative values |
| 332 | >>> area_triangle_three_sides(1, -2, 1) |
| 333 | Traceback (most recent call last): |
| 334 | ... |
| 335 | ValueError: area_triangle_three_sides() only accepts non-negative values |
| 336 | >>> area_triangle_three_sides(2, 4, 7) |
| 337 | Traceback (most recent call last): |
| 338 | ... |
| 339 | ValueError: Given three sides do not form a triangle |
| 340 | >>> area_triangle_three_sides(2, 7, 4) |
| 341 | Traceback (most recent call last): |
| 342 | ... |
| 343 | ValueError: Given three sides do not form a triangle |
| 344 | >>> area_triangle_three_sides(7, 2, 4) |
| 345 | Traceback (most recent call last): |
| 346 | ... |
| 347 | ValueError: Given three sides do not form a triangle |
| 348 | """ |
| 349 | if side1 < 0 or side2 < 0 or side3 < 0: |
| 350 | raise ValueError("area_triangle_three_sides() only accepts non-negative values") |
| 351 | elif side1 + side2 < side3 or side1 + side3 < side2 or side2 + side3 < side1: |
| 352 | raise ValueError("Given three sides do not form a triangle") |
| 353 | semi_perimeter = (side1 + side2 + side3) / 2 |
| 354 | area = sqrt( |
| 355 | semi_perimeter |
| 356 | * (semi_perimeter - side1) |
| 357 | * (semi_perimeter - side2) |
| 358 | * (semi_perimeter - side3) |
| 359 | ) |
| 360 | return area |
| 361 | |
| 362 | |
| 363 | def area_parallelogram(base: float, height: float) -> float: |