TypeError: unsupported operand type(s) for /: 'str' and 'int' in Python
Hello guys, I'm using Python to help create an application that helps calculate the area of the triangle. Three sides of the triangle when input from the user, it's not hard to code. Like this:
side_1st = input('Enter first side: ')
side_2nd = input('Enter second side: ')
side_3rd = input('Enter third side: ')
# calculate the semi-perimeter
s = (side_1st + side_2nd + side_3rd) / 2
# calculate the area
area = (s*(s-side_1st)*(s-side_2nd)*(s-side_3rd)) ** 0.5
print('The area of the triangle equal ' + str(area))
But when I was running this code, I get an exception TypeError: unsupported operand type(s) for /: 'str' and 'int'.
Enter first side: 5
Enter second side: 5
Enter third side: 5
Traceback (most recent call last):
File "<string>", line 6, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int'
Anyone can help me explain it?
I'm using Python 3.9 and Windows 11.
Thanks in Advance.
-
R1
Ramesh kumar May 07 2022
You cannot multiply a string with a non-integer value in Python. If we multiply a string with another string without converting to an integer or floating-point, we get an error can’t multiply sequence by non-int of type ‘str’.
Solution: Use the
float()
method to help converts strings to number first. See the example below:side_1st = float(input('Enter first side: ')) side_2nd = float(input('Enter second side: ')) side_3rd = float(input('Enter third side: ')) # calculate the semi-perimeter s = (side_1st + side_2nd + side_3rd) / 2 # calculate the area area = (s*(s-side_1st)*(s-side_2nd)*(s-side_3rd)) ** 0.5 print('The area of the triangle equal ' + str(area))
#Output
Enter first side: 6 Enter second side: 7 Enter third side: 8 The area of the triangle equal 20.33316256758894
I hope this answer is all you need.
* Type maximum 2000 characters.
* All comments have to wait approved before display.
* Please polite comment and respect questions and answers of others.