Last active
December 22, 2015 23:19
-
-
Save catherinedevlin/6545752 to your computer and use it in GitHub Desktop.
Python presentation at APCUG 2013 Regional conference: http://rleevanceapcug.wix.com/apcug-2013-regional
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Python" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"\n", | |
"\n", | |
" Catherine Devlin\n", | |
" APCUG 2013 Regional Conference\n", | |
" Sep 15, 2013\n", | |
" http://tinyurl.com/apcug-2013-python-intro" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"A buzzword-enhanced language\n", | |
"============================\n", | |
"\n", | |
"* Open-source\n", | |
"* Multi-purpose\n", | |
"* Multi-platform\n", | |
"* Dynamic\n", | |
"* Object-oriented\n", | |
"* Highly readable" | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"What's it look like?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"target_letter = \"r\"\n", | |
"for animal in [\"horse\", \"cat\", \"racoon\", \"duck\"]:\n", | |
" if target_letter in animal:\n", | |
" print(animal + \" contains the letter \" + target_letter)\n", | |
" else:\n", | |
" print(\"sorry, no \" + target_letter + \" in \" + animal)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"horse contains the letter r\n", | |
"sorry, no r in cat\n", | |
"racoon contains the letter r\n", | |
"sorry, no r in duck\n" | |
] | |
} | |
], | |
"prompt_number": 11 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Familiar terms\n", | |
"--------------\n", | |
"\n", | |
"`for`, `if`, `else`, etc." | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Dynamic" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"def lots_of(x):\n", | |
" return 3 * x\n", | |
"\n", | |
"stuff = \"milk \"\n", | |
"print(type(stuff))\n", | |
"print(lots_of(stuff))\n", | |
"stuff = 3\n", | |
"print(type(stuff))\n", | |
"print(lots_of(stuff))" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"<class 'str'>\n", | |
"milk milk milk \n", | |
"<class 'int'>\n", | |
"9\n" | |
] | |
} | |
], | |
"prompt_number": 43 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import datetime\n", | |
"\n", | |
"print(lots_of(datetime.datetime.now()))" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"outputs": [ | |
{ | |
"ename": "TypeError", | |
"evalue": "unsupported operand type(s) for *: 'int' and 'datetime.datetime'", | |
"output_type": "pyerr", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-38-61e691416648>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mdatetime\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlots_of\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdatetime\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdatetime\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[1;32m<ipython-input-37-3b437fd333c5>\u001b[0m in \u001b[0;36mlots_of\u001b[1;34m(x)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mlots_of\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[1;36m3\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlots_of\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"milk\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlots_of\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
"\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for *: 'int' and 'datetime.datetime'" | |
] | |
} | |
], | |
"prompt_number": 38 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Significant whitespace" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"target_letter = \"r\"\n", | |
"for animal in [\"horse\", \"cat\", \"racoon\", \"duck\"]:\n", | |
" if target_letter in animal:\n", | |
" print(animal + \" contains the letter \" + target_letter)\n", | |
" else:\n", | |
" print(\"sorry, no \" + target_letter + \" in \" + animal)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"horse contains the letter r\n", | |
"sorry, no r in cat\n", | |
"racoon contains the letter r\n", | |
"sorry, no r in duck\n" | |
] | |
} | |
], | |
"prompt_number": 12 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"- No line endings (a line ending *is* a line ending)\n", | |
"- Indentation marks blocks\n", | |
"- Python interpreter == your eyeball!" | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Highly readable" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"target_letter = \"r\"\n", | |
"for animal in [\"horse\", \"cat\", \"racoon\", \"duck\"]:\n", | |
" if target_letter in animal:\n", | |
" print(animal + \" contains the letter \" + target_letter)\n", | |
" else:\n", | |
" print(\"sorry, no \" + target_letter + \" in \" + animal)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"horse contains the letter r\n", | |
"sorry, no r in cat\n", | |
"racoon contains the letter r\n", | |
"sorry, no r in duck\n" | |
] | |
} | |
], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Object-oriented" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"animal = \"moose\"\n", | |
"animal.upper()" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 13, | |
"text": [ | |
"'MOOSE'" | |
] | |
} | |
], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"class Animal(object):\n", | |
" def eat(self, food):\n", | |
" return \"What yummy \" + food + \"!\"\n", | |
" \n", | |
"fido = Animal()\n", | |
"fido.eat('dog food')" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 3, | |
"text": [ | |
"'What yummy dog food!'" | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Inheritence" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"class Cat(Animal):\n", | |
" def purr(self):\n", | |
" return 'rrrrrrrrrrrrrrrr'\n", | |
"\n", | |
"agamemnon = Cat()\n", | |
"agamemnon.eat('hotdish')" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 4, | |
"text": [ | |
"'What yummy hotdish!'" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"agamemnon.purr()" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 5, | |
"text": [ | |
"'rrrrrrrrrrrrrrrr'" | |
] | |
} | |
], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"fido.purr()" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"ename": "AttributeError", | |
"evalue": "'Animal' object has no attribute 'purr'", | |
"output_type": "pyerr", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-6-32f565adf250>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfido\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpurr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[1;31mAttributeError\u001b[0m: 'Animal' object has no attribute 'purr'" | |
] | |
} | |
], | |
"prompt_number": 6 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Introspection" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"help(\"x\".upper)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Help on built-in function upper:\n", | |
"\n", | |
"upper(...)\n", | |
" S.upper() -> str\n", | |
" \n", | |
" Return a copy of S converted to uppercase.\n", | |
"\n" | |
] | |
} | |
], | |
"prompt_number": 29 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"dir(\"x\")" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 30, | |
"text": [ | |
"['__add__',\n", | |
" '__class__',\n", | |
" '__contains__',\n", | |
" '__delattr__',\n", | |
" '__dir__',\n", | |
" '__doc__',\n", | |
" '__eq__',\n", | |
" '__format__',\n", | |
" '__ge__',\n", | |
" '__getattribute__',\n", | |
" '__getitem__',\n", | |
" '__getnewargs__',\n", | |
" '__gt__',\n", | |
" '__hash__',\n", | |
" '__init__',\n", | |
" '__iter__',\n", | |
" '__le__',\n", | |
" '__len__',\n", | |
" '__lt__',\n", | |
" '__mod__',\n", | |
" '__mul__',\n", | |
" '__ne__',\n", | |
" '__new__',\n", | |
" '__reduce__',\n", | |
" '__reduce_ex__',\n", | |
" '__repr__',\n", | |
" '__rmod__',\n", | |
" '__rmul__',\n", | |
" '__setattr__',\n", | |
" '__sizeof__',\n", | |
" '__str__',\n", | |
" '__subclasshook__',\n", | |
" 'capitalize',\n", | |
" 'casefold',\n", | |
" 'center',\n", | |
" 'count',\n", | |
" 'encode',\n", | |
" 'endswith',\n", | |
" 'expandtabs',\n", | |
" 'find',\n", | |
" 'format',\n", | |
" 'format_map',\n", | |
" 'index',\n", | |
" 'isalnum',\n", | |
" 'isalpha',\n", | |
" 'isdecimal',\n", | |
" 'isdigit',\n", | |
" 'isidentifier',\n", | |
" 'islower',\n", | |
" 'isnumeric',\n", | |
" 'isprintable',\n", | |
" 'isspace',\n", | |
" 'istitle',\n", | |
" 'isupper',\n", | |
" 'join',\n", | |
" 'ljust',\n", | |
" 'lower',\n", | |
" 'lstrip',\n", | |
" 'maketrans',\n", | |
" 'partition',\n", | |
" 'replace',\n", | |
" 'rfind',\n", | |
" 'rindex',\n", | |
" 'rjust',\n", | |
" 'rpartition',\n", | |
" 'rsplit',\n", | |
" 'rstrip',\n", | |
" 'split',\n", | |
" 'splitlines',\n", | |
" 'startswith',\n", | |
" 'strip',\n", | |
" 'swapcase',\n", | |
" 'title',\n", | |
" 'translate',\n", | |
" 'upper',\n", | |
" 'zfill']" | |
] | |
} | |
], | |
"prompt_number": 30 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Handy collections: lists" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"hotdish_ingredients = [\"noodles\", \"tuna\", \"mayo\", \"celery\"]\n", | |
"shopping_list = [\"apple\", \"bread\", hotdish_ingredients, \"spinach\"]\n", | |
"\n", | |
"for buy_me in shopping_list:\n", | |
" print(buy_me)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"apple\n", | |
"bread\n", | |
"['noodles', 'tuna', 'mayo', 'celery']\n", | |
"spinach\n" | |
] | |
} | |
], | |
"prompt_number": 32 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Handy collections (2): dictionaries" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"german = {\"cat\": \"Katze\", dog: \"Hund\"}\n", | |
"german[\"cat\"]" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 34, | |
"text": [ | |
"'Katze'" | |
] | |
} | |
], | |
"prompt_number": 34 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"list comprehension" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"name = \"American of Personal Computer User Groups\"\n", | |
"initials = [letter for letter in name if letter.isupper()]\n", | |
"print(initials)\n", | |
"abbrev = \"\".join(initials)\n", | |
"print(abbrev)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"['A', 'P', 'C', 'U', 'G']\n", | |
"APCUG\n" | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Rich standard library" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"- formats: `csv`, `json`, `xml.*`...\n", | |
"- compression: `zlib`, `zipfile`, `tarfile`, `bz2`...\n", | |
"- datastores: `dbm`, `shelve`, `pickle`...\n", | |
"- network: `ftplib`, `urllib2`, `smtp`, `SimpleHTTPServer`...\n", | |
"- cryptography: `hashlib`\n", | |
"- user interfaces: `cmd`, `curses`..." | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"PyPI (the Cheese Shop)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"http://pypi.python.org\n", | |
"\n", | |
"34,000 + freely available modules" | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Libraries make tasks easy" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import requests\n", | |
"\n", | |
"response = requests.get('http://dma1.org')\n", | |
"response.status_code" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 4, | |
"text": [ | |
"200" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"response.content[:100]" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 5, | |
"text": [ | |
"b'<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\\n<HTML>\\n<HEAD>\\n <LINK REL=\"SHORTCUT '" | |
] | |
} | |
], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import re\n", | |
"re.search(\">(APCUG.*?)<\", str(response.content)).group(1)" | |
], | |
"language": "python", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 15, | |
"text": [ | |
"'APCUG 2013 Regional Computer Conference'" | |
] | |
} | |
], | |
"prompt_number": 15 | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"What's it used for?" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"- web development\n", | |
"- scientific programming\n", | |
"- data analysis\n", | |
"- GUI tools\n", | |
"- systems administration\n", | |
"- games" | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"Education" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"- Youth: \"Python for Kids\" books, classes\n", | |
"- College: MIT\n", | |
"- Professionals: Universal \"pidgin\"\n" | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"How's it used?" | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 2, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"Socially!" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"- Developed by distributed groups\n", | |
"- Code submitted to PyPI\n", | |
"- PyCon, PyOhio..." | |
] | |
}, | |
{ | |
"cell_type": "heading", | |
"level": 1, | |
"metadata": { | |
"slideshow": { | |
"slide_type": "slide" | |
} | |
}, | |
"source": [ | |
"How to learn it" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"slideshow": { | |
"slide_type": "fragment" | |
} | |
}, | |
"source": [ | |
"- https://wiki.python.org/moin/BeginnersGuide\n", | |
"- http://docs.python-guide.org\n", | |
"- http://learnpython.org\n", | |
"- Coursera\n", | |
"- PyOhio\n", | |
"- [Python Workshop for Women](http://tinyurl.com/cmh-py-workshop)\n", | |
"- [email protected]\n", | |
"- tinyurl.com/apcug-2013-python-intro" | |
] | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment