Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.
Also available in other formats.
This is the Rough Cut version of the printed book.
You Will Learn Python!
Zed Shaw has perfected the world's best system for learning Python. Follow it and you will succeed-just like the hundreds of thousands of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else.
In Learn Python 3 the Hard Way, you'll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you'll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use. Most importantly, you'll learn the following, which you need to start writing excellent Python software of your own:
It'll be hard at first. But soon, you'll just get it-and that will feel great!
This tutorial will reward you for every minute you put into it. Soon, you'll know one of the world's most powerful, popular programming languages. You'll be a Python programmer.
Exercise 1: A Good First Program
Exercise 2: Comments and Pound Characters
Exercise 3: Numbers and Math 38
Exercise 4: Variables and Names
Exercise 5: More Variables and Printing
Exercise 6: Strings and Text
Exercise 7: More Printing
Exercise 8: Printing, Printing
Exercise 9: Printing, Printing, Printing
Exercise 10: What Was That?
Exercise 11: Asking Questions
Exercise 12: Prompting People
Exercise 13: Parameters, Unpacking, Variables
Exercise 14: Prompting and Passing
Exercise 15: Reading Files
Exercise 16: Reading and Writing Files
Exercise 17: More Files
Exercise 18: Names, Variables, Code, Functions
Exercise 19: Functions and Variables
Exercise 20: Functions and Files
Exercise 21: Functions Can Return Something
Exercise 22: What Do You Know So Far?
Exercise 23: Strings, Bytes, and Character Encodings
Exercise 24: More Practice
Exercise 25: Even More Practice
Exercise 26: Congratulations, Take a Test!
Exercise 27: Memorizing Logic
Exercise 28: Boolean Practice
Exercise 29: What If
Exercise 30: Else and If
Exercise 31: Making Decisions
Exercise 32: Loops and Lists
Exercise 33: While Loops
Exercise 34: Accessing Elements of Lists
Exercise 35: Branches and Functions
Exercise 36: Designing and Debugging
Exercise 37: Symbol Review
Exercise 38: Doing Things to Lists
Exercise 39: Dictionaries, Oh Lovely Dictionaries
Exercise 40: Modules, Classes, and Objects
Exercise 41: Learning to Speak Object-Oriented
Exercise 42: Is-A, Has-A, Objects, and Classes
Exercise 43: Basic Object-Oriented Analysis and Design
Exercise 44: Inheritance Versus Composition
Exercise 45: You Make a Game
Exercise 46: A Project Skeleton
Exercise 47: Automated Testing
Exercise 48: Advanced User Input
Exercise 49: Making Sentences
Exercise 50: Your First Website
Exercise 51: Getting Input from a Browser
Exercise 52: The Start of Your Web Game
Advice from an Old Programmer
Appendix A: Command Line Crash Course