You are on page 1of 8

Python Facts

Python2 is backward compatible; whereas Python3 is backward


INCOMPATIBLE.

Python supports OOPs concepts. But, in python, both private


and protected modes are having same authority. This is the
only limitation in python becoming complete OOP language.

Python interpreter generates byte-code, so the python


applications are platform-independent.

Python runs faster than java, but slower than C language.

Python was written in C language.

Pre/Post increment/decrement like x++,x--,--x,++x, are INVALID


in python

Compound operations such as +=,-=,*=,/= are VALID in Python

Python is case-sensitive i.e., variable “work” is different


from variable “Work”, or “WORK”

Using underscores (eg:price_at_opening) and Camel-casing


(eg:PriceAtOpening)is VALID

Multiple Assignments are VALID in python.

Eg: x=y=z=1

Parallel assignment (or unpacking) is POSSIBLE in python

Eg: a,b=1,2

(x,y,z)=1,2,3

But,(x,y,z)=12 is not possible.

In python 2, Print is a statement. In python 3, print is a


function.

To use print() function of python 3 in python2, place this


statement in the first lines of script:

from __future__ import print_function

= assignment operator

== Operator to check value equivalence


is Operator to check identity of objects; looks at object
level

in Operator to check identity of objects; looks at index


level

!= not-equal-to operator

<> not-equal-to operator. Available only in python2.

# comment operator in python; called as


octothorpe/pound/hash/mesh

>>> Input operator, shows readiness of interpreter. Called as


chevron

^ bit-wise operator. Not power operator. Called as caret

; used to separate TWO or more statements in the same line.

„„„ ‟‟‟ or “““ ””” docstrings. Used for multiple-line


comment in python scripts. Differs from using #. Appears
in the output. Useful, especially, in modules.

#! Called shebang. Used as the first character in python


script.

\ line-continuation operator. Used when a statement spans


more than one line.

Eg: print “Udhay\


Prakash”

() used for tuples

[] used for lists

{} used for dictionaries

([]) used for sets

Switch-case condition is not defined in python. Instead, If-


elif-else ladder can be used. Also, dictionary of
functions can be used.

Eg:
>>> result={
... 'a':lambda x :x*5,
... 'b':lambda x:x+7,
... 'c':lambda x:x-2}
>>> result['b'](10)
17
Indentation is both boon and bane (for beginners) for python.
Use spaces instead of Tabs in scripts.

