Python 3 Cheat Sheet

Update (Nov 19 2018): Added exceptions and classes.

I’ve created this Python 3 cheat sheet to help beginners remember Python language syntax. You can also download this cheat sheet as a beautiful PDF here.

NOTE: This cheat sheet is a work in progress and is not complete yet. I’ll be adding new stuff to it over the next few weeks. So, be sure to come back and get the latest version.

If you’re starting out with Python and are looking for a fun and comprehensive tutorial, check out my YouTube tutorials. I have two Python tutorials. If you have no or little programming experience, I suggest you check out my Python tutorial for beginners. Otherwise, if you know the basics (eg variables, functions, conditional statements, loops) and are looking for a tutorial that gets straight to the point and doesn’t treat you like a beginner, check out my Python tutorial for programmers.

If you enjoy this post, please spread the love by sharing this post with others.


a = 1       # integer
b = 1.1     # float
c = 1 + 2j  # complex number (a + bi)
d = “a”     # string
e = True    # boolean (True / False)


x = “Python”

# Formatted strings
name = f”{first} {last}”

# Escape sequences
\” \’ \\ \n

# String methods
x.replace(“a”, “b”)
“a” in x

Type Conversion


Falsy Values


Conditional Statements

if x == 1:  
elif x == 2:  

# Ternary operator 
x = “a” if n > 1 else “b”

# Chaining comparison operators
if 18 <= age < 65:


for n in range(1, 10): 

while n < 10: 
    n += 1


def increment(number, by=1):   
    return number + by

# Keyword arguments 
increment(2, by=1)

# Variable number of arguments 
def multiply(*numbers): 
    for number in numbers: 
        print number 

multiply(1, 2, 3, 4)

# Variable number of keyword arguments 
def save_user(**user):  

save_user(id=1, name="Mosh")


# Creating lists
letters = ["a", "b", "c"]     
matrix = [[0, 1], [1, 2]]
zeros = [0] * 5
combined = zeros + letters
numbers = list(range(20))

# Accessing items
letters = ["a", "b", "c", "d"]
letters[0]  # "a"
letters[-1] # "d"

# Slicing lists 
letters[0:3]   # "a", "b", "c"
letters[:3]    # "a", "b", "c"
letters[0:]    # "a", "b", "c", "d"
letters[:]     # "a", "b", "c", "d"
letters[::2]   # "a", "c"
letters[::-1]  # "d", "c", "b", "a" 

# Unpacking 
first, second, *other = letters 

# Looping over lists 
for letter in letters: 

for index, letter in enumerate(letters): 

# Adding items 
letters.insert(0, "-")

# Removing items 
del letters[0:3]

# Finding items 
if "f" in letters: 

# Sorting lists 

