Online Python Compiler & Debugger

Write, run, and debug Python code online. Set breakpoints and step through code in Server mode, or use the full IDE for multiple files, libraries, saved workspaces, sharing, and live collaboration—no setup required.

🚀 4,274,055 total executions (777,764 this month)
Output

Practice Python with coding challenges

Solve hands-on problems right in this editor: run the sample tests, submit, and get an AI code review.

All Python challenges
Easy

Average of Three

Average three whole numbers.

BeginnerLearning-pathVariables
Easy

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

BeginnerLearning-pathVariables
Hard

Course Schedule Order

Order courses so every prerequisite comes first.

AdvancedGraphsHackathonTopological-sort
No solutions yet
Medium

Island Perimeter

Measure the coastline of land cells in a grid.

AdvancedGridsHackathon
No solutions yet
Medium

K-th Smallest Element

Find the k-th smallest value without fully sorting.

AdvancedCompetitive-programmingSorting
No solutions yet
Hard

Median of Two Sorted Arrays

Find the median of two sorted lists combined.

AdvancedBinary-searchCompetitive-programming
No solutions yet
Medium

Game of Life Step

Advance Conway's Game of Life by one generation.

AdvancedGridsHackathonSimulation
No solutions yet
Hard

Shortest Delivery Tour

Visit every city once and return home as cheaply as possible.

AdvancedBitmasksCompetitive-programmingDynamic-programming
No solutions yet
Hard

Strongly Connected Components

Count groups of nodes that can all reach each other.

AdvancedCompetitive-programmingGraphs
No solutions yet
Hard

Longest Path in a DAG

Find the heaviest path in a task dependency graph.

AdvancedGraphsHackathonTopological-sort
No solutions yet
Hard

Matrix Chain Multiplication

Find the cheapest order to multiply a chain of matrices.

AdvancedCompetitive-programmingDynamic-programming
No solutions yet
Hard

Minimum Window Substring

Find the shortest piece of text containing all required characters.

AdvancedCompetitive-programmingSliding-windowStrings
No solutions yet

🐍 About This Python Online Executor

The CodeUtility Python Executor lets you write, run, and test Python code directly in your browser - no setup or installation required. It’s powered by a secure sandbox that supports real Python versions from 3.10 to 3.13.

Whether you’re learning Python for the first time, testing quick snippets, or debugging logic, this tool provides a fast, distraction-free coding environment. You can experiment freely and see output instantly in the built-in console.

It’s ideal for beginners, students, and developers who need a lightweight online IDE for Python practice or quick prototyping.

More than a code runner

Use a multi-file editor, an isolated execution terminal, runtime-specific libraries, persistent workspaces, sharing, and real-time collaboration from the same executor.

How to use this executor?

Choose a runtime, open or create a file, write your code, and select Run. Output appears in the terminal, while signed-in users can keep files in a workspace, install libraries, and collaborate through shares.

  1. Select a version and edit the current file or open another workspace file.
  2. Run the code, provide input in the terminal when requested, and review saved run history.
  3. Use libraries, workspace tools, sharing, and chat when your task needs more than one snippet.

💡 Python Basics & Examples You Can Try Above

1. Declaring Variables and Constants

Python is dynamically typed, so you don’t need to declare types explicitly. There's no built-in constant keyword, but by convention, constants are written in all-uppercase.

# Variables
x = 10
pi = 3.14
name = "Alice"
is_active = True

# Constants (by convention)
MAX_USERS = 100
APP_NAME = "CodeUtility"

# Constants can still be reassigned (not enforced)
MAX_USERS = 200  # ⚠️ Technically allowed, but discouraged

2. Conditionals

Control logic with if, elif, and else blocks. In Python 3.10+, you can also use match-case as a switch-case alternative.

# Traditional if-elif-else
x = 2
if x == 1:
    print("One")
elif x == 2:
    print("Two")
else:
    print("Other")

Alternative: match-case (Python 3.10+)

# Requires Python 3.10+
x = 2
match x:
    case 1:
        print("One")
    case 2:
        print("Two")
    case _:
        print("Other")

3. Loops

for is used to iterate over sequences, while runs as long as a condition is true.

for i in range(3):
    print(i)

count = 3
while count > 0:
    print(count)
    count -= 1

4. Lists

Lists are ordered, mutable collections. You can access elements by index.

fruits = ["apple", "banana"]
print(fruits[0])
print(len(fruits))

5. List Manipulation

Add, remove, slice, and reverse lists. List comprehensions allow compact iteration.

fruits.append("cherry")
fruits.insert(1, "kiwi")
fruits.remove("banana")
fruits.pop()

print(fruits[1:3])
print(fruits[::-1])

squares = [x*x for x in range(5)]

6. Console Input/Output

Use input() to read from users and print() to display output.

You can print multiple lines using \n (newline character) or by calling print() multiple times.

# Read input
name = input("Enter your name: ")
print("Hello", name)

# Print multiple lines
print("Line 1\nLine 2\nLine 3")

# Or use multiple print statements
print("Line A")
print("Line B")
print("Line C")

7. Functions

Functions help organize code and allow reuse. Use parameters and return values.

def greet(name):
    return "Hello " + name

print(greet("Alice"))

8. Dictionaries

Store key-value pairs. Keys are unique and values can be accessed via keys.

person = {"name": "Bob", "age": 25}
print(person["name"])
print(person.get("email", "Not provided"))

9. Exception Handling

Use try and except to catch and handle errors gracefully.

try:
    x = 1 / 0
except ZeroDivisionError:
    print("Cannot divide by zero")

10. File I/O

Read from and write to files using open().

with open("data.txt", "w") as f:
    f.write("Hello World")

with open("data.txt", "r") as f:
    print(f.read())

11. String Manipulation

Python strings have powerful methods like strip(), replace(), and split().

text = "  Hello World  "
print(text.strip())
print(text.upper())
print(text.replace("Hello", "Hi"))
print(text.split())

12. Classes & Objects

Define reusable blueprints with classes. Use __init__ to initialize objects.

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        return "Hi, I'm " + self.name

p = Person("Alice")
print(p.greet())

🐞 How to Debug Python Code Online

Use the online Python debugger to find logic errors without installing Python or a desktop IDE. Debugging runs with a real Python runtime in Server mode and supports Python 3.10 through 3.13.

  1. Select a server-based Python version from the runtime menu.
  2. Click beside a line number to set one or more breakpoints.
  3. Select Debug to start the program and pause on the first matching breakpoint.
  4. Inspect the current line and variables, then use Continue, Step Over, Step Into, or Step Out.
  5. Select Stop when you want to end the debugging session.

For a quick Python online debug session, start with a small reproducible example and place a breakpoint just before the value becomes unexpected. Server mode can also run workspace files and installed libraries.