Eg:
>>> a=2
>>> a
2
>>> a=2
Traceback ( File "<interactive input>", line 1
a=2
^
IndentationError: unexpected indent

Running python with –t option prints warning messages when


tabs and spaces are mixed inconsistently within the same
program block.

Running python with –tt option turns these warning messages in


to TabError exception.

raw_input() takes any input as string type.

input() takes any input type dynamically.

&&,|| are defined operators in python

and boolean operator for AND operation

or boolean operator for OR operation

not Boolean operator for NOT operation

set operators

| union operator for sets

& intersection operator for sets

- Set difference operator


Eg: c=t-s# set c contains items in set t, but not in set s

^ Symmetric difference operator for sets

Eg: d=t^s # set d contains items in set t or set s, but


not common items in both.
bitwise Operators

& bit-wise AND operator

| bit-wise OR operator

^ bit-wise XOR operator

~ bit-wise invert operator. Eg: ~5 results in -6

Bit-wise invert of x is –(x+1)

>> left shift operator

Eg: 15>>1
7
Explanation: 15-1111 (in 8421 convention)
15>>1 means shifting one position left.
It becomes 0111 i.e., 7
<< right shift operator
** power of operator
/ division operator
// floor division operator (only in python3)
% modulo operator. Returns remainder of a division.

PEP8 suggests (not mandatory) for a white space around any


operator.
It is suggested to define default parameters in the last, for
functions.

By default, Python source files are treated as encoded in UTF-


8.
To use different encoding for source files, it must be
specified in the second line, after #! line, in the script.
Format: # -*- coding: encoding -*-

When you use Python interactively, it is frequently handy to


have some standard commands executed every time the
interpreter is started. You can do this by setting an
environment variable named PYTHONSTARTUP to the name of a file
containing your start-up commands. This is similar to the
.profile feature of the Unix shells.
range(init_value,final_value,step_size)returns integers from
init_value, till final_value, in steps of step_size. It
doesn’t include final_value. The step_size MUST be either
positive or negative integer; not a float value.

xrange() is same as range(); but, results in values only when


essential. Available only in python2.

Python supports range() data-type. So, xrange() is not


required.

{} are used to create both a dictionary type and set type.


Set contains only (unrepeated) elements; whereas dictionary
contains keys and elements. Keys can’t be repeated, but
elements in dictionary can be repeated.

Empty set must be created as var_name=set(), instead of


var_name={}. The later creates an empty dict type variable.

When the Python interpreter is invoked with -O flag, code


optimized .pyo files, are generated. This optimizer only
removes assert statements. When -O is used, all bytecode
is optimized; .pyc files are ignored and .py files are
compiled to optimized bytecode.

Similarly, passing two -O flags to the Python interpreter (-


OO) will cause the bytecode compiler to perform optimizations.
Currently only __doc__ strings are removed from the bytecode,
resulting in more compact .pyo files.

Only difference between .pyc and .pyo code is the speed with
which they are loaded.

The module compileall can create .pyc files (or .pyo files
when -O is used) for all modules in a directory.

One space will be added between arguments, when print


function/statement is used, in py3/py2 respectively.

Str.zfill() pads a numeric string on the left with zeros. It


understands both plus and minus signs.
Eg:
>>> '23'.zfill(6)
'000023'
>>> '-3.14'.zfill(6)
'-03.14'
>>> '-3.14'.zfill(8)
'-0003.14'

Str.format()
>> print "This is {} and {}".format('GOOD','BAD')
This is GOOD and BAD
>> print "This is {1} and {0}".format('GOOD','BAD')
This is BAD and GOOD
>>print "This {food} is {adjective}".format(food='RICE',adjective="THE BEST ")
This RICE is THE BEST

>>> ord('a')
97
>>> chr(97)
'a'
>>> '\u011f'
'ğ'

Hidden precision Limitation for python:


>>> 0.1+0.1
0.2
>>> 0.1+0.1+0.1
0.30000000000000004
>>> 0.1+0.1+0.1+0.1
0.4
It is recommended not to follow precision values.

Python can store any large number. Practically, it depends on


the system memory of the machine.

Float is not exact.


>>> 4294967296.0**2
1.8446744073709552e+19
>>> 4294967296**2
18446744073709551616
1.8446744073709552×1019 18446744073709552000- 18446744073709551616=384
Float can be accurate upto 17 significant figures.

floating point numbers have limits both in terms of the


largest and smallest numbers they can contain.
In total, floating point values have limited size and limited
precision.

Textual comparison
>>> 'cat'<'dog'#Alphabetic ordering
True
>>> 'Cat'<'cat'#Uppercase before lowercase
True
>>> 'Dog'<'cat'#All uppercase before lowercase
True
Note: Ordering text is called “collation”, and is a
complicated field. Python inequalities use Unicode character
numbers for collation.

Order of precedence for OPERATIONS:


From highest to least:

x**y -x +x x%y x/y x*y x-y x+y x==y x!=y x>=y x>y x<=y x<y
not x x and y x or y

>>> -3**2 #** has higher precedence, compared to -


-9
>>> (-3)**2
9
All the operators except ** are left-associated, that means that the application of the
operators starts from left to right.

Unpacking
>>> a,b=10,7
>>> (a,b)=(a+b,a-b)#tuples
>>> a,b
(17, 3)
>>> a,b=a+b,a-b #lists
>>> a,b
(20, 14)

Four spaces’ indentation indicates a “block” of code in


python. This can be observed in any for, while….blocks
The immutability of tuples means they’re faster than lists.

Lists
>>> l=[1,2,[3,4,[5,6,7]]]
>>> len(l)
3
No arithmetic operation can be performed between lists.
+ acts as a appending operator
>> a=[1,2]
>>> b=[2,3]
>>> a+b
[1, 2, 2, 3]
>>> a*3
[1, 2, 1, 2, 1, 2]

You might also like