Beyond the Basic Stuff with Python


Book Description

BRIDGE THE GAP BETWEEN NOVICE AND PROFESSIONAL You've completed a basic Python programming tutorial or finished Al Sweigart's bestseller, Automate the Boring Stuff with Python. What's the next step toward becoming a capable, confident software developer? Welcome to Beyond the Basic Stuff with Python. More than a mere collection of advanced syntax and masterful tips for writing clean code, you'll learn how to advance your Python programming skills by using the command line and other professional tools like code formatters, type checkers, linters, and version control. Sweigart takes you through best practices for setting up your development environment, naming variables, and improving readability, then tackles documentation, organization and performance measurement, as well as object-oriented design and the Big-O algorithm analysis commonly used in coding interviews. The skills you learn will boost your ability to program--not just in Python but in any language. You'll learn: Coding style, and how to use Python's Black auto-formatting tool for cleaner code Common sources of bugs, and how to detect them with static analyzers How to structure the files in your code projects with the Cookiecutter template tool Functional programming techniques like lambda and higher-order functions How to profile the speed of your code with Python's built-in timeit and cProfile modules The computer science behind Big-O algorithm analysis How to make your comments and docstrings informative, and how often to write them How to create classes in object-oriented programming, and why they're used to organize code Toward the end of the book you'll read a detailed source-code breakdown of two classic command-line games, the Tower of Hanoi (a logic puzzle) and Four-in-a-Row (a two-player tile-dropping game), and a breakdown of how their code follows the book's best practices. You'll test your skills by implementing the program yourself. Of course, no single book can make you a professional software developer. But Beyond the Basic Stuff with Python will get you further down that path and make you a better programmer, as you learn to write readable code that's easy to debug and perfectly Pythonic Requirements: Covers Python 3.6 and higher




Invent Your Own Computer Games with Python, 4th Edition


Book Description

Invent Your Own Computer Games with Python will teach you how to make computer games using the popular Python programming language—even if you’ve never programmed before! Begin by building classic games like Hangman, Guess the Number, and Tic-Tac-Toe, and then work your way up to more advanced games, like a text-based treasure hunting game and an animated collision-dodging game with sound effects. Along the way, you’ll learn key programming and math concepts that will help you take your game programming to the next level. Learn how to: –Combine loops, variables, and flow control statements into real working programs –Choose the right data structures for the job, such as lists, dictionaries, and tuples –Add graphics and animation to your games with the pygame module –Handle keyboard and mouse input –Program simple artificial intelligence so you can play against the computer –Use cryptography to convert text messages into secret code –Debug your programs and find common errors As you work through each game, you’ll build a solid foundation in Python and an understanding of computer science fundamentals. What new game will you create with the power of Python? The projects in this book are compatible with Python 3.




The Big Book of Small Python Projects


Book Description

Best-selling author Al Sweigart shows you how to easily build over 80 fun programs with minimal code and maximum creativity. If you’ve mastered basic Python syntax and you’re ready to start writing programs, you’ll find The Big Book of Small Python Projects both enlightening and fun. This collection of 81 Python projects will have you making digital art, games, animations, counting pro- grams, and more right away. Once you see how the code works, you’ll practice re-creating the programs and experiment by adding your own custom touches. These simple, text-based programs are 256 lines of code or less. And whether it’s a vintage screensaver, a snail-racing game, a clickbait headline generator, or animated strands of DNA, each project is designed to be self-contained so you can easily share it online. You’ll create: • Hangman, Blackjack, and other games to play against your friends or the computer • Simulations of a forest fire, a million dice rolls, and a Japanese abacus • Animations like a virtual fish tank, a rotating cube, and a bouncing DVD logo screensaver • A first-person 3D maze game • Encryption programs that use ciphers like ROT13 and Vigenère to conceal text If you’re tired of standard step-by-step tutorials, you’ll love the learn-by-doing approach of The Big Book of Small Python Projects. It’s proof that good things come in small programs!




Cracking Codes with Python


Book Description

Learn how to program in Python while making and breaking ciphers—algorithms used to create and send secret messages! After a crash course in Python programming basics, you’ll learn to make, test, and hack programs that encrypt text with classical ciphers like the transposition cipher and Vigenère cipher. You’ll begin with simple programs for the reverse and Caesar ciphers and then work your way up to public key cryptography, the type of encryption used to secure today’s online transactions, including digital signatures, email, and Bitcoin. Each program includes the full code and a line-by-line explanation of how things work. By the end of the book, you’ll have learned how to code in Python and you’ll have the clever programs to prove it! You’ll also learn how to: - Combine loops, variables, and flow control statements into real working programs - Use dictionary files to instantly detect whether decrypted messages are valid English or gibberish - Create test programs to make sure that your code encrypts and decrypts correctly - Code (and hack!) a working example of the affine cipher, which uses modular arithmetic to encrypt a message - Break ciphers with techniques such as brute-force and frequency analysis There’s no better way to learn to code than to play with real programs. Cracking Codes with Python makes the learning fun!




Python for Kids, 2nd Edition


Book Description

The second edition of the best-selling Python for Kids—which brings you (and your parents) into the world of programming—has been completely updated to use the latest version of Python, along with tons of new projects! Python is a powerful programming language that’s easy to learn and fun to use! But books about programming in Python can be dull and that’s no fun for anyone. Python for Kids brings kids (and their parents) into the wonderful world of programming. Jason R. Briggs guides you through the basics, experimenting with unique (and hilarious) example programs featuring ravenous monsters, secret agents, thieving ravens, and more. New terms are defined; code is colored and explained; puzzles stretch the brain and strengthen understanding; and full-color illustrations keep you engaged throughout. By the end of the book, you’ll have programmed two games: a clone of the famous Pong, and “Mr. Stick Man Races for the Exit”—a platform game with jumps and animation. This second edition is revised and updated to reflect Python 3 programming practices. There are new puzzles to inspire you and two new appendices to guide you through Python’s built-in modules and troubleshooting your code. As you strike out on your programming adventure, you’ll learn how to: Use fundamental data structures like lists, tuples, and dictionaries Organize and reuse your code with functions and modules Use control structures like loops and conditional statements Draw shapes and patterns with Python’s turtle module Create games, animations, and other graphical wonders with tkinter Why should serious adults have all the fun? Python for Kids is your ticket into the amazing world of computer programming. Covers Python 3.x which runs on Windows, macOS, Linux, even Raspberry Pi




Coding with Minecraft


Book Description

A hands-on introduction to coding that teaches you how to program bots to do cool things in the game you love--Minecraft! This book takes the robotic "turtle" method, and extends it to the 3D, interactive world of Minecraft. You've mined for diamonds, crafted dozens of tools, and built all sorts of structures--but what if you could program robots to do all of that for you in a fraction of the time? In Coding with Minecraft®, you'll create a virtual robot army with Lua, a programming language used by professional game developers. Step-by-step coding projects will show you how to write programs that automatically dig mines, collect materials, craft items, and build anything that you can imagine. Along the way, you'll explore key computer science concepts like data types, functions, variables, and more. Learn how to: - Program robots that make smart decisions with flow control - Reuse code so that your robots can farm any crop you want, including wheat, sugar cane, and even cacti! - Program a factory that generates infinite building supplies - Design an algorithm for creating walls and buildings of any size - Code yourself a pickaxe-swinging robotic lumberjack! - Create a robot that digs mine shafts with stairs so you can explore safely Bonus activities in each chapter will help you take your coding skills to the next level. By the end of the book, you'll understand how powerful coding can be and have plenty of robots at your beck and call.




Object-Oriented Python


Book Description

Power up your Python with object-oriented programming and learn how to write powerful, efficient, and re-usable code. Object-Oriented Python is an intuitive and thorough guide to mastering object-oriented programming from the ground up. You’ll cover the basics of building classes and creating objects, and put theory into practice using the pygame package with clear examples that help visualize the object-oriented style. You’ll explore the key concepts of object-oriented programming — encapsulation, polymorphism, and inheritance — and learn not just how to code with objects, but the absolute best practices for doing so. Finally, you’ll bring it all together by building a complex video game, complete with full animations and sounds. The book covers two fully functional Python code packages that will speed up development of graphical user interface (GUI) programs in Python.




Powerful Python


Book Description

There are many books for those new to Python, new to programming, or both. Powerful Python is different. Written for experienced developers like you, its carefully crafted chapters teach intermediate and advanced strategies, patterns, and tools for modern Python. Focused on Python 3, with full support for 2.7. DRM-free digital upgrade: powerfulpython.com/book-upgrade "Feels like Neo learning Jiu jitsu in the Matrix." - John Beauford (@johnbeauford) "I just wanted to let you know what an excellent book this is... I keep going back to your book to learn Python." - Fahad Qazi, London, UK "Thanks. Keep up the good work. Your chapter on decorators is the best I have seen on that topic." - Leon Tietz, Minnesota, USA "Powerful Python is already helping me get huge optimization gains." - Timothy Dobbins (@TmthyDobbins) "What have I found good and valuable about the book so far? Everything honestly. The clear explanations, solid code examples have really helped me advance as a Python coder... Thank you! It has really helped me grasp some advanced concepts that I felt were beyond my abilities." - Nick S., Colorado, USA For data scientists, back-end engineers, web developers, sysadmins, devops, QA testers and more. What's included: An unrelenting selective spotlight on what's most valuable and impactful to working, full-time, professional Python developers Well-researched, detailed, realistic code on almost every page, powerfully illustrating key points. Very little "toy code" How to use decorators to add rich features to functions and classes; untangle distinct, frustratingly intertwined concerns in your code; and build powerful, extensible software frameworks How to use Python in ways that incentivize other developers to use and re-use your code, again and again... amplifying the impact of the code you write, and boosting your reputation among your peers Powerfully and easily weave iterators and generators throughout your applications, making them massively scalable, highly performant, and far more readable and maintainable How to fully leverage Python's exception and error model... giving you a detailed understanding even experienced Pythonistas often lack, and putting some of the most powerfully Pythonic exception-handling patterns in your toolbox How "magic methods" imbue natural, readable, expressive syntax into your classes and objects... and how to "break the rules" to craft stunningly intuitive, compellingly reusable library interfaces Valuable and powerful design patterns, and how Python's special language features give you uniquely powerful implementations not possible in other languages Deep and detailed instruction on how to write practical, realistic unit tests... using test-driven development to easily get into a state of flow... where you find yourself implementing feature after feature, keeping your focus with ease for long periods of time How to rapidly set up effective logging for scripts, sprawling Python applications, and everything in between An enthusiastic and unapologetic focus on Python 3, and what makes it great... with full explanation and support for getting the same results with Python 2.7 More at PowerfulPython.com.




The Recursive Book of Recursion


Book Description

An accessible yet rigorous crash course on recursive programming using Python and JavaScript examples. Recursion has an intimidating reputation: it’s considered to be an advanced computer science topic frequently brought up in coding interviews. But there’s nothing magical about recursion. The Recursive Book of Recursion uses Python and JavaScript examples to teach the basics of recursion, exposing the ways that it’s often poorly taught and clarifying the fundamental principles of all recursive algorithms. You’ll learn when to use recursive functions (and, most importantly, when not to use them), how to implement the classic recursive algorithms often brought up in job interviews, and how recursive techniques can help solve countless problems involving tree traversal, combinatorics, and other tricky topics. This project-based guide contains complete, runnable programs to help you learn: How recursive functions make use of the call stack, a critical data structure almost never discussed in lessons on recursion How the head-tail and “leap of faith” techniques can simplify writing recursive functions How to use recursion to write custom search scripts for your filesystem, draw fractal art, create mazes, and more How optimization and memoization make recursive algorithms more efficient Al Sweigart has built a career explaining programming concepts in a fun, approachable manner. If you’ve shied away from learning recursion but want to add this technique to your programming toolkit, or if you’re racing to prepare for your next job interview, this book is for you.




Impractical Python Projects


Book Description

Impractical Python Projects is a collection of fun and educational projects designed to entertain programmers while enhancing their Python skills. It picks up where the complete beginner books leave off, expanding on existing concepts and introducing new tools that you'll use every day. And to keep things interesting, each project includes a zany twist featuring historical incidents, pop culture references, and literary allusions. You'll flex your problem-solving skills and employ Python's many useful libraries to do things like: - Help James Bond crack a high-tech safe with a hill-climbing algorithm - Write haiku poems using Markov Chain Analysis - Use genetic algorithms to breed a race of gigantic rats - Crack the world's most successful military cipher using cryptanalysis - Derive the anagram, "I am Lord Voldemort" using linguistical sieves - Plan your parents' secure retirement with Monte Carlo simulation - Save the sorceress Zatanna from a stabby death using palingrams - Model the Milky Way and calculate our odds of detecting alien civilizations - Help the world's smartest woman win the Monty Hall problem argument - Reveal Jupiter's Great Red Spot using optical stacking - Save the head of Mary, Queen of Scots with steganography - Foil corporate security with invisible electronic ink Simulate volcanoes, map Mars, and more, all while gaining valuable experience using free modules like Tkinter, matplotlib, Cprofile, Pylint, Pygame, Pillow, and Python-Docx. Whether you're looking to pick up some new Python skills or just need a pick-me-up, you'll find endless educational, geeky fun with Impractical Python Projects.