BEWARE: This is a legacy static copy!
This is an old old old archive. Please don't trust any information you find on this wiki. Looking for up-to-date information? Go to hsbxl.be or join our Matrix channel.
This is an old old old archive. Please don't trust any information you find on this wiki. Looking for up-to-date information? Go to hsbxl.be or join our Matrix channel.
Python Workshop
From Hackerspace Brussels
|
Contents
What[edit]
This will be a beginners workshop, things I (fs111) want to cover:
- Brief introduction in the who, what and where in python
- Hello World and the interactive interpreter
- control structures
- built-in types (numbers, strings, lists, dicts, sets etc.) and higher level functions
- input/output
- module system (imports)
- objects and classes and types
- documentation system
- neat little tricks and features you should know (generators, list comprehension, slicing)
- some modules from the standard lib that you should know (OS interface, filesystem, option parsing, xml?, network stuff etc.)
- Q/A all the time of course
- free style hacking afterwards
- Python egg
- Paster
How long will the workshop last?[edit]
I really don't know. I try to cover the stuff mentioned above and then we can go into freestyle hacking, where we help each other out I guess. As long we do not run out of mate we can go on :-)
Stuff you need[edit]
I will use the latest release of the Python 2.x series which is 2.6 right now. 3.x is out already for some time but the adoption is low and a big number of 3rdd party modules are not ported yet. So what I would expect from you is that you have the following installed:
- python 2.6, which can be downloaded here
- a text editor of choice, anything will do, I use vim. Tips for vim and Python here.
- a shell
Participants[edit]
Put your name here if you are coming:
| Who | Comment | Present |
|---|---|---|
| fs111 | This space is intentionally left blank | yes |
| Erik | This space is intentionally left blank | yes |
| Sandb | This space is left blank intentionally | yes |
| Koert | This space is left blank intentionally | yes |
| nicodache | is This left intentionally space blank (and #@! whoever changed my comment :-)) | yes |
| Tazo | This space is left blank intentionally | yes |
| Marc | This space is left blank intentionally | yes |
| Jobj | wtf copy/past generation | yes |
| Skawouter | not 100% shure jet | yes |
| tvlooy | can haz python? | yes |
| Xflame | yes | |
| zoobab | no comment | |
| U_go | yes | |
| Thomas | yes |
Readline[edit]
# Add auto-completion and a stored history file of commands to your Python
# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is
# bound to the Esc key by default (you can change it - see readline docs).
#
# Store the file in ~/.pystartup, and set an environment variable to point
# to it: "export PYTHONSTARTUP=/home/user/.pystartup" in bash.
#
# Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the
# full path to your home directory.
import atexit
import os
import readline
import rlcompleter
readline.parse_and_bind('tab: complete')
historyPath = os.path.expanduser("~/.pyhistory")
def save_history(historyPath=historyPath):
import readline
readline.write_history_file(historyPath)
if os.path.exists(historyPath):
readline.read_history_file(historyPath)
atexit.register(save_history)
del os, atexit, readline, rlcompleter, save_history, historyPath
Hello World[edit]
#!/usr/bin/env python # -*- coding: utf-8 -*- print "Hello HSB"
spawning processes[edit]
import subprocess
don't try popen, os.system, or whatever else
Presentation[edit]
Here is the pdf of the quick introduction from the beginning of the workshop: