Books & Videos

Table of Contents

  1. Chapter 1 Meet Python: Everyone loves lists

    1. What’s to like about Python?

    2. Install Python 3

    3. Use IDLE to help learn Python

    4. Work effectively with IDLE

    5. Deal with complex data

    6. Create simple Python lists

    7. Lists are like arrays

    8. Add more data to your list

    9. Work with your list data

    10. For loops work with lists of any size

    11. Store lists within lists

    12. Check a list for a list

    13. Complex data is hard to process

    14. Handle many levels of nested lists

    15. Don’t repeat code; create a function

    16. Create a function in Python

    17. Recursion to the rescue!

    18. Your Python Toolbox

  2. Chapter 2 Sharing your Code: Modules of functions

    1. It’s too good not to share

    2. Turn your function into a module

    3. Modules are everywhere

    4. Comment your code

    5. Prepare your distribution

    6. Build your distribution

    7. A quick review of your distribution

    8. Import a module to use it

    9. Python’s modules implement namespaces

    10. Register with the PyPI website

    11. Upload your code to PyPI

    12. Welcome to the PyPI community

    13. With success comes responsibility

    14. Life’s full of choices

    15. Control behavior with an extra argument

    16. Before your write new code, think BIF

    17. Python tries its best to run your code

    18. Trace your code

    19. Work out what’s wrong

    20. Update PyPI with your new code

    21. You’ve changed your API

    22. Use optional arguments

    23. Your module supports both APIs

    24. Your API is still not right

    25. Your module’s reputation is restored

    26. Your Python Toolbox

  3. Chapter 3 Files and Exceptions: Dealing with errors

    1. Data is external to your program

    2. It’s all lines of text

    3. Take a closer look at the data

    4. Know your data

    5. Know your methods and ask for help

    6. Know your data (better)

    7. Two very different approaches

    8. Add extra logic

    9. Handle exceptions

    10. Try first, then recover

    11. Identify the code to protect

    12. Take a pass on the error

    13. What about other errors?

    14. Add more error-checking code...

    15. ...Or add another level of exception handling

    16. So, which approach is best?

    17. You’re done...except for one small thing

    18. Be specific with your exceptions

    19. Your Python Toolbox

  4. Chapter 4 Persistence: Saving data to files

    1. Programs produce data

    2. Open your file in write mode

    3. Files are left open after an exception!

    4. Extend try with finally

    5. Knowing the type of error is not enough

    6. Use with to work with files

    7. Default formats are unsuitable for files

    8. Why not modify print_lol()?

    9. Pickle your data

    10. Save with dump and restore with load

    11. Generic file I/O with pickle is the way to go!

    12. Your Python Toolbox

  5. Chapter 5 Comprehending data: Work that data!

    1. Coach Kelly needs your help

    2. Sort in one of two ways

    3. The trouble with time

    4. Comprehending lists

    5. Iterate to remove duplicates

    6. Remove duplicates with sets

    7. Your Python Toolbox

  6. Chapter 6 Custom data Objects: Bundling code with data

    1. Coach Kelly is back (with a new file format)

    2. Use a dictionary to associate data

    3. Bundle your code and its data in a class

    4. Define a class

    5. Use class to define classes

    6. The importance of self

    7. Every method’s first argument is self

    8. Inherit from Python’s built-in list

    9. Coach Kelly is impressed

    10. Your Python Toolbox

  7. Chapter 7 Web Development: Putting it all together

    1. It’s good to share

    2. You can put your program on the Web

    3. What does your webapp need to do?

    4. Design your webapp with MVC

    5. Model your data

    6. View your interface

    7. Control your code

    8. CGI lets your web server run programs

    9. Display the list of athletes

    10. The dreaded 404 error!

    11. Create another CGI script

    12. Enable CGI tracking to help with errors

    13. A small change can make all the difference

    14. Your webapp’s a hit!

    15. Your Python Toolbox

  8. Chapter 8 Mobile app Development: Small devices

    1. The world is getting smaller

    2. Coach Kelly is on Android

    3. Don’t worry about Python 2

    4. Set up your development environment

    5. Configure the SDK and emulator

    6. Install and configure Android Scripting

    7. Add Python to your SL4A installation

    8. Test Python on Android

    9. Define your app’s requirements

    10. The SL4A Android API

    11. Select from a list on Android

    12. The athlete’s data CGI script

    13. The data appears to have changed type

    14. JSON can’t handle your custom datatypes

    15. Run your app on a real phone

    16. Configure AndFTP

    17. The coach is thrilled with his app

    18. Your Python Toolbox

  9. Chapter 9 Manage Your data: Handling input

    1. Your athlete times app has gone national

    2. Use a form or dialog to accept input

    3. Create an HTML form template

    4. The data is delivered to your CGI script

    5. Ask for input on your Android phone

    6. It’s time to update your server data

    7. Avoid race conditions

    8. You need a better data storage mechanism

    9. Use a database management system

    10. Python includes SQLite

    11. Exploit Python’s database API

    12. The database API as Python code

    13. A little database design goes a long way

    14. Define your database schema

    15. What does the data look like?

    16. Transfer the data from your pickle to SQLite

    17. What ID is assigned to which athlete?

    18. Insert your timing data

    19. SQLite data management tools

    20. Integrate SQLite with your existing webapp

    21. You still need the list of names

    22. Get an athlete’s details based on ID

    23. You need to amend your Android app, too

    24. Update your SQLite-based athlete data

    25. The NUAC is over the moon!

    26. Your Python Toolbox

  10. Chapter 10 Scaling your Webapp: Getting real

    1. There are whale sightings everywhere

    2. The HFWWG needs to automate

    3. Build your webapp with Google App Engine

    4. Download and install App Engine

    5. Make sure App Engine is working

    6. App Engine uses the MVC pattern

    7. Model your data with App Engine

    8. What good is a model without a view?

    9. Use templates in App Engine

    10. Django’s form validation framework

    11. Check your form

    12. Controlling your App Engine webapp

    13. Restrict input by providing options

    14. Meet the “blank screen of death”

    15. Process the POST within your webapp

    16. Put your data in the datastore

    17. Don’t break the “robustness principle”

    18. Accept almost any date and time

    19. It looks like you’re not quite done yet

    20. Sometimes, the tiniest change can make all the difference...

    21. Capture your user’s Google ID, too

    22. Deploy your webapp to Google’s cloud

    23. Your HFWWG webapp is deployed!

    24. Your Python Toolbox

  11. Chapter 11 Dealing with Complexity: Data wrangling

    1. What’s a good time goal for the next race?

    2. So... what’s the problem?

    3. Start with the data

    4. Store each time as a dictionary

    5. Dissect the prediction code

    6. Get input from your user

    7. Getting input raises an issue...

    8. If it’s not in the dictionary, it can’t be found

    9. Search for the closest match

    10. The trouble is with time

    11. The time-to-seconds-to-time module

    12. The trouble is still with time...

    13. Port to Android

    14. Your Android app is a bunch of dialogs

    15. Put your app together...

    16. Your app’s a wrap!

    17. Your Python Toolbox

    18. It’s time to go...

  1. Appendix Leftovers: The Top Ten Things (we didn’t cover)

    1. #1: Using a “professional” IDE

    2. #2: Coping with scoping

    3. #3: Testing

    4. #4: Advanced language features

    5. #5: Regular expressions

    6. #6: More on web frameworks

    7. #7: Object relational mappers and NoSQL

    8. #8: Programming GUIs

    9. #9: Stuff to avoid

    10. #10: Other books