Home Python
Post
Cancel

Python

1
print('Hello, World!')

’ ‘ can be used instead of “ “

Datatypes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
x = 'Hello World'  #str
x = 20  #int
x = 20.5  #float
x = 1j  #complex
x = ['apple', 'banana', 'cherry']  #list
x = ('apple', 'banana', 'cherry')  #tuple
x = range(6)  #range
x = {'name': 'John', 'age': 36}  #dict
x = {'apple', 'banana', 'cherry'}  #set
x = frozenset({'apple', 'banana', 'cherry'})  #rozenset
x = True  #bool
x = b'Hello'  #bytes
x = bytearray(5)  #bytearray
x = memoryview(bytes(5))  #memoryview

Operators

Arithmetic

OperatorNameExample
+Additionx + y
-Subtractionx - y
*Multiplicationx * y
/Divisionx / y
%Modulusx % y
**Exponentiationx**y
//Floor divisionx//y

Assignment

OperatorExampleSame As
=x = 5x + y
+=x += 5x = x + 5
-=x -= 5x = x - 5
*=x *= 5x = x * 5
/=x /= 5x = x / 5
%=x %= 5x = x % 5
**=x **= 5x = x ** 5
//=x //= 5x = x // 5

Comparison

OperatorNameExample
==equal tox == y
!=not equal tox != y
>greater thanx > y
<less thanx < y
>=greater than or equal tox >= y
<=less than or equal tox <= y

Logical

OperatorNameDescriptionExample
andANDreturns true if both statements are truex < 5 and x < 10
orORreturns true if one of the statements is truex < 5 or x < 4
notNOTreverse the result, returns false if the result is truenot(x < 5 and x < 10)

Bitwise

OperatorNameDescriptionExample
&ANDSets each bit to 1 if both bits are 1x & y
|ORSets each bit to 1 if one of two bits is 1x \| y
^XORSets each bit to 1 if only one of two bits is 1x ^ y
~NOTInverts all the bits~x
«Zero fill left shiftShift left by pushing zeros in from the right and let the leftmost bits fall offx << 2
»Signed right shiftShift right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall offx >> 2

In and Output

1
2
username = input('Enter username:') #write user input as string in variable
print(f'my name is {username}')

Casting

change the data type of a variable

1
2
3
4
5
6
str(3.0)  #convert to string
int(2.8)  #convert to int
float('3')  #convert to float
int(False) # 0
int(True) # 1
print(type(0)) # <class 'int'>

String Operations

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a = 'Hello, World!'
list('hello') #returns ['h', 'e', 'l', 'l', 'o']
a[1]  #returns the second letter (e)
a[:5]  #removes everything after the first 5 letters (Hello)
a[1:] #removes the first letter (ello, World!)
a[2:5] #removes the first 2 letters and the last 5 letters (llo)
a.upper()  #sets all letters as upper case
a.lower()  #sets all letters as lower case
a.strip()  #removes all whitespaces
a.replace('H', 'J')  #replase a letter
a.split(',')  # returns ['Hello', ' World!']
a.index('H')  #returns the index of a character in a string
a.__contains__('llo') #returns true
exec("print('Hello')") #runs string as python code
eval("2+2") #runs string as python expresion

eval() is used to evaluate a string as a python expression, while exec() is used to evaluate a string as a python statement. They are usefull to convert a string e.g. a function name stored in a config file to a python function name.

Lists

can contain different data types

Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
li = [69, 'banana', True]
print(li)
li[0] #returns the first element
li[-1] # short for: li[len(li)-1] (last element)
len(li) #returns the length
li.insert(2, 'watermelon') #insert an item at index 2
li.append('orange') #append an item at the end
li.remove('banana') #remove an  item
li.pop(1) #remove item at index 1
thislist = li.copy() #copy a list
tropical = ['mango', 'pineapple', 'papaya']
li.extend(tropical) #add one list to anouter
li.sort() #sort the actual list (returns None)
li.sort(reverse=True)  #sort the list descending
li.reverse() #reverse the list order
tropical.index('mango') #returns the index to a value
list.clear()  #clear the list content
del li #delete the entire list

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]

list3 = list1 + list2  #join two list
print(list3)
# ['a', 'b', 'c', 1, 2, 3]

Tuple

a tuple is a final array

1
eggs = ('hello', 42, 0.5)

multiple assignment trick

1
2
cat = ['fat', 'gray', 'loud']
size, color, disposition = cat

short for…

1
2
3
size = cat[0]
color = cat[1]
disposition = cat[2]

Comprehension

1
2
arr = [i for i in range(10) if i % 2 == 0]
# [0, 2, 4, 6, 8]

short for…

1
2
3
4
arr = []
for i in range(10):
    if i % 2 == 0:
        arr.append(i)
1
2
3
fruits = ['apple', 'banana', 'cherry', 'kiwi', 'mango']
newlist = [fruit for fruit in fruits if 'a' in fruit]
# ['apple', 'banana', 'mango']

short for…

1
2
3
4
newlist = []
for fruit in fruits:
    if 'a' in fruit:
        newlist.append(fruit)

i gets added to the array while condition == True

Dictionaries