# Custom sorting 
items = [
    ("Product1", 10),
    ("Product2", 9),
    ("Product3", 11)

items.sort(key=lambda item: item[1])

# Map and filter 
prices = list(map(lambda item: item[1], items))
expensive_items = list(filter(lambda item: item[1] >= 10, items))

# List comprehensions 
prices = [item[1] for item in items]
expensive_items = [item for item in items if item[1] >= 10]

# Zip function 
list1 = [1, 2, 3]
list2 = [10, 20, 30]
combined = list(zip(list1, list2))    # [(1, 10), (2, 20)]


point = (1, 2, 3)
point(0:2)     # (1, 2)
x, y, z = point 
if 10 in point: 

# Swapping variables 
x = 10
y = 11
x, y = y, x 


from array import array 

numbers = array("i", [1, 2, 3])


first = {1, 2, 3, 4}
second = {1, 5}

first | second  # {1, 2, 3, 4, 5}
first & second  # {1}
first - second  # {2, 3, 4}
first ^ second  # {2, 3, 4, 5}

if 1 in first: 


point = {"x": 1, "y": 2}
point = dict(x=1, y=2)
point["z"] = 3
if "a" in point: 
point.get("a", 0)   # 0
del point["x"]
for key, value in point.items(): 

# Dictionary comprehensions 
values = {x: x * 2 for x in range(5)}

Generator Expressions

values = (x * 2 for x in range(10000))
len(values)  # Error
for x in values: 

Unpacking Operator

first = [1, 2, 3]
second = [4, 5, 6]
combined = [*first, "a", *second]

first = {"x": 1}
second = {"y": 2}
combined = {**first, **second}


# Handling Exceptions 

except (ValueError, ZeroDivisionError):
  # no exceptions raised
  # cleanup code 

# Raising exceptions 
if x < 1: 
    raise ValueError(“…”)

# The with statement 
with open(“file.txt”) as file: 


# Creating classes
class Point: 
    def __init__(self, x, y): 
        self.x = x
        self.y = y 

    def draw(self): 

# Instance vs class attributes
class Point: 
    default_color = “red”

    def __init__(self, x, y): 
        self.x = x

# Instance vs class methods
class Point: 
    def draw(self): 
    def zero(cls): 
        return cls(0, 0)

# Magic methods


# Private members 
class Point: 
    def __init__(self, x): 
        self.__x = x

# Properties 
class Point: 
    def __init__(self, x): 
        self.__x = x

    def x(self):    
        return self.__x     

    def x.setter(self, value): 
        self.__x = value 

# Inheritance
class FileStream(Stream): 
    def open(self): 

# Multiple inheritance 
class FlyingFish(Flyer, Swimmer): 

# Abstract base classes
from abc import ABC, abstractmethod

class Stream(ABC): 
    def read(self): 

# Named tuples 
from collections import namedtuple

Point = namedtuple(“Point”, [“x”, “y”])
point = Point(x=1, y=2)
Hi! My name is Mosh Hamedani. I’m a software engineer with two decades of experience and I’ve taught over three million people how to code or how to become professional software engineers through my YouTube channel and online courses. It’s my mission to make software engineering accessible to everyone.
Tags: ,

33 responses to “Python 3 Cheat Sheet”

  1. Brian says:

    Thank you Mosh!!

  2. Mojtaba Jahani says:

    Hi and thanks for this awesome course.
    I think there is a typo in Type Conversion part of Python cheat sheet for string conversion.
    str(x) instead of string(x)

  3. chakshudiwan says:

    Great Cheatsheet. Just had a glance at Tuples Block.
    Use Square brackets for print.

    Thankyou for sharing.

  4. antiViruss says:

    thanks sir now i will be enjoying the learning

  5. Hassan Eman says:

    you are very good teacher MOSH

  6. Trahloc says:

    Hello, pretty sure you have a typo on the first page. “Numer functions” was probably meant to be “Number functions” since google’s only real result searching for that exact phrase and python is this pdf.

  7. G Srinivas Rao says:

    You are great Mosh!! you have given all the codes at one place. This is great for beginners like me.

  8. Abdelkrim Tmane says:

    Good Job Mosh, I am a network engineer for so many years, I never code before, it was a nightmare for me, but with this class you made it not just easy but also a fun thing to do.

    Thank you so much

  9. Ajay roy says:

    I will come back anf visit again please complete this cheatsheet with an example

  10. jakub says:

    Tnx Mosh you are best teacher online.

  11. Ibrahim Suleiman says:

    Thank you mosh nice cheat sheet

  12. Zabil Ibayev says:

    Thanks a lot!

  13. amanat says:

    values = {x * 2 for x in range(10)}
    print(values) # no Error

  14. thank u very much sir ,i already watched your 6 hours python tutorial .As a beginner i enjoyed it

  15. Vijay says:

    Thanks sir I have learned a lot from you

  16. Tosh Jaiswal says:

    Thanks Mosh!

  17. James Liew says:

    Thank you so much Mosh, this helped me a lot. 🙂

  18. Manjunatha Lohitsa says:

    Thank you soo much Mr. Mosh, this tutorials are awsome

  19. Ezra Mbilinyi says:

    Thank you so much Mosh…

  20. Ashwin Kumar says:

    Thanks Mosh, you’re classes are very helpful and as complete new beginner it help me a lot

  21. delwar hossain says:

    Good things

  22. Rachel says:

    Nice list!
    I’d say, falsy values should include {}, set() and even False 😉

  23. Random says:

    Thank you sooooooooo much Mosh!

  24. wael says:

    Thank you Mosh hamedani for the valuable information, but I want to know where are you from? You seem Arab.

  25. hamza9119 says:

    You are the best in programming who ever are the rest >

  26. Sir amin says:

    You are great and the beeeeeeeest
    Thanks a million 😊

  27. kundai says:

    Thank you very much!!!!

  28. dude amazing cheat sheet love it

  29. James B White says:

    Excellent cheat sheet!

  30. Mike says:

    Hello, Mosh this is really amazing thank you so much
    I really enjoying watching and learning your videos

Leave a Reply

Connect with Me
  • Categories
  • Popular Posts