Back To Course Home
Python 3: An interactive deep dive
0% completed
Your First Python Program
Diving InDeclaring FunctionsWriting Readable CodeThe import Search PathEverything Is An ObjectIndenting CodeExceptionsUnbound VariablesEverything is Case-SensitiveRunning ScriptsFurther Reading
Native Datatypes
Diving InBooleansNumbersListsTuplesSetsDictionariesNoneFurther Reading
Comprehensions
Diving InWorking With Files And DirectoriesList ComprehensionsDictionary ComprehensionsSet ComprehensionsFurther Reading
Strings
Some Boring Stuff You Need To Understand Before You Can Dive InUnicodeDiving InFormatting StringsOther Common String MethodsStrings vs. BytesPostscript: Character Encoding Of Python Source CodeFurther Reading
Regular Expressions
Diving InCase Study: Street AddressesCase Study: Roman NumeralsUsing The {n,m} SyntaxVerbose Regular ExpressionsCase study: Parsing Phone NumbersSummary
Closures & Generators
Diving InI Know, Let’s Use Regular Expressions!A List Of FunctionsA List Of PatternsA File Of PatternsGeneratorsFurther Reading
Classes & Iterators
Diving InDefining ClassesInstantiating ClassesInstance VariablesA Fibonacci IteratorA Plural Rule IteratorFurther Reading
Advanced Iterators
Diving In
Finding all occurrences of a pattern
Finding the unique items in a sequence
Making Assertions
Generator expressions
Calculating Permutations… The Lazy Way!
Other Fun Stuff in the itertools Module
A New Kind Of String Manipulation
Evaluating Arbitrary Strings As Python Expressions
Putting It All Together
Further Reading
Unit Testing
(Not) Diving InA Single Question“Halt And Catch Fire”More Halting, More FireAnd One More Thing…A Pleasing SymmetryMore Bad Input
Refactoring
Diving InHandling Changing RequirementsRefactoringSummary
Files
Diving InReading From Text FilesWriting to Text FilesBinary FilesStream Objects From Non-File SourcesStandard Input, Output, and ErrorFurther Reading
XML
Diving InA 5-Minute Crash Course in XMLThe Structure Of An Atom FeedParsing XMLSearching For Nodes Within An XML DocumentGoing Further With lxmlGenerating XMLParsing Broken XMFurther Reading
Serializing Python Objects
Diving InSaving Data to a Pickle FileLoading Data from a Pickle FilePickling Without a FileBytes and Strings Rear Their Ugly Heads AgainDebugging Pickle FilesSerializing Python Objects to be Read by Other LanguagesSaving Data to a JSON FileMapping of Python Datatypes to JSONSerializing Datatypes Unsupported by JSONLoading Data from a JSON FileFurther Reading
HTTP Web Services
Diving InFeatures of HTTPHow Not To Fetch Data Over HTTPWhat’s On The Wire?Introducing httplib2Beyond HTTP GETBeyond HTTP POSTFurther Reading
Case Study: Porting chardet to Python 3
Diving InWhat is Character Encoding Auto-Detection?Introducing The chardet ModuleRunning 2to3A Short Digression Into Multi-File ModulesFixing What 2to3 Can’tSummary
Packaging Python Libraries
Diving In
Things Distutils Can’t Do For You
Directory Structure
Writing Your Setup Script
Classifying Your Package
Specifying Additional Files With A Manifest
Checking Your Setup Script for Errors
Creating a Source Distribution
Creating a Graphical Installer
Adding Your Software to The Python Package Index
The Many Possible Futures of Python Packaging
Further Reading
Appendix : Where To Go From Here
Things to ReadWhere To Look For Python 3-Compatible CodeLicense

Further Reading

On Distutils:

  • Distributing Python Modules with Distutils
  • Core Distutils functionality lists all the possible arguments to the setup() function
  • Distutils Cookbook
  • PEP 370: Per user site-packages directory
  • PEP 370 and “environment stew”

On other packaging frameworks:

  • The Python packaging ecosystem
  • On packaging
  • A few corrections to “On packaging”
  • Why I like Pip
  • Python packaging: a few observations
  • Nobody expects Python packaging!

Get hands-on with 1400+ tech skills courses.