Mario Python Cheatsheet
Introduction
When I first started learning Python, I found myself constantly Googling the basics. I'd make a little progress here and there, but found myself stuff stuck on simple, quick items.I think it's because a lot of examples use random numbers and lists, etc. that didn't stick with me. As a huge Nintendo and Mario fan, I created this fun cheatsheet that explains Python concepts using examples from Mario Bros.
Python Cheatsheet
Data Types
# Numbers
coins = 42 # integer
jump_height = 3.14 # float
star_power = 1 + 2j # complex number
# Strings
character = "Mario" # can use single or double quotes
mario_quote = """
It's-a me,
Mario!
"""
# Booleans
has_mushroom = True
is_small = False
# None type
empty_block = None # represents absence of value
Variables
# Basic assignment
lives = 3
player_name = "Luigi"
# Multiple assignment
coins, stars, mushrooms = 100, 5, 2
# Variable naming rules:
mario_bros = "OK" # Can use letters, numbers, underscores
_princess = "OK" # Can start with underscore
1up = "NOT VALID" # Cannot start with number
Operators
# Arithmetic
coins + bonus_coins # Addition
lives - damage # Subtraction
coins * multiplier # Multiplication
points / divisor # Division
coins // bowser # Floor division
score % high_score # Modulus (remainder)
mushroom ** power_up # Exponentiation
# Comparison
mario == luigi # Equal to
bowser != peach # Not equal to
score > high_score # Greater than
coins < target # Less than
points >= threshold # Greater than or equal to
lives <= max_lives # Less than or equal to
# Logical
has_star and has_flower # True if both are true
has_mushroom or is_fire # True if at least one is true
not is_small # Inverts boolean value
String Operations
# String concatenation
character = "Mario"
action = "jumps"
message = character + " " + action # "Mario jumps"
# String methods
name = "bowser"
name.upper() # "BOWSER"
name.capitalize() # "Bowser"
name.replace('b', 'w') # "wowser"
# String formatting
character = "Mario"
coins = 99
# f-strings (Python 3.6+)
print(f"{character} collected {coins} coins!")
# String slicing
world = "World 1-1"
world[0] # 'W'
world[0:5] # 'World'
world[-3:] # '1-1'
Basic List Operations
# Creating lists
characters = ["Mario", "Luigi", "Peach", "Yoshi"]
inventory = ["Mushroom", 3, "Star", True]
# List operations
characters.append("Toad") # Add to end
characters.pop() # Remove and return last item
characters.insert(0, "Wario") # Insert at specific position
len(characters) # Get length of list
# List slicing
mario_bros = characters[0:2] # Get first two elements
reversed_chars = characters[::-1] # Reverse the list
Tuples
# Creating tuples (immutable lists)
coordinates = (3, 5) # Mario's position in level
pipe_location = (100, 200, "Underground")
single_item = (1,) # Need comma for single-item tuple
# Accessing tuple elements
x, y = coordinates # Tuple unpacking
world_coords = pipe_location[:2] # First two elements
# Common tuple operations
len(pipe_location) # Number of elements
"Underground" in pipe_location # Check if value exists
mario_pos = coordinates + (0,) # Combine tuples
Dictionaries
# Creating dictionaries
character_stats = {
"Mario": {"lives": 3, "coins": 0, "power": "Fire"},
"Luigi": {"lives": 3, "coins": 0, "power": "None"}
}
power_ups = {
"Mushroom": "Super Mario",
"Fire Flower": "Fire Mario",
"Star": "Invincible"
}
# Accessing and modifying
mario_lives = character_stats["Mario"]["lives"]
power_ups["Ice Flower"] = "Ice Mario" # Add new item
del power_ups["Mushroom"] # Remove item
# Dictionary methods
all_powers = power_ups.keys()
power_effects = power_ups.values()
power_items = power_ups.items() # Get key-value pairs
# Check if key exists
if "Star" in power_ups:
print("Star power available!")
Sets
# Creating sets (unique items only)
available_characters = {"Mario", "Luigi", "Peach", "Yoshi"}
unlocked_worlds = {1, 2, 3}
# Set operations
available_characters.add("Toad")
available_characters.remove("Peach")
# Set mathematics
player1_items = {"Mushroom", "Star", "Coin"}
player2_items = {"Flower", "Mushroom", "Shell"}
both_have = player1_items & player2_items # Intersection
all_items = player1_items | player2_items # Union
unique_to_player1 = player1_items - player2_items # Difference
Basic Functions
# Defining a function
def power_up(character):
return f"{character} got a Super Star!"
# Function with default parameter
def collect_coins(amount=100):
return f"Collected {amount} coins!"
# Function with multiple parameters
def calculate_score(coins, time_left):
return coins * time_left
# Calling functions
power_up("Mario") # "Mario got a Super Star!"
collect_coins() # "Collected 100 coins!"
calculate_score(50, 120) # 6000
For Loops
# Basic for loop
for character in ["Mario", "Luigi", "Peach"]:
print(f"{character} is ready to play!")
# Range-based for loop
for world in range(1, 9):
print(f"Starting World {world}")
# Looping through dictionaries
for character, stats in character_stats.items():
print(f"{character} has {stats['lives']} lives")
# Enumerate for index and value
for level, boss in enumerate(["Bowser Jr", "Kamek", "Bowser"], 1):
print(f"Level {level} Boss: {boss}")
While Loops
# Basic while loop
lives = 3
while lives > 0:
print(f"Lives remaining: {lives}")
lives -= 1
# Break and continue
coins = 0
while True:
coins += 1
if coins == 50:
print("Got a 1-Up!")
continue
if coins >= 100:
print("Extra life earned!")
break
# Game-style loop
player_power = "Small"
while player_power != "Super":
print("Looking for mushroom...")
found_item = "Mushroom" # Simulated item find
if found_item == "Mushroom":
player_power = "Super"
print("Power up!")
Putting It All together
Here's an example to tie everything together.
# Track Mario's progress through a level
def play_level(level_number):
player = {
"character": "Mario",
"power": "Small",
"coins": 0,
"position": 0
}
obstacles = [
("Goomba", 50),
("Pipe", 100),
("Koopa", 150),
("Flag", 200)
]
for obstacle, position in obstacles:
player["position"] = position
if obstacle == "Flag":
print("Level Complete!")
break
print(f"Encountered {obstacle} at position {position}")
if player["power"] == "Small":
print("Better find a mushroom!")
# Level progression system
worlds = {
1: {"levels": 4, "unlocked": True},
2: {"levels": 4, "unlocked": False},
3: {"levels": 4, "unlocked": False}
}
for world_num, world_info in worlds.items():
if not world_info["unlocked"]:
continue
print(f"World {world_num}")
for level in range(1, world_info["levels"] + 1):
print(f"Playing level {world_num}-{level}")
Final Thoughts
Use meaningful variable names - player_lives is better than pl
Use comments to explain WHY, not WHAT (the code should be self-explanatory)
Start with simple built-in functions before moving to complex libraries
Practice using the interactive Python shell (REPL) to test small code snippets
Remember, everyone begins with the basics. I'm a big believer in learning the fundamentals before branching out to more advanced topics. Coding has never been my strongest skill so practice and persistence are key. More to come as I have some fun project ideas in mind for 2025!
Subscribe to my newsletter
Read articles from David Galiata directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
David Galiata
David Galiata
Hi, ๐ my name is David Galiata. Iโm a Security Architect at Aquia.us. I am passionate about IT, cloud, and security. I write blog posts about a variety of topics like AWS, Azure, cybersecurity, and certifications.