Head First Python

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Ever wished you could learn Python from a book? Head First Python is a complete learning experience for Python that helps you learn the language through a unique method that goes beyond syntax and how-to manuals, helping you understand how to be a great Python programmer. You'll quickly learn the language's fundamentals, then move onto persistence, exception handling, web development, SQLite, data wrangling, and Google App Engine. You'll also learn how to write mobile apps for Android, all thanks to the power that Python gives you.

We think your time is too valuable to waste struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Python uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.

Author(s): Paul Barry
Series: Head First Series
Publisher: O'Reilly Media
Year: 2010

Language: English
Pages: 494

Table of Contents
How to use this book: Intro
Who is this book for?
We know what you’re thinking
We know what your brain is thinking
Metacognition: thinking about thinking
Here’s what WE did:
Here’s what YOU can do to bend your brain into submission
Read Me
The technical review team
Acknowledgments
Safari® Books Online
HERE LOL HERE
1. Meet Python: Everyone Loves Lists
What’s to like about Python?
Install Python 3
Use IDLE to help learn Python
Work effectively with IDLE
Deal with complex data
Create simple Python lists
Lists are like arrays
Add more data to your list
Work with your list data
For loops work with lists of any size
Store lists within lists
Check a list for a list
Complex data is hard to process
Handle many levels of nested lists
Don’t repeat code; create a function
Create a function in Python
Recursion to the rescue!
Your Python Toolbox
2. Sharing Your Code: Modules of Functions
It’s too good not to share
Turn your function into a module
Modules are everywhere
Comment your code
Prepare your distribution
Build your distribution
A quick review of your distribution
Import a module to use it
Python’s modules implement namespaces
Register with the PyPI website
Upload your code to PyPI
Welcome to the PyPI community
With success comes responsibility
Life’s full of choices
Control behavior with an extra argument
Before your write new code, think BIF
Python tries its best to run your code
Trace your code
Work out what’s wrong
Update PyPI with your new code
You’ve changed your API
Use optional arguments
Your module supports both APIs
Your API is still not right
Your module’s reputation is restored
Your Python Toolbox
3. Files and Exceptions: Dealing with Errors
Data is external to your program
It’s all lines of text
Take a closer look at the data
Know your data
Know your methods and ask for help
Know your data (better)
Two very different approaches
Add extra logic
Handle exceptions
Try first, then recover
Identify the code to protect
Take a pass on the error
What about other errors?
Add more error-checking code…
…Or add another level of exception handling
So, which approach is best?
You’re done…except for one small thing
Be specific with your exceptions
Your Python Toolbox
4. Persistence: Saving Data to Files
Programs produce data
Open your file in write mode
Files are left open after an exception!
Extend try with finally
Knowing the type of error is not enough
Use with to work with files
Default formats are unsuitable for files
Why not modify print lol()?
Pickle your data
Save with dump and restore with load
Generic file I/O with pickle is the way to go!
Your Python Toolbox
5. Comprehending Data: Work that Data!
Coach Kelly needs your help
Sort in one of two ways
The trouble with time
Comprehending lists
Iterate to remove duplicates
Remove duplicates with sets
Your Python Toolbox
6. Custom Data Objects: Bundling code with Data
Coach Kelly is back (with a new file format)
Use a dictionary to associate data
Bundle your code and its data in a class
Define a class
Use class to define classes
The importance of self
Every method’s first argument is self
Inherit from Python’s built-in list
Coach Kelly is impressed
Your Python Toolbox
7. Web Development: Putting It All Together
It’s good to share
You can put your program on the Web
What does your webapp need to do?
Design your webapp with MVC
Model your data
View your interface
Control your code
CGI lets your web server run programs
Display the list of athletes
The dreaded 404 error!
Create another CGI script
Enable CGI tracking to help with errors
A small change can make all the difference
Your webapp’s a hit!
Your Python Toolbox
8. Mobile App Development. Small Devices
The world is getting smaller
Coach Kelly is on Android
Don’t worry about Python 2
Set up your development environment
Configure the SDK and emulator
Install and configure Android Scripting
Add Python to your SL4A installation
Test Python on Android
Define your app’s requirements
The SL4A Android API
Select from a list on Android
The athlete’s data CGI script
The data appears to have changed type
JSON can’t handle your custom datatypes
Run your app on a real phone
Configure AndFTP
The coach is thrilled with his app
Your Python Toolbox
9. Manage Your Data: Handling Input
Your athlete times app has gone national
Use a form or dialog to accept input
Create an HTML form template
The data is delivered to your CGI script
Ask for input on your Android phone
It’s time to update your server data
Avoid race conditions
You need a better data storage mechanism
Use a database management system
Python includes SQLite
Exploit Python’s database API
The database API as Python code
A little database design goes a long way
Define your database schema
What does the data look like?
Transfer the data from your pickle to SQLite
What ID is assigned to which athlete?
Insert your timing data
SQLite data management tools
Integrate SQLite with your existing webapp
You still need the list of names
Get an athlete’s details based on ID
You need to amend your Android app, too
Update your SQLite-based athlete data
The NUAC is over the moon!
Your Python Toolbox
10. Scaling Your Webapp: Getting Real
There are whale sightings everywhere
The HFWWG needs to automate
Build your webapp with Google App Engine
Download and install App Engine
Make sure App Engine is working
App Engine uses the MVC pattern
Model your data with App Engine
What good is a model without a view?
Use templates in App Engine
Django’s form validation framework
Check your form
Controlling your App Engine webapp
Restrict input by providing options
Meet the “blank screen of death”
Process the POST within your webapp
Put your data in the datastore
Don’t break the “robustness principle”
Accept almost any date and time
It looks like you’re not quite done yet
Sometimes, the tiniest change can make all the difference…
Capture your user’s Google ID, too
Deploy your webapp to Google’s cloud
Your HFWWG webapp is deployed!
Your Python Toolbox
11. Dealing with Complexity: Data Wrangling
What’s a good time goal for the next race?
So…what’s the problem?
Start with the data
Store each time as a dictionary
Dissect the prediction code
Get input from your user
Getting input raises an issue…
If it’s not in the dictionary, it can’t be found.
Search for the closest match
The trouble is with time
The time-to-seconds-to-time module
The trouble is still with time…
Port to Android
Your Android app is a bunch of dialogs
Put your app together…
Your app’s a wrap!
Your Python Toolbox
It’s time to go…
Appendix: Leftovers: The Top Ten Things (we didn't cover)
#1: Using a “professional” IDE
#2: Coping with scoping
#3: Testing
#4: Advanced language features
#5: Regular expressions
#6: More on web frameworks
#7: Object relational mappers and NoSQL
#8: Programming GUIs
#9: Stuff to avoid
#10: Other books
Index