type()
returns the type of a variable.
isinstance(var, type)
check whether var
is of type
.
Python variables cannot be declared without assigning a value to it.
Boolean
True
& False
Boolean values can be treated to numbers. True
is 1, False
is 0.
Equality: ==
.
To test for identity, use is
keyword. E.g. var1 is var2 == False
. Identity means the two names refer to the same object.
any(iter)
returns True
if any element of the iterable is true. all(iter)
returns True
if all elements of the iterable is true.
Numbers
int
: can be arbitrarily large.float
: is accurate to 15 decimal places.int()
method truncates towards 0.round(value, ndigits)
round towards nearest even digit (1.5 and 2.5 both round to 2), andndigits
can be negative (round to 10, 100, etc.).fractions.Fraction(numerator, denominator)
. Byimport fractions
, we can use the built-in fraction class. Note denominator cannot be 0.math
package. It contains constantsmath.pi
, all trigonometric functions.- 0 and 0.0 are
False
, everything else isTrue
. Be careful about rounding error in floating points!!! complex(real, imag)
or2 + 5j
generates complex number. All the usual number operations are supported, and usecmath
module (instead ofmath
) if necessary.float('inf')
,float('-inf')
, andfloat('nan')
creates infinity, negative infinity and NaN. To check whether a value is inf or nan, usemath.isinf(a)
andmath.isnan(a)
. Note==
andis
cannot be used to check for nan!
Number Operations
/
: floating point division, returns float no matter what.//
: integer division. It always truncates down (towards negative infinity), so11//2 == 5
,-11//2 == -6
.**
power.11 ** 2 == 121
.%
remainder.
Accurate Implementation
Floating point can’t accurately represent all base-10 decimals. If needed (especially in finance world), use decimal
module.
Number Format
Float
Use built-in format(value, definition)
function. definition
is a string like [<>^]?width[,]?(.digits)[fe]
where width
is the width of the output, 0 means no override. <
is left-justified, >
is right-justitied, and ^
is centered. digits
is the number of digits in accuracy. f
means float
, e
or E
means exponential notation. Place a ,
before .
inserts thousands separator.
Integer
bin(x)
, oct(x)
, and hex(x)
converts integer x
into its binary, octal, and hexadecimal representation.
format(x, 'b|o|x')
does the same thing, except it won’t produce 0b|o|x
prefix.
Integer is signed, so negative value has a negative sign prefixing it. To convert to the unsigned representation, add the maximum number to it to set the bit length.
To convert back to decimal, use int(str, base)
.
None
None
is Python’s null
.
Comparing None
to anything other than None
is always False
.
None
itself is evaluated to False
.
Bytes
An immutable sequence of numbers between 0 and 255. To mutate a byte in bytes
object, convert it to bytearray
object. Indexing on it returns integers, not individual characters.
To create with literals, use b'someString'
. To use constructors, use bytes()
.
String and bytes are different datatypes, so they cannot be concatenated with each other.
Bytes can be converted to strings using by.decode(encoding)
method. Similarly, s.encode(encoding)
converts a UTF-8 string into bytes.
Bytes supports most of the same built-in operations as text string, but not string formatting. Some of them also works with bytearray
too. To use regular expression, pattern needs to be declared as byte string too.