# Python NamedTuple example: Triangle area calculation

## Python NamedTuple Data Type: Exercise-8 with Solution

Write a Python program that defines a NamedTuple named "Triangle" with fields 'side1', 'side2', and 'side3'. Now write a function that takes a "Triangle" NamedTuple as input and calculates its area.

**Sample Solution:**

**Code:**

```
from collections import namedtuple
import math
# Define a Triangle NamedTuple
Triangle = namedtuple('Triangle', ['side1', 'side2', 'side3'])
# Function to calculate the area of a triangle
def triangle_area(triangle):
print("Sides of the triangle:",triangle.side1,',',triangle.side2,',',triangle.side3)
# Calculate the semi-perimeter (half the sum of all its
# sides) of the triangle
s = (triangle.side1 + triangle.side2 + triangle.side3) / 2
# Calculate the area using Heron's formula
area = math.sqrt(s * (s - triangle.side1) * (s - triangle.side2) * (s - triangle.side3))
return area
# Create an instance of the Triangle NamedTuple
triangle_instance = Triangle(side1=4, side2=5, side3=7)
# Calculate and print the area of the triangle
area = triangle_area(triangle_instance)
print("Triangle Area:", area)
```

Output:

Sides of the triangle: 4 , 5 , 7 Triangle Area: 9.797958971132712

In the exercise above, we define a "Triangle" NamedTuple with 'side1', 'side2', and 'side3' fields. We also define a function "triangle_area()" that takes a "Triangle" NamedTuple as input and calculates its area using Heron's formula. Next, we create an instance of the "Triangle" NamedTuple and use the "triangle_area()" function to calculate its area.

**Flowchart:**

**Previous:** Python NamedTuple example: Circle attributes.

**Next:** Python NamedTuple example: Car attributes.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.**

https://www.w3resource.com/python-exercises/extended-data-types/python-extended-data-types-index-namedtuple-exercise-8.php

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics