In this book, you will learn how to use artificial intelligence to create mini-games. You will attempt to recreate the look and feel of various classic video games. The intention is not to violate copyright or anything of the sort, but instead to learn the limitations and the power of AI. Instead, you will simply be learning about whether or not you can use AI to help you know how to create video games.
Decorators are a concept that can trip up new Python users. You may find this definition helpful: A decorator is a function that takes in another function and adds new functionality to it without modifying the original function. Functions can be used just like any other data type in Python. A function can be passed to a function or returned from a function, just like a string or integer.
If you're trying to make sure your software is fast, or at least doesn't get slower, automated tests for performance would also be useful. But where should you start? My suggestion: start by testing big-O scaling. It's a critical aspect of your software's speed, and it doesn't require a complex benchmarking setup. In this article I'll cover: A reminder of what big-O scaling means for algorithms. Why this is such a critical performance property.
If you want to learn Python or improve your skills, a detailed plan can help you gauge your current status and navigate toward a target goal. This tutorial will help you craft a personal Python learning roadmap so you can track your progress and stay accountable to your goals and timeline: The steps in this tutorial are useful for Python developers and learners of all experience levels. While you may
Strengthen Your Python Foundations If you're just getting started with Python, building a solid foundation is the best investment you can make. The fundamentals you learn now will support everything you do later, from data analysis to web development to AI. These beginner-friendly tutorials and courses help you sharpen the core skills you'll use every day in Python, including loops, operators, lists, and functional techniques:
If you're using print calls to debug your Python code, consider using f-strings with self-documenting expressions instead. A broken Python program Here we have a program that makes a random math prompt and then validates whether the answer give by the user is correct: This program doesn't work right now: $ python3 check_mult.py What's 9 multiplied by 8? 72 That's incorrect Our program always tells us that our answer is incorrect.
And there's another thing I can never remember, especially at this time of year when large-ish gatherings are more common. How many people are needed in a group to have a probability greater than 50% that two people share a birthday? This could be an ice-breaker in some awkward gatherings, but only if you're with a geeky crowd. Although the analytical proof is cool, writing Python code to explore this problem is just as fun. Here's my article from February exploring the Birthday Paradox:
In this quiz, you'll test your understanding of the LlamaIndex in Python: A RAG Guide With Examples tutorial. By working through this quiz, you'll revisit how to create and persist an index to disk, review how to reload it, and see why persistence improves performance, lowers costs, saves time, and keeps results consistent.
sys._jit.is_available(): Lets you know if the current build of Python has the JIT. Most binary builds of Python shipped will now have the JIT available, except the "free-threaded" or "no-GIL" builds of Python. sys._jit.is_enabled(): Lets you know if the JIT is currently enabled. It does not tell you if running code is currently being JITted, however.
Web development roles often emphasize frameworks like Flask, Django, and, more recently, FastAPI, along with database knowledge and REST API design. Employers often seek full-stack engineers who feel comfortable working on the backend as well as frontend, including JavaScript, HTML, and CSS. Data science positions highlight libraries like NumPy, pandas, Polars, and Matplotlib, plus an understanding of statistical concepts. Machine learning jobs typically add PyTorch or TensorFlow to the mix. Test automation roles likely require familiarity with frameworks such as Selenium, Playwright, or Scrapy.
Your code is easiest to read just after you've written it. Your future self will find your code far less readable days, weeks, or months after you've written it. When it comes to code readability, whitespace is your friend. Whitespace around operators Compare this: To this: I find that second one more readable because the operations we're performing are more obvious (as is the order of operations). Too much whitespace can hurt readability though: This seems like a step backward because we've lost those three groups we had before. With both typography and visual design, more whitespace isn't always better.
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Deprecations via warnings Michael #2: docs
You provide three tiers to your customers: Gold, Silver, and Bronze. And one of the perks of the higher tiers is priority over the others when your customers need you. Gold customers get served first. When no Gold customers are waiting, you serve Silver customers. Bronze customers get served when there's no one in the upper tiers waiting. How do you set up this queue in your Python program?
In this quiz, you'll test your understanding of the Python Inner Functions: What Are They Good For? tutorial. By working through this quiz, you'll revisit how inner functions work with enclosing scopes, when to use nonlocal to update captured state, how closures retain data across calls, and how decorators wrap a callable to extend behavior. You'll apply these ideas to organize helpers, reuse state, and write clear, maintainable functions in real projects.
Welcome to Vibe Coding Video Games with Python. In this book, you will learn how to use artificial intelligence to create mini-games. You will attempt to recreate the look and feel of various classic video games. The intention is not to violate copyright or anything of the sort, but instead to learn the limitations and the power of AI. Instead, you will simply be learning about whether or not you can use AI to help you know how to create video games.
To get the most out of this tutorial, you should have a basic knowledge of Python. Familiarity with general GUI programming concepts, such as event handling, widgets, and layouts, will also be beneficial. Installing NiceGUI Before using any third-party library like NiceGUI, you must install it in your working environment. Installing NiceGUI is as quick as running the python -m pip install nicegui command in your terminal or command line. This command will install the library from the Python Package Index (PyPI).
Easily create classes with rich, declarative attributes - Parameter objects - that include extended metadata for various purposes such as runtime type and range validation, documentation strings, default values or factories, nullability, etc. In this sense, Param is conceptually similar to libraries like Pydantic, Python's dataclasses, or Traitlets. A suite of expressive and composable APIs for reactive programming, enabling automatic updates on attribute changes, and declaring complex reactive dependencies and expressions that can be introspected by other frameworks to implement their own reactive workflows.
When you sign up for Python Morsels, you'll choose your current Python skill level, from novice to advanced. Based on your skill level, each Monday I'll send you a personalized routine with: a short screencast to watch (or read) a multi-part exercise to move you outside your comfort zone a mini exercise that you can accomplish in just 10 minutes links to dive deeper into subsequent screencasts and exercises
ctx = canvas.getContext("2d") URL = "/blog/floodfill-algorithm-in-python/_python.txt" async def load_bitmap(url: str) -> list[list[int]]: # Fetch the text file from the URL response = await fetch(url) text = await response.text() bitmap: list[list[int]] = [] for line in text.splitlines(): line = line.strip() if not line: continue row = [int(ch) for ch in line if ch in "01"] if row: bitmap.append(row) return bitmap
Well, I've been playing with a new tool that's been gaining a ton of steam, and honestly? I don't think I'm going back. It's called UV, and it comes from Astral, the same team behind the super-popular linter, ruff. The goal here is ambitious. UV wants to be the single tool that replaces pip, venv, pip-tools, and even pipx. It's an installer, an environment manager, and a tool runner all rolled into one. And because it's written in Rust, it's ridiculously fast.
I'm excited to announce that me and Audrey will be visiting Japan from November 12 to November 24, 2025! This will be our first time in Japan, and we can't wait to explore Tokyo. Yes, we'll be in Tokyo for most of it, near the Shinjuku area, working from coffee shops, meeting some colleagues, and exploring the city during our free time.
Excel gives you a huge toolbox of functions ( SUM, IF, VLOOKUP, INDEX, etc.), but eventually, you hit a wall. Maybe you want to do something more custom than Excel allows. Maybe your file slows down with too many rows. Or maybe there simply isn't a built-in function for exactly what you need. Python solves this by letting you build your own custom functions. That's why it's so powerful for data analysis-it's Excel without limits.
These terms included affirming the statement that we 'do not, and will not during the term of this financial assistance award, operate any programs that advance or promote DEI [diversity, equity, and inclusion], or discriminatory equity ideology in violation of Federal anti-discrimination laws,' Crary noted.
Every October, I do a maintenance pass on all my projects. At a minimum, that involves dropping support for whatever Python version is no longer supported and adding support for the most recently released Python version. While doing that, I go through the issue tracker, answer questions, and fix whatever I can fix. Then I release new versions. Then I think about which projects I should deprecate and figure out a deprecation plan for them.
Here's the task. I want to create a class to represent a track and field event held in a competition. This entry allows you to enter the raw results as reported by the officials-the athlete's bib number and the time they clocked in a race. It then computes the event's full results. There's more we could add to make this class more complete. But I won't. You can create a list of athletes that are competing in the track and field meeting:
How well do you know the different areas where Python shines? In this quiz, you'll revisit web apps and APIs, GUI apps, CLI tools, machine learning, and more. You'll also check what Python isn't suited for and which alternatives work better. Get ready to explore the wide scope of what you can do with Python.