To print a percentage value in Python, use the str.format() method or an f-string on the format language pattern "{:.0%}". For example, the f-string f"{your_number:.0%}" will convert variable your_number to a percentage string with 0 digits precision.
Simply run those three basic statements in your shell:
β₯οΈ Info: Are you AI curious but you still have to create real impactful projects? Join our official AI builder club on Skool (only $5): SHIP! - One Project Per Month
your_number = 0.42percentage = "{:.0%}".format(your_number)print(percentage)
As a more Pythonic alternative to step number 2, you can use f-strings such as in percentage = f"{your_number:.0%}" for Python version 3.6 and above.
Here’s the minimal 3-step code example to convert a numeric value to a string that is formatted as a percentage value:
# 1. Create a float or integer number:
your_number = 0.42
# 2. Convert the number to a string value:
percentage = "{:.0%}".format(your_number)
# alternative for Python 3.6+:
percentage = f"{your_number:.0%}"
# 3. Print the result
print(percentage)
The resulting output is:
42%
What does the format string "{:.0%}" mean?
:%– The colon symbol followed by the percentage symbol means “convert it to a percentage number”..0– The dot symbol followed by the zero means “use zero digits after the decimal number”.
If you want to include more digits and accomplish a higher precision, use a larger number after the dot such as in "{:.2%}" for two digits or "{:.2%}" for thirteen digits.
print("{:.0%}".format(2/3))
# 67%
print("{:.2%}".format(2/3))
# 66.67%
print("{:.13%}".format(2/3))
# 66.6666666666667%? Instead of using the str.format() function, you can also use f-strings for Python 3.6 and newer versions. For example, f"{x:.0%}" would convert the numeric value stored in variable x to a percentage number without a decimal digit.
Here are the same three examples as in the previous code snippet—but using f-strings instead:
x = 2/3
print(f"{x:.0%}")
# 67%
print(f"{x:.2%}")
# 66.67%
print(f"{x:.13%}")
# 66.6666666666667%This is even more concise and it is the most Pythonic version for Python 3.6 and above. You can learn everything about the differences of f-strings and the more traditional str.format() here.
Lazy Non-Format Alternative
If you’re a bit lazy about f-strings and you always have to look up the syntax, you can simply use the round() built-in method on the fractional number normalized to the 1-100 percentage range. Then, convert the result to a string and use string concatenation to append a suffix '%' symbol.
These three steps will do the trick:
x = 2/3percentage = str(round(x*100)) + '%'print(percentage)
Here’s the code:
x = 2/3 percentage = str(round(x*100)) + '%' print(percentage) # 67%
Thanks for reading through this whole article! π
If you want to boost your Python skills on autopilot, check out the market-leading free Finxter Email Academy with hundreds of Python lessons sent directly into your INBOX:
Programmer Humor
Q: How do you tell an introverted computer scientist from an extroverted computer scientist?
A: An extroverted computer scientist looks at your shoes when he talks to you.