TypeError: can only concatenate str (not "float") to str in Python
Hello Guys, I am a beginner in Python and I have a homework need to calculate the area of a circle. I wrote a small function like this:
def areaOfCicle():
PI = 3.14
radius = float(input(' Please Enter the radius of a circle: '))
area = PI * radius * radius
circumference = 2 * PI * radius
print(" The area of a circle = " + area)
print(" The circumference of a circle = " + circumference)
areaOfCicle()
But running the code above I got an exception TypeError: can only concatenate str (not "float") to str.
Please Enter the radius of a circle: 6
Traceback (most recent call last):
File "main.py", line 10, in <module>
areaOfCicle()
File "main.py", line 7, in areaOfCicle
print(" Area Of a Circle = " + area)
TypeError: can only concatenate str (not "float") to str
Why does python not auto-convert numbers to strings? and how can I solve it?
I'm using window 11 and Python 3.9.
Thank in advance
- r2
ramesh Apr 23 2022
You need to convert the float value to a string before concatenating it with a string. You can use
str()
function to help convert float to string in Python. See example below:def areaOfCicle(): PI = 3.14 radius = float(input(' Please Enter the radius of a circle: ')) area = PI * radius * radius circumference = 2 * PI * radius print(" Area Of a Circle = " + str(area)) print(" Circumference Of a Circle = " + str(circumference)) areaOfCicle()
#Output
Please Enter the radius of a circle: 67 Area Of a Circle = 14095.46 Circumference Of a Circle = 420.76
- M0
Mohan Reddy Apr 23 2022
If you concatenate the string with some dynamic value you can use format
%.2f
. It will auto convert any type to string. See example:print(" Area Of a Circle = %.2f" %area)
I hope this tip will useful for you.
* Type maximum 2000 characters.
* All comments have to wait approved before display.
* Please polite comment and respect questions and answers of others.