Numbers in Python support the normal mathematical operations.
The plus sign (+) performs addition, a star (*) is used for multiplication, and two stars (**) are used for exponentiation:
print(123 + 234) # Integer addition print(1.5 * 4) # Floating-point multiplication print( 2 ** 100) # 2 to the power 100, again # ww w . j a va 2s . c om
Python 3.X's integer type automatically provides extra precision for large numbers.
Python 2.X long integer type handles large numbers for the normal integer type.
The following code computes 2 to the power 1,000,000 as an integer in Python and check the number of digits in it.
print( len(str(2 ** 1000000))) # How many digits in a really BIG number?
Here, the code did a nested-call: first converting the ** result's number to a string of digits with the built-in str function, and then getting the length of the resulting string with len.
The end result is the number of digits.
str and len work on many object types.
Consider the following code
print( 3.1415 * 2) # repr: as code (Pythons < 2.7 and 3.1) #6.2830000000000004 print(3.1415 * 2) # str: user-friendly #6.283
The first result isn't a bug: it's only a display issue.
There are two ways to print every object in Python:
Formally, the first form is known as an object's as-code repr, and the second is its user-friendly str.
In older Pythons, the floating-point repr sometimes displays more precision than you might expect.
In Python 2.7 and the latest 3.X, floating-point numbers display themselves more intelligently, usually with fewer extraneous digits.
print(3.1415 * 2) # repr: as code (Pythons >= 2.7 and 3.1)
There are useful numeric modules that we import to use:
import math print(math.pi ) print(math.sqrt(85) )
The math module contains more advanced numeric tools as functions.
The random module performs random-number generation and random selections:
import random print( random.random() ) print( random.choice([1, 2, 3, 4]) )