With Python2.7+ or v3 you just use the "," option in your string formatting - see PEP 378: Format Specifier for Thousands Separator for more info:
>>> "{:,}".format[100000000]
'100,000,000'
With Python3.6+ you can also use the "_" format - see PEP 515 for details:
>>> "{:_}".format[100000000]
'100_000_000'
or you can use a similar syntax with f-strings:
>>> number = 100000000
>>>f"{number:,}"
'100,000,000'
So I don't have to squint while reading big numbers, I have the 2.7 version of the code wrapped up in a shell function:
human_readable_numbers [] {
python2.7 -c "print['{:,}'].format[$1]"
}
Lastly, if for some reason you must work with code from Python versions 2.6 or earlier, you can solve the problem using the locale
standard library module:
import locale
locale.setlocale[locale.LC_ALL, 'en_US']
locale.format['%d', 2**32, grouping=True] # returns '4,294,967,296'
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
Numerize is that library of python which is used to show large numbers into its readable format. It basically converts numerical
format into the compact short format. There is no need to show how many zeroes are behind the number. It itself checks the numeric digits behind the coefficient and then provides output in the compact short form accordingly.
Key Feature
It enhances the understanding as there is no need to write a number of zeroes behind the number coefficient[also called as trailing zeroes].
Examples:
1 -> 1 10 -> 10 100 -> 100 1000 -> 1k 1500 -> 1.5k 1000000 -> 1M 1000000000 -> 1B 1000000000000 -> 1T
Note:
- Here k represents thousand [i.e. coefficient will have 3 trailing digits ], M represents Million [i.e. coefficient will have 6 trailing digits], B represents Billion [i.e. coefficient will have 9 trailing digits]and T represents Trillion [i.e. coefficient will have 12 trailing digits].
- It will convert numerical numbers only up to 100T.
Installing Library
To install this module type the below command in the terminal.
pip install numerize
Example 1:
Python3
from
numerize
import
numerize
a
=
numerize.numerize[
100
]
print
[a]
a
=
numerize.numerize[
1000
]
print
[a]
a
=
numerize.numerize[
1500
]
print
[a]
a
=
numerize.numerize[
1000000
]
print
[a]
a
=
numerize.numerize[
1123456
]
print
[a]
a
=
numerize.numerize[
10000000000
]
print
[a]
Output:
100 1k 1.5k 1M 1.12M 10B
Example 2:
Python3
from
numerize
import
numerize
a
=
numerize.numerize[
1234567.12
,
2
]
print
[a]
a
=
numerize.numerize[
1247854
,
4
]
print
[a]
a
=
numerize.numerize[
12134.123
,
3
]
print
[a]
Output:
1.23M 1.2479M 12.134K
This is not a school project, just something to help me learn some Python! Just looking to see what I can improve on, looking for tips to reduce size & make it a bit easier for the computer to run it.
suffixes = ["", "Thousand", "Million", "Billion", "Trillion", "Quadrillion","Quintillion", "Sextillion","Septillion","Octillion","Nonillion", "Decillion", "Undecillion","Duodecillion", "Tredecillion", "Quattuordecillion","Quindecillion","Sexdecillion","Septendecillion","Octodecillion", "Novemdecillion","Vigintillion","Unvigintillion","Duovigintillion","Trevigintillion","Quattuorvigintillion","Quinvigintillion", "Sexvigintillion","Septenvigintillion","Octovigintillion","Novemvigintillion","Trigintillion", "Untrigintillion", "Duotrigintillion","Quattuortrigintillion","Quintrigintillion", "Sextrigintillion","Septentrigintillion", "Octotrigintillion", "Novemtrigintillion","Quadragintillion", "Unquadragintillion", "Duoquadragintillion", "Trequadragintillion","Quattuorquadragintillion", "Quinquadragintillion","Sexquadragintillion","Septenquadragintillion", "Octoquadragintillion", "Novemquadragintillion","Quinquagintillion", "Unquinquagintillion", "Duoquinquagintillion", "Trequinquagintillion","Quattuorquinquagintillion","Quinquinquagintillion", "Sexquinquagintillion","Septenquinquagintillion", "Octoquinquagintillion", "Novemquinquagintillion","Sexagintillion", "Unsexagintillion", "Duosexagintillion", "Tresexagintillion","Quattuorsexagintillion", "Quinsexagintillion","Sexsexagintillion","Septensexagintillion", "Octosexagintillion", "Novemsexagintillion","Septuagintillion", "Unseptuagintillion", "Duoseptuagintillion", "Treseptuagintillion","Quattuorseptuagintillion", "Quinseptuagintillion","Sexseptuagintillion","Septenseptuagintillion", "Octoseptuagintillion", "Novemseptuagintillion","Octogintillion", "Unoctogintillion", "Duooctogintillion", "Treoctogintillion","Quattuoroctogintillion", "Quinoctogintillion","Sexoctogintillion","Septenoctogintillion","Octooctogintillion","Novemoctogintillion","Nonagintillion","Unnonagintillion","Duononagintillion","Trenonagintillion","Quattuornonagintillion","Quinnonagintillion","Sexnonagintillion","Septennonagintillion", "Octononagintillion", "Novemnonagintillion""Centillion", "Uncentillion", "Duocentillion", "Trecentillion", "Quattuorcentillion", "Quincentillion", "Sexcentillion","Septencentillion", "Octocentillion", "Novemcentillion","Primovegesimocent", "Unprimovegesimocent", "Duoprimovegesimocent", "Treprimovegesimocent", "Quattuorprimovegesimocent","Quinprimovegesimocent", "Sexprimovegesimocent", "Septenprimovegesimocent", "Octoprimovegesimocent", "Novemprimovegesimocent","Ducent", "Unducent", "Duoducent", "Treducent", "Quattuorducent", "Quinducent", "Sexducent", "Septenducent", "Octoducent", "Novemducent","Trecent", "Untrecent", "Duotrecent", "Tretrecent", "Quattuortrecent", "Quintrecent", "Sextrecent", "Septentrecent", "Octotrecent","Novemtrecent","Duotrigintatrecent", "Unduotrigintatrecent", "Duoduotrigintatrecent", "Treduotrigintatrecent", "Quattuorduotrigintatrecent","Quinduotrigintatrecent", "Sexduotrigintatrecent", "Septenduotrigintatrecent", "Octoduotrigintatrecent", "Novemduotrigintatrecent","Quadringent", "Unquadringent", "Duoquadringent", "Trequadringent", "Quattuorquadringent", "Quinquadringent", "Sexquadringent","Septenquadringent", "Octoquadringent", "Novemquadringent","Quingent", "Unquingent", "Duoquingent", "Trequingent", "Quattuorquingent", "Quinquingent", "Sexquingent", "Septenquingent","Octoquingent", "Novemquingent","Sescent", "Unsescent", "Duosescent", "Tresescent", "Quattuorsescent", "Quinsescent", "Sexsescent", "Septensescent", "Octosescent","Novemsescent","Septuagintisescent", "Unseptuagintisescent", "Duoseptuagintisescent", "Treseptuagintisescent", "Quattuorseptuagintisescent","Quinseptuagintisescent", "Sexseptuagintisescent", "Septenseptuagintisescent", "Octoseptuagintisescent", "Novemseptuagintisescent","Septingent", "Unseptingent", "Duoseptingent", "Treseptingent", "Quattuorseptingent", "Quinseptingent", "Sexseptingent","Septenseptingent", "Octoseptingent", "Novemseptingent","Octingent", "Unoctingent", "Duooctingent", "Treoctingent", "Quattuoroctingent", "Quinoctingent", "Sexoctingent", "Septenoctingent","Octooctingent", "Novemoctingent","Nongent", "Unnongent", "Duonongent", "Trenongent", "Quattuornongent", "Quinnongent", "Sexnongent", "Septennongent", "Octonongent","Novemnongent"]
# Get the user's input number
number = int[input["Enter a number "]]
# Turn the int number into a string and format with ,'s
number = str["{:,}".format[number]]
# For loop to find the amount of commas in the newly made string
commas = 0
x = 0
while x < len[number]:
if number[x] == ',':
commas += 1
x += 1
# Use the amount of commas to decide the element in the array that will be used as a suffix
# for example, if there are 2 commas it will use million.
print[number.split[','][0], suffixes[commas]]
# Wait for the user's input before closing so that you don't need to run it from a terminal
input[]