RayCC
Cover Image

Python cheat sheet

6 mins

Python Programming Language Study Cheatsheet

Table of Contents

Terminal

python3 MY_PY.py
python3 --version
pip list
pip install "package name"

Virtual environment

python3 -m venv MY_ENV
source MY_ENV/bin/activate
deactivate

PEP 8

Indent: 4 space.

Encoding: UTF-8.

Line Length: max 72 letters.

Whitespace

Blank Line

Import

__Dunder__(double underscore)

# Comments

if

Prefix, Suffix: use .startswith(), .endswith().

Avoid: is True, is False.

Naming

|:-:|:-:| | mypackages | flatcase | | MyClass | PascalCase | | MyException | PascalCase | | ExceptionError | PascalCase | | __global_variable__ | __snake_case__ | | my_variable | snake_case | | my_function | snake_case | | CONSTANT | SCREAM_CASE | | method param start with | self, cls |


Declaration

1
2
3
4
5
# from my_from import my_import as my_module
# from my_from import *
i = 1
HELLO = "hello"  # const
world = "world"
1
2
3
4
5
6
my_list = [0,1,2,3]
my_list2 = [x for x in range(4)]
# .append(x) .extend(iterable) .insert(i, x) .pop(i=-1) 
# .clear() .count(x) .reverse()
# del my_list[i] == my_list.remove(x)
# my_list.sort() == my_list = sorted(my_list)
1
2
my_tuple = (4,5,6)
# Swap: a, b = b, a OR (a, b) = (b, a)
1
2
my_dictionary = {7: 7, 8: 8, 9: 9}
# .keys() .values() .items() .get(key, "Not Found") .update(my_dict_2)
1
2
3
my_set = {10,11,12}
# .add(x) .discard(x) 
# .union(my_set_2) .intersection(my_set_2) .difference(my_set_2)

Basic

1
2
3
4
5
6
7
8
print("hello \
    world")
print("%s %s" % ("hello", world))  # %s, %d, %f, %0.1f, %b, %o, %x
print("{:*>10} {}".format("hello", world))  # Align: ^ middle, < left, > right. 
print(f"{HELLO} {world}")
print(world[1:4:2])  # ol  [start:end:step]

num = int(input("input number"))
1
2
3
4
# +, -, *, /, % mod, ** power, // divide without the remainder
# ==, !=, in, not in, is, is not
# +, * with string. 
# pow(x, y, z) == x ** y % z
1
2
3
4
5
6
if True:
    pass
elif False:
    pass
else:
    pass
1
2
3
4
while i in range(1,11):
    print(i, end="")
    i = i + 1
print()
1
2
for index, item in enumerate(my_list):
    print("index: ", index, ", item: ", item)  # index:  0 , item:  0 ...
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
def test(*args_tuple, **args_dict):
    # *args_tuple: Multiple arguments as tuple. 
        # test(1,2,3) -> args = (1,2,3). 
    # **args_dict: Multiple arguments as dictionary. 
        # test(1=1, 2=2) -> args = {1:1, 2:2}. 
    return 1, 2, 3  # Return (1, 2, 3) in tuple. 

def test2(arg1, arg2 = "arg2"):
    print(arg1, arg2)  # arg1 arg3
    return
test2(arg2 = "arg3", arg1="arg1")

test3 = test2
test3("arg4")  # arg4 arg2

(lambda x, y: x if x > y else y)(5,10)  # 10
1
2
3
4
5
6
7
8
9
list(map(lambda x: x ** 2 , my_list))  # [0, 1, 4, 9]
map_obj = map(function, iterable)  # Append function(elements). 

list(filter(lambda x: x % 2 == 0, my_list))  # [0, 2]
filter_obj = filter(function, iterable)  # If function(elements) is True, then append. 

sorted([(1, 2), (3, 1), (5, 0)], key=lambda point: point[1])  
# [(5, 0), (3, 1), (1, 2)]  # sort with y axis
sorted(my_list, key=lambda x:len(x))  # Sort with length. 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class MyClass:
    def __init__(self):
        pass
    
    def my_method(self, arg):
        pass

class ChildClass(MyClass):
    def __init__(self):
        super().__init__()
        pass

class UserDefinitionError(Exception):
    def __init__(self, message):
        super().__init__("user definition error: " + message)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
try:
    print("error test")
    # raise UserDefinitionError("raise")
    assert False, "assert"  
    # assert boolean, message: If boolean is false, then AssertionError with message. 
except UserDefinitionError as e:
    print(e)    # user definition error: test
except AssertionError as e:
    print(e)  # assert
except Exception as e:
    print(e)
finally:
    pass
# ZeroDivisionError, NameError, TypeError, 
# SyntaxError, FileNotFoundError, IndexError, KeyError, ValueError
1
2
3
4
with open("my_text.txt", "a", encoding="utf-8") as my_text:
    # mode: r w a b rb wb ab
    # my_text.readline() .readlines() .write("...\n")
    pass

Other Technic

1
2
3
4
zipped = zip(my_list, my_tuple)
print(list(zipped))  # [(0, 4), (1, 5), (2, 6)]
print(*my_list)  # 0 1 2 3 Unpacking. 
print([*my_list, *my_tuple])  # [0, 1, 2, 3, 4, 5, 6]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Decorator
def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("Before decorator call.")
        func(*args, **kwargs)  # say_hello()
        print("After decorator call.")
    return wrapper

@my_decorator
def say_hello(word):
    print(word)

say_hello("Hello!")  
# Before the function is called. \n Hello! \n After the function is called.

Module

1
2
3
import copy
shallow_copied_list = my_list.copy()
deep_copied_list = copy.deepcopy(my_list)  # Also copy nested list. 
1
2
3
4
5
6
7
8
9
import random
random.seed(42)  # Set seed. 
rand_float = random.random()  # [0, 1) Float. 
rand_int = random.randint(1, 10)  # [1, 10] Int. 
rand_uniform = random.uniform(1.0, 10.0)  # [1, 10] Float. 
rand_range = random.randrange(10)  # [0, 10) Int. 
rand_choice = random.choice(my_list)  # my_list can be: list, tuple, string. 
rand_sample = random.sample(my_list, 3)  # Choose 3 random items in my_list without duplicate. 
random.shuffle(my_list)
1
2
3
4
import sys
print(sys.argv)  # ['/Users/s/Desktop/python_summary.py', arg1, arg2, ...]
# sys.exit(0)  # Normal exit.
# .path .version .platform .copyright
1
2
3
4
5
import time
# .time() .sleep(seconds)

from datetime import datetime
print(datetime.now())
1
2
3
4
import pickle
# pickle.dump(obj, file)  # Write obj in file.
# pickle.load(file)  # Read file.
# Open mode = rb wb ab.
1
2
3
4
5
6
7
8
import logging
logging.basicConfig(filename="app.log", level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
# level = DEBUG < INFO < WARNING < ERROR < CRITICAL
logging.debug("debugging message")  # 2023-10-01 12:34:56,789 - DEBUG - debugging message
logging.info("information message")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical error message")

Package

my_package_folder
├── __init__.py
└── my_module.py

import my_package_folder.my_module

In Program

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
logger = logging.getLogger(__name__)
# If run this file directly, __name__ = __main__. 
# If import this file, __name__ is something else.

def main():
    logging.basicConfig(level=logging.INFO)
    logger.info('Started')
    # ...
    logger.info('Finished')
    print(logger.name, logger.level, logger.handlers)  #~ __main__ 0 []

if __name__ == '__main__':
    main()