1
2
3
4
5
6
7
8
9
10
thisdict = {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
print(thisdict)
thisdict.get('model')  #returns the value of the 'model' key
list(thisdict.keys())  #returns a list of the keys
list(thisdict.values()) #returns a list of all values
thisdict['year'] = 2018 #change a value
thisdict.update({'year': 2020}) #changa/add key:value pair
thisdict.pop('model') #remove an item
mydict = thisdict.copy() #copy the dictionary
dict(sorted(dic.items(), key=lambda item: item[1])) #sort dictionary

Flow Control

if else statement

1
2
3
4
5
6
7
8
a = 200
b = 33
if b > a:
    print('b is greater than a')
elif a == b:
    print('a and b are equal')
else:
    print('a is greater than b')

in can often be used instead of __contains__() but omly returns True if the list contains the full strings, while the function returns `True’ even if only a partial string is in the list.

1
2
3
4
fruits = ['apples', 'oranges', 'bananas']

if 'apples' in fruits:
    print('apples are in the list')

while loop

1
2
3
4
5
6
7
8
i = 0
while i < 6:
    i += 1
    if i == 3:
        continue  #restart the loop
    print(i)      #break to quit the loop

for loop

for each

1
2
3
4
5
6
fruits = ['apple', 'banana', 'cherry']
for item in fruits:
    print(item)

for i in range(5): #execute 5 times
    print(fruits)

match /switch case statement

only supported in python >= 3.10

1
2
3
4
5
6
7
8
n = 0
match n:
    case 0:
        print('printed if n = 0')
    case 1:
        print('printed if n = 1')
    case _:
        print('printed if none above apply')

It works with the following arguments:
(int, float, str, bytes, tuple, list, set, frozenset, dict, range, slice, type)

Functions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def my_function(fname, lname):
    return f'{fname} {lname}'

my_function('Emil', 'Refsnes')
iterable = [1, 2, 3]
map(my_function, iterable) #executes a specified function for each item in an iterable

x = lambda a: a + 10 #lambda/anonymous function
print(x(5))

var1 = my_function(fname, lname) #run func and store return value

var2 = my_function #set 'alias' for function 'my_function'

print(var(saracen,rhue))


Classes

public: standart /items are globaly availible private: 2 underscores at the beginning /items only availible in the current class protected: 1 underscore at the beginning /items only availible in the current class and subclasses

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Person:
    def __init__(self, name, age): #constructor //destructor: __del__
        self.name = name
        self.age = age

    def myfunc(self):
        print('Hello my name is ' + self.name)

class Student(Person): #Student is a chld class of person
    pass #Student inherits the constructor and all methods from person

p1 = Person('John', 36) #create object

print(p1.name)
print(p1.age)

p1.myfunc() #call method

Exceptions

1
2
3
4
5
6
7
8
try:
    print(x)
except NameError:
    print('Variable x is not defined')
except:
    print('Something else went wrong')
finally:
    print('The "try except" is finished')

File handling

r open file in read mode
r+ Opens a file for both reading and writing
w write content/overwrite existing content
w+ Opens a file for both writing and reading. Overwrites the existing file if the file exists. If the file does not exist, it creates a new file for reading and writing

1
2
3
4
5
6
with open('text.txt', 'w') as f: #open file in write mode and store in f
    f.write('Woops! I have deleted the content!') #write content/overwrite existing content

with open('text.txt', 'r') as f:  #open file in read mode and store in f
    f.read()  #returns file content as string

File operations

1
2
3
4
import shutil

shutil.copy('exp.py', 'Kap04/exp.py')
shutil.move('exp.py', 'Kap04/exp.py')

sys module

The sys.argv variable is a list in Python, which contains the command-line arguments passed to the script. The first item in this list is the name of the script. The list contains the rest of the arguments passed to the script.

1
2
3
4
import sys

arguments = sys.argv #returns a list of arguments
arguments.pop(0) #remove the first argument (the script name)

os module

1
2
3
4
5
6
7
8
9
10
11
12
import os

os.listdir('./') #list all files in the current directory
os.system('ls') #run a shell command


os.remove('exp.py') #delete file
os.rmdir('myfolder') #delete folder
os.mkdir('myfolder') #create folder
os.getcwd() #get current working directory
os.chdir('myfolder') #change directory
os.path.exists('myfile.txt') #check if file exists

Since you can run shell commands with os.system(), you can also run bash, nodejs or other python scripts with it.
Keep in mind that every time you use this function, you are using a new shell, so if you have to run multiple commands with the same shell connect them with ` && `

Zip Module

1
2
import zipfile as zf
from os import system as cmd

zip a file

1
2
3
def zip(file):
    zf.ZipFile(file + '.zip', 'w').write(file)
    cmd('rm -rf ' + file)

unzip a file

1
2
3
def unzip(file):
    zf.ZipFile(file).extractall()
    cmd('rm -fr ' + file)

backup a folder to a zip file

1
2
def backup(folder):
    zf.ZipFile(folder+'.zip', 'w').write(folder)

JSON Module

1
import json

Save data to file

1
2
3
dic = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as f:
    json.dump(dic, f) #write to file

Get data from file

1
2
with open('data.json', 'r') as f:
    data = json.load(f) #read from file

Exel Module

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import openpyxl
import math

wb = openpyxl.Workbook()

sheet = wb.active
sheet.title = 'myTable'  #select and name tatable
x, y = 1, 1

for i in range(-31, 31):
    sheet.cell(row=y, column=x).value = math.sin(i / 10)  #write into field
    y += 1

wb.save('table.xlsx')  #safe file
This post is licensed under CC BY 4.0 by the author.