python 101

37
Python 101 Alan Tree 08/24/2011

Upload: the-active-network

Post on 18-May-2015

7.691 views

Category:

Technology


1 download

DESCRIPTION

Alan Tree, Software Engineer at The Active Network, walks us through the fundamentals of Python.

TRANSCRIPT

Page 1: Python 101

Python 101Alan Tree 08/24/2011

Page 2: Python 101

What is Python?

● Python is a powerful scripting language developed by Guido van Rossum in the late 80's.

● Python is a fully functional language while maintaining readability and understandability.

● Python is a common language that ships with most 'nix distros.

● Python is very extendable ● Python is both dynamically typed and strongly typed at

the same time.

Page 3: Python 101

Why Python?

● Readability● Easy to learn ● Easy to write● Cross platform● Powerful● Extensive uses in many areas of development

Page 4: Python 101

Who uses Python?

● Google● Yahoo ● YouTube● Industrial Light and Magic● Disney● EVE Online● RackSpace● AstraZeneca● HoneyWell

Page 5: Python 101

Popular Applications using Python

● Google ● Yahoo● Blender ● GIMP ● BitTorrent● Civ 4 ● BattleField 2 ● Eve Online ● Ubuntu Package Manager

Page 6: Python 101

Other uses for Python

1. IT - Various scripting tasks ('nix, OSX, Windows)2. Web Development (Django, pylons, Grok, TurboGears,

CherryPy, Flask, Google App Engine)3. Game Development (Panda3d, pyGame, Pyglet, PIL,

Python-Ogre, Soya3d)4. Desktop Development (GUI development)

Page 7: Python 101

Ease of use

Page 8: Python 101

IDLE

● Able to modify code and run code directly from editor.● Code is stored in simple text files with the .py extension.● No open and close statements or curly braces. Indention

determines blocks of code. ● Comments are achieved with '#' 

Page 9: Python 101

Basics

Page 10: Python 101

Variables and DataTypes

Page 11: Python 101

Strings

s = 'alan' s = "alan" s = 'al' + 'an'>>> 'alan'  s = "%s%s" % ('al', 'an') >>> 'alan'

Page 12: Python 101

Integers

x = 2 y = 4 z = x + y z = z / 2>>> 3 

   

Page 13: Python 101

Floats

z = 0.1 y = 1.2 m = z+y>>> 1.3 

 

Page 14: Python 101

Dict

t = {} t = {'name':'alan', 'age':30}

Page 15: Python 101

List

l = [] l  = ['alan', '30']  l = ['alan', 30, 'apples', {'lname':'tree'}]

Page 16: Python 101

Tuple 

t = ['alan', 30]  t[1] = 5

Page 17: Python 101

Loops

while (condition):    do this for i in range (100):     do this a bunch peeps_list = ['alan', 'joe', 'frank']for i in peeps_list:    print i 

Page 18: Python 101

Conditionals

if condition:    do something 

if condition:    do thiselse:    do that 

 

Page 19: Python 101

Functions

def my_function():    print "this is my function"    return  my_function()>>> this is my function

Page 20: Python 101

Codez time

Page 21: Python 101

Hello World

print "Hello World"

Page 22: Python 101

Hello {Your name here}

your_name = "Alan" print "Hello %s" % (your_name)

Page 23: Python 101

Hello {What is your name?}

your_name = raw_input ("What is your name? : ") print "Hello %s" % (your_name)

Page 24: Python 101

Hello Conditional

your_age = int(raw_input("How old are you? :")) if your_age >= 30:    print "hmm, getting up there arn't we?"else:    print "young grass hopper!" 

Page 25: Python 101

Hello {While Loop}

your_name = "" while your_name != "Alan":    your_name = raw_input ("What is your name? : ")

print "Access Granted!!!"     

Page 26: Python 101

Questions?

Page 27: Python 101

Workshop 'Easy'

Hi - Low

Page 28: Python 101

Write a program that will:

Guess a random number and have the user try to guess that random number by providing the clues 'go higher' or 'go lower' depending on the user's guess. You will need this at the top of your program:import random You will need to get your random number like this:random_number = random.randint(1,10)

  

Page 29: Python 101

Write a program that will:

Guess a random number and have the user try to guess that random number by providing the clues 'go higher' or 'go lower' depending on the user's guess.  Hint:import randomyour_guess = 0random_number = random.randint(1,10) while {something doesn't match...}:

 

Page 30: Python 101

Workshop 'Easy' Solution:

import randomguess = 0number = random.randint(1,10)

print "I have chosen a number between 1 and 10. Try to guess it!"

while guess != number : guess = int(raw_input("Your guess? :")) if guess < number: print "go higher" if guess > number: print "go lower"

print "You guessed it!"

Page 31: Python 101

Workshop 'Advanced'

Fetch Search Results

Page 32: Python 101

Write a program that will:

Fetch the sports located in active search and display a menu that will allow the user to choose a sport. Once a sport is selected, have the user provide skills they can use to refine their search. Once the search is conducted and an item is found, present a menu so they may see more details about that event. 

Page 33: Python 101

Things to note:You will need these libraries:import urllibimport json You will need this base url:base_url = 'http://api.amp.active.com/search?f=activities&v=json&api_key=wuhmn9ye94xn3xnteudxsavw' You will need to url encode the keywords:url_with_keywords = urllib.quote_plus(key_words)

You will need to parse json:json.loads(<json_string>) You will need to use some of this:"my_string".split("|")"my_string".strip()

 

 

Page 34: Python 101

Workshop 'Advanced' HELP 1import urllibimport jsonbase_url = 'http://api.amp.active.com/search?f=activities&v=json&api_key=wuhmn9ye94xn3xnteudxsavw'sports = ['Baseball', 'Basketball', 'Football', 'Golf', 'Outdoors', 'Running', 'Walking']

for sport in sports: print "%s - %s" % (sports.index(sport) + int(1), str(sport))

print "\n"

the_sport = int(raw_input("What sport would you like to search for?"))the_keywords = raw_input("Enter any keywords (or press ENTER for now): ")

print "\n"

new_url = "%s&m=meta:channel%%3D%s" % (base_url, sports[the_sport])

if the_keywords.strip() != '': new_url = "%s&k=%s" % (new_url, urllib.quote_plus(the_keywords))responses = urllib.urlopen(new_url).read()responses = json.loads(responses)['_results']

Page 35: Python 101

Workshop 'Advanced' HELP 2for i in range(1, len(responses)): print "%s - %s" % (i, responses[i]['title'].split('|')[0])

more_details = int(raw_input("Choose an event to see more details: "))

result = responses[more_details]print "\n"print "Title: %s" % (result['title'].split('|')[0])print "Location: %s, %s" % (result['meta']['city'], result['meta']['state'])print "Start Date: %s" % (result['meta']['startDate'])print "Assed ID: %s" % (result['meta']['assetTypeId'])

Page 36: Python 101

the end

Page 37: Python 101

questions?