Python
Introduction
- Python is an interpreted, high-level and general-purpose, dynamically typed programming language
- It is also Object oriented, modular oriented and a scripting language.
- In Python, everything is considered as an Object.
- A python file has an extension of .py
- Python follows Indentation to separate code blocks instead of flower brackets({}).
- We can run a python file by the following command in cmd(Windows) or shell(mac/linux).
$ python <filename.py>
or$ python3 <filename.py>
Create and execute a program
- Open up a terminal/cmd
- Create the program: nano/cat > nameProgram.py
- Write the program and save it
- python nameProgram.py
Basic Datatypes
Data Type | Description |
---|---|
int |
Integer values [0, 1, -2, 3] |
float |
Floating point values [0.1, 4.532, -5.092] |
char |
Characters [a, b, @, !, `] |
str |
Strings [abc, AbC, A@B, sd!, `asa] |
bool |
Boolean Values [True, False] |
complex |
Complex numbers [2+3j, 4-1j] |
Keywords
As of python3.8 there are 35 keywords:
Keyword | Description | Category |
---|---|---|
True |
Boolean value for not False or 1 | Value Keyword |
False |
Boolean Value for not True or 0 | Value Keyword |
None |
No Value | Value keyword |
and |
returns true if both (oprand) are true (other language && ) |
Operator keyword |
or |
returns true of either operands is true (other language || ) |
Operator keyword |
in |
returns true if word is in iterator | Operator keyword |
is |
returns true if id of variables are same | Operator keyword |
not |
returns opposite Boolean value | Operator Keyword |
if |
get into block if expression is true | conditional |
elif |
for more than 1 if checks | conditional |
else |
this block will be executed if condition is false | conditional |
for |
used for looping | iteration |
while |
used for looping | iteration |
break |
get out of loop | iteration |
continue |
skip for specific condition | iteration |
def |
make user defined function | structure |
class |
make user defined classes | structure |
lambda |
make anonymous function | structure |
with |
execute code within context manager’s scope | structure |
as |
alias for something | structure |
pass |
used for making empty structures(declaration) | structure |
return |
get value(s) from function, get out of function | returning keyword |
yield |
yields values instead of returning (are called generators) | returning keyword |
import |
import libraries/modules/packages | import |
from |
import specific function/classes from modules/packages | import |
try |
this block will be tried to get executed | execption handling |
execpt |
is any execption/error has occured it’ll be executed | execption handling |
finally |
It’ll be executed no matter execption occurs or not | execption handling |
raise |
throws any specific error/execption | execption handling |
assert |
throws an AssertionError if condition is false | execption handling |
async |
used to define asynchronous functions/co-routines | asynchronous programming |
await |
used to specify a point when control is taken back | asynchronous programming |
del |
deletes/unsets any user defined data | variable handling |
global |
used to access variables defined outsied of function | variable handling |
nonlocal |
modify variables from different scopes | variable handling |
Operators
Operator | Description |
---|---|
( ) |
grouping parenthesis, function call, tuple declaration |
[ ] |
array indexing, also declaring lists etc. |
! |
relational not, complement, ! a yields true or false |
* |
multiply, a * b |
/ |
divide, a / b |
% |
modulo, a % b |
+ |
add, a + b |
- |
subtract, a - b |
<< |
shift left, left operand is shifted left by right operand bits (multiply by 2) |
>> |
shift right, left operand is shifted right by right operand bits (divide by 2) |
< |
less than, result is true or false, a < b |
<= |
less than or equal, result is true or false, a <= b |
> |
greater than, result is true or false, a > b |
>= |
greater than or equal, result is true or false, a >= b |
== |
equal, result is true or false, a == b |
!= |
not equal, result is true or false, a != b |
& |
bitwise and, a & b |
^ |
bitwise exclusive or XOR, a ^ b |
| |
bitwise or, a | b |
&& , and |
relational and, result is true or false, a < b && c >= d |
|| , or |
relational or, result is true or false, a < b || c >= d |
= |
store or assignment |
+= |
add and store |
-= |
subtract and store |
*= |
multiply and store |
/= |
divide and store |
%= |
modulo and store |
<<= |
shift left and store |
>>= |
shift right and store |
, |
separator as in ( y=x,z=++x ) |
~ |
bitwise not, ones complement, ~a |
- |
unary minus, - a |
+ |
unary plus, + a |
&= |
bitwise and and store |
^= |
bitwise exclusive or and store |
|= |
bitwise or and store |
Basic Data Structures
List
- List is a collection which is ordered and changeable. Allows duplicate members.
- Syntax:
thislist = ["apple", "banana", "cherry"]
- List items are ordered, changeable, and allow duplicate values.
- List items are indexed, the first item has index
[0]
, the second item has index[1]
etc. - The list is changeable, meaning that we can change, add, and remove items in a list after it has been created.
- To determine how many items a list has, use the
len()
function. - A list can contain different data types:
list1 = ["abc", 34, True, 40, "male"]
- It is also possible to use the
list()
constructor when creating a new listthislist = list(("apple", "banana", "cherry")) # note the double round-brackets
Tuple
- Tuple is a collection which is ordered and unchangeable. Allows duplicate members.
- A tuple is a collection which is ordered and unchangeable.
- Syntax:
thistuple = ("apple", "banana", "cherry")
- Tuple items are ordered, unchangeable, and allow duplicate values.
- Tuple items are indexed, the first item has index
[0]
, the second item has index[1]
etc. - When we say that tuples are ordered, it means that the items have a defined order, and that order will not change.
- Tuples are unchangeable, meaning that we cannot change, add or remove items after the tuple has been created.
- Since tuple are indexed, tuples can have items with the same value:
- Tuples allow duplicate values:
thistuple = ("apple", "banana", "cherry", "apple", "cherry")
- To determine how many items a tuple has, use the
len()
function:thistuple = ("apple", "banana", "cherry") print(len(thistuple))
- To create a tuple with only one item, you have to add a comma after the item, otherwise Python will not recognize it as a tuple.
thistuple = ("apple",) print(type(thistuple)) #NOT a tuple thistuple = ("apple") print(type(thistuple))
- It is also possible to use the
tuple()
constructor to make a tuple.thistuple = tuple(("apple", "banana", "cherry")) # note the double round-brackets print(thistuple)
Set
- Set is a collection which is unordered and unindexed. No duplicate members.
- A set is a collection which is both unordered and unindexed.
thisset = {"apple", "banana", "cherry"}
- Set items are unordered, unchangeable, and do not allow duplicate values.
- Unordered means that the items in a set do not have a defined order.
- Set items can appear in a different order every time you use them, and cannot be referred to by index or key.
- Sets are unchangeable, meaning that we cannot change the items after the set has been created.
- Duplicate values will be ignored.
- To determine how many items a set has, use the
len()
method.thisset = {"apple", "banana", "cherry"} print(len(thisset))
- Set items can be of any data type:
set1 = {"apple", "banana", "cherry"} set2 = {1, 5, 7, 9, 3} set3 = {True, False, False} set4 = {"abc", 34, True, 40, "male"}
- It is also possible to use the
set()
constructor to make a set.thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
Dictionary
- Dictionary is a collection which is unordered and changeable. No duplicate members.
- Dictionaries are used to store data values in key:value pairs.
- Dictionary items are presented in key:value pairs, and can be referred to by using the key name.
thisdict = { "brand": "Ford", "model": "Mustang", "year": 1964 } print(thisdict["brand"])
- Dictionaries are changeable, meaning that we can change, add or remove items after the dictionary has been created.
- Dictionaries cannot have two items with the same key.
- Duplicate values will overwrite existing values.
- To determine how many items a dictionary has, use the
len()
function.print(len(thisdict))
- The values in dictionary items can be of any data type
thisdict = { "brand": "Ford", "electric": False, "year": 1964, "colors": ["red", "white", "blue"] }
Flow Control
Conditional
if condition:
<commands>
elif condition2:
<commands>
else:
<commands>
Loops
For loop
- A
for
loop is used for iterating over a sequence (that is either a list, a tuple, a dictionary, a set, or a string). - This is less like the for keyword in other programming languages, and works more like an iterator method as found in other object-orientated programming languages.
- With the for loop we can execute a set of statements, once for each item in a list, tuple, set etc.
fruits = ["apple", "banana", "cherry"] for x in fruits: print(x)
- The for loop does not require an indexing variable to set beforehand.
- To loop through a set of code a specified number of times, we can use the range() function.
- The
range(b,e,i)
function returns a sequence of numbers, starting fromb
(0 as default), and increments byi
(1 by default), and ends at numbere
. - The
else
keyword in a for loop specifies a block of code to be executed when the loop is finished.
- The
- A nested loop is a loop inside a loop. The “inner loop” will be executed one time for each iteration of the “outer loop”:
adj = ["red", "big", "tasty"] fruits = ["apple", "banana", "cherry"] for x in adj: for y in fruits: print(x, y)
While loop
- With the
while
loop we can execute a set of statements as long as a condition is true. - Example: Print i as long as i is less than 6
i = 1 while i < 6: print(i) i += 1
- The
while
loop requires relevant variables to be ready, in this example we need to define an indexing variable, i, which we set to 1. - With the
break
statement we can stop the loop even if the while condition is true - With the continue statement we can stop the current iteration, and continue with the next.
- With the else statement we can run a block of code once when the condition no longer is true.
Functions
Definition
def function_name():
return
Call
function_name()
- We need not to specify the return type of the function.
- Functions by default return
None
- We can return any datatype.