Python Number: random, float and divmodUse numbers and numeric operators. See the add, multiply, subtract and divide constructs.
dot net perls
Numbers. It is 2 PM. It is 50 degrees F. There is a beauty in numbers. Human beings use them to describe our world. Programs too are built of numbers.
Operators. Tiny functions called operators act upon numbers. With operators and operands (the values operated upon), we make expressions and statements.
We have two division operators. With one slash, we divide two numbers. And with two slashes "//" we divide and round down the result.
Operator 1 The "/" operator leaves the fractional part of the result intact. It does not matter if the two operands are fractional or not.
Operator 2 The "//" operator divides in the same way. But it also rounds the result down to the nearest integer.
Python program that divides numbers
a = 100
b = 7
# Divide 100 by 7.
print(a / b)
# Discard fractional part of result.
print(a // b)
Integral division. This operator does not round up if the value is closer to the higher value. This means 5 // 3 will give 1, even though 5 / 3 gives 1.6, which is closer to 2 than to 1.
Python common line division
converts data to floating-point numbers. It acts on string values (like "10.0") or integers (like 10). On strings, it handles signs (positive or negative) and infinity values ("inf").
Conversion Float is similar to other built-ins like int or str. Python simplifies common conversions.
# Float converts a string into a float number.
Python program that uses float
value = "3.14"
number = float
print(number == 3.14)
print(value == "3.14")
# Float also converts an integer into a float number.
integer = 100
floating = float
Like float, int() converts from strings and other number types. It returns an integer (a number with nothing past the decimal—no fractional part).
Note Int will cause an error if we try to convert a floating-point number within a string (like "123.4").
# Convert a string to int.
Python program that uses int
input = "123"
result = int
# Use int to convert from floating to integral.
input = 456.9
result = int
Hex converts an integer into a hexadecimal number. This form of number can be useful in interoperating with other programs and systems. We see the hex representations of 10 and 100.
# Convert this value to a hex.
Python program that uses hex
value = 10
result = hex
# Convert another value.
value = 100
result = hex
Octal numbers use not a base 10 like we are used to, but a base 8. So they only contain the digits 0 through 7. With oct() we convert a base 10 number into its octal representation.
# Convert 74 into octal which is 112.
Python program that uses oct
number = 74
octal = oct
In computers, numbers are presented with bits, as binary. With the bin() built-in, we get a string representation of an integer. Zeros on the left of the representation are discarded.
Negative The sign bit is represented by the 0 before the lowercase "b." A -1 has a leading minus sign.
Python program that uses bin
number = 100
# Convert this number to a binary string.
result = bin
Complexity is not just in our computer programs. We also encounter complex numbers. These numbers have two components—real and imaginary.
Imaginary unit Complex numbers include an "imaginary unit" that is separate from the real parts. These numbers never become bored.
Info In Python we have the complex() built-in function. These numbers can be added, subtracted, and manipulated in other ways.
# Create two complex numbers.
Python program that uses complex numbers
complexA = complex
complexB = complex
# Add the two together.
# ... The result is also complex.
complexC = complexA + complexB
Division is a slow operation on processors. In Python we have both the "/" and "//" operators. Is there some optimization in the latter one? My benchmark tests this.
Version 1 This version of the code uses the single-slash operator to perform a division.
Version 2 Here we use the double-slash operator to perform division and get an integer-only result.
Result We find that the "//" operator is slower than the "/" operator. It adds steps beyond the regular operator.
Python program that times division
a = 1000
b = 223
c = 0
# Version 1: normal division
i = 0
while i < 10000000:
c = a / b
i += 1
# Version 2: integer result division
i = 0
while i < 10000000:
c = a // b
i += 1
1345843077.922 (/ = 2.158 s
1345843080.448 (// = 2.526 s
The divmod function is built into the Python language. It computes two kinds of division at once: it does an integral division and a modulo division. It returns a tuple.
can be generated in Python with the randint method. But for a random selection in a list or other collection, random.choice is an ideal option.
The pow built-in, or two asterisks, means exponentiation. We can raise a number to a certain power with clear syntax. The two syntax forms are equivalent.
converts an expression into True or False. It is similar to the if-statement, which also evaluates expressions. Bool is a value—often languages store False as 0 and True as 1.
Is a number prime?
We implement a prime-testing method with a def and a for-loop. Some arithmetic optimizations are applied to this method—we test the number's square.
Numeric operations are everywhere. All memory accesses in programs use numeric computations. An access to an element of a list, at an index, requires multiplications to locate memory.
Compilers handle these. A simple program is an illusion. All programs involve complex numeric computation. All levels of programming, from the metal to object models, are numeric.
© 2007-2021 sam allen. send bug reports to email@example.com.