Python Tidbits Python created by that guy ---> Python is named after Monty Python’s Flying Circus 1991 – Python 0.9.0 Released 2008 – Python 2.6 / 3.0rc2.

Slides:



Advertisements
Similar presentations
Introduction to Python LinuxWorld - New York City - January 2002 Guido van Rossum Director of PythonLabs at Zope Corporation
Advertisements

Optional Static Typing Guido van Rossum (with Paul Prescod, Greg Stein, and the types-SIG)
10/10/1999© 1999 CNRI, Guido van Rossum 1 Python Workshop Guido van Rossum CNRI (Corporation for National Research Initiatives, Reston, Virginia,
JavaScript I. JavaScript is an object oriented programming language used to add interactivity to web pages. Different from Java, even though bears some.
Container Types in Python
Introduction to Python Week 15. Try It Out! Download Python from Any version will do for this class – By and large they are all mutually.
A Crash Course Python. Python? Isn’t that a snake? Yes, but it is also a...
I210 review Fall 2011, IUB. Python is High-level programming –High-level versus machine language Interpreted Language –Interpreted versus compiled 2.
Introduction to Python Fred L. Drake, Jr.
What is a scripting language? What is Python?
Introduction to Python. Outline Python IS ……. History Installation Data Structures Flow of Control Functions Modules References.
Python Crash Course by Monica Sweat. Python Perspective is strongly typed, interpreted language is used to define scripts (Don't even need to define a.
C. Varela, Adapted with permission from Guido van Rossum1 Python Intro, Concurrency Carlos Varela RPI Adapted with permission from: Guido van Rossum
Writing Solid Code Introduction to Python. Program 1 python -c "print 'Hello World' “ python -c "import time; print time.asctime()“ Start an interactive.
Introduction to Python (for C++ programmers). Background Information History – created in December 1989 by Guido van Rossum Interpreted Dynamically-typed.
Python Control of Flow.
Walk through previous lectures. Tuple tuple_name = (value, value,..., value) A way of packing multiple values into a variable >>> x = 3 >>> y = -5 >>>
Introduction to Python Lecture 1. CS 484 – Artificial Intelligence2 Big Picture Language Features Python is interpreted Not compiled Object-oriented language.
Introduction to Python Guido van Rossum Director of PythonLabs at Zope Corporation
Introduction to Scripting Languages: Python Some slides are based upon Python Documentation - Extended.
Introduction to Python LinuxWorld - New York City - January 2002 Guido van Rossum Director of PythonLabs at Zope Corporation (Now with: Google Inc.)
1 Programming in Python Language Overview. 2 Who is using it? Google (various projects) NASA (several projects) NYSE (one of only three languages "on.
Session 2 Wharton Summer Tech Camp 1: Basic Python 2: Start Regex.
Lists in Python.
November 15, 2005ICP: Chapter 7: Files and Exceptions 1 Introduction to Computer Programming Chapter 7: Files and Exceptions Michael Scherger Department.
1 Python CIS*2450 Advanced Programming Concepts Material for this lecture was developed by Dr. D. Calvert.
H3D API Training  Part 3.1: Python – Quick overview.
Documentation / References Python Full Documentation – Python Quick Reference –
Built-in Data Structures in Python An Introduction.
Getting Started with Python: Constructs and Pitfalls Sean Deitz Advanced Programming Seminar September 13, 2013.
Introduction to Information Security Python. Python motivation Python is to a Hacker what Matlab is to an engineer Lots of built-in modules Lots of 3.
Introducing Python CS 4320, SPRING Resources We will be following the Python tutorialPython tutorial These notes will cover the following sections.
C463 / B551 Artificial Intelligence Dana Vrajitoru Python.
Python uses boolean variables to evaluate conditions. The boolean values True and False are returned when an expression is compared or evaluated.
Introduction to Python LinuxWorld - New York City - January 2002 Guido van Rossum Director of PythonLabs at Zope Corporation (Now with: Google Inc.)
Before starting OOP… Today: Review Useful tips and concepts (based on CS 11 Python track, CALTECH)
An Introduction. What is Python? Interpreted language Created by Guido Van Rossum – early 90s Named after Monty Python
Python I Some material adapted from Upenn cmpe391 slides and other sources.
Python Primer 1: Types and Operators © 2013 Goodrich, Tamassia, Goldwasser1Python Primer.
CS105 Computer Programming PYTHON (based on CS 11 Python track: lecture 1, CALTECH)
Jim Havrilla. Invoking Python Just type “python –m script.py [arg]” or “python –c command [arg]” To exit, quit() or Control-D is used To just use the.
By Austin Laudenslager AN INTRODUCTION TO PYTHON.
Python Let’s get started!.
Guide to Programming with Python Chapter Five Lists and dictionaries (data structure); The Hangman Game.
LECTURE 3 Python Basics Part 2. FUNCTIONAL PROGRAMMING TOOLS Last time, we covered function concepts in depth. We also mentioned that Python allows for.
CSE 130 : Winter 2009 Programming Languages Lecture 11: What’s in a Name ?
Introduction to Programming Oliver Hawkins. BACKGROUND TO PROGRAMMING LANGUAGES Introduction to Programming.
1 Python K. Naik, M. Raju and S. Bhatkar December 3, 2002 CMSC 631.
IST 210: PHP Basics IST 210: Organization of Data IST2101.
Introduction to Scripting Languages: Python Some slides are based upon Python Documentation - Extended.
PYTHON PROGRAMMING. WHAT IS PYTHON?  Python is a high-level language.  Interpreted  Object oriented (use of classes and objects)  Standard library.
11/04/2009 © 1999 CNRI, Guido van Rossum 1 Python Crash Course Original Document : Python Workshop
Scientific Programming in Python -- Cheat Sheet
Introduction to Programming with Python
Python Bryce Boe.
CS-104 Final Exam Review Victor Norman.
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van Rossum during.
Introduction to Python
Introduction to Python
Introduction to Python
Overview of OOP Terminology
Python Tutorial for C Programmer Boontee Kruatrachue Kritawan Siriboon
Python I Some material adapted from Upenn cmpe391 slides and other sources.
Python Primer 1: Types and Operators
Introduction to Python LinuxWorld - New York City - January 2002
(more) Python.
Programming in Python Language Overview
Lecture 7: Python’s Built-in Types and Basic Statements
Learning Python 5th Edition
Presentation transcript:

Python Tidbits Python created by that guy ---> Python is named after Monty Python’s Flying Circus 1991 – Python Released 2008 – Python 2.6 / 3.0rc2 Current – Python / 3.2 *7 th most popular language Following: Java, C, C++, C#, PHP, Objective-C 2011/05/242 Guido van Rossum * x.htm

Who / What Uses Python Google Appengine Youtube Yahoo! Groups Reddit Mercurial (Awesome VCS) Original BitTorrent client Dropbox ( Exaile (Audio player) MusicBrainz Picard 2011/05/243

Why Python High Level Language (HLL) Rapid development Very Readable Code Up to 10x shorter code than Java/C/C++ Object Oriented Dynamically Typed Numerous standard packages and modules Numerous third-party packages Twisted, NumPy, SciPy, PIL, M2Crypto 2011/05/244

Standard Python Modules String Modules string re StringIO / cStringIO Data Compression gzip, bz2, zipfile, tarfile Data Structures heapq, array, datetime, calendar Operating System os, subprocess Networking socket urllib, urllib2, httplib, ftplib, poplib, imaplib, nntplib, smtplib, telnetlib smtpd, SocketServer, BaseHTTPServer Others crypt hashlib pickle / cPickle threading 2011/05/245

Get on with it! 2011/05/246

Key Words 2011/05/247

Types Immutable Numbers Strings Tuples Mutable Lists Dictionaries Sets Most user defined objects 2011/05/248

Numbers The usual suspects 12, 3.14, 0xFF, 0377, (-1+2)*3/4**5 abs(x), 0<x<=5 C-style shifting & masking 1 << 16, x & 0xff, x | 1, ~x, x^y Integer division truncates 1/2 -> 0# 1./2 -> 0.5, float(1)/2 -> 0.5 Long (arbitrary precision), complex 2**100 -> L 1j**2 -> (-1+0j) 2011/05/249

Strings "hello"+"world""helloworld"# concatenation "hello"*3"hellohellohello" # repetition "hello"[0]"h"# indexing "hello"[-1]"o"# (from end) "hello"[1:4]"ell"# slicing "hello"[::2]"hlo"# more slicing len("hello")5# size "hello" < "jello”True# comparison "e" in "hello"True# search "escapes: \n etc, \033 etc, \if etc" 'single quotes' """triple quotes""" r"raw strings" 2011/05/2410

More Strings Formatted Strings >>> "Pi: %.5f - Pi/2: %.5f" % (math.pi, math.pi/2) 'Pi: Pi/2: ' Splitting >>> "The quick brown fox jumps".split() ['The', 'quick', 'brown', 'fox', 'jumps'] Joining >>> '?'.join(['The', 'quick', 'brown', 'fox', 'jumps']) 'The?quick?brown?fox?jumps' 2011/05/2411

Lists Flexible arrays, not linked lists a = [99, "bottles of beer", ["on", "the", "wall"]] Same operators as for strings a+b, a*3, a[0], a[-1], a[1:], len(a) Item and slice assignment a[0] = 98 a[1:2] = ["bottles", "of", "beer"] -> [98, "bottles", "of", "beer", ["on", "the", "wall"]] del a[-1]# -> [98, "bottles", "of", "beer"] 2011/05/2412

More List Operations >>> a = range(5)# [0,1,2,3,4] >>> a.append(5)# [0,1,2,3,4,5] >>> a.pop()# [0,1,2,3,4] 5 >>> a.insert(0, 42)# [42,0,1,2,3,4] >>> a.pop(0)# [0,1,2,3,4] 42 >>> a.reverse()# [4,3,2,1,0] >>> a.sort()# [0,1,2,3,4] 2011/05/2413

Dictionaries Hash tables, "associative arrays" d = {"duck": "eend", "water": "water"} Lookup: d["duck"] -> "eend" d["back"] # raises KeyError exception Insert, delete, overwrite: d["back"] = "rug" # {"duck": "eend", "water": "water", "back": "rug " } del d["water"] # {"duck": "eend", "back": "rug"} d["duck"] = "duik" # {"duck": "duik", "back": "rug"} 2011/05/2414

More Dictionary Operations Keys, values, items: d.keys() -> ["duck", "back"] d.values() -> ["duik", "rug"] d.items() -> [("duck","duik"), ("back","rug")] Presence check: d.has_key("duck") -> True d.has_key("spam") -> False "duck" in d -> True; "spam" in d -> False Values of any type; keys almost any {"name":"Bryce", "age":22, ("hello","world"):1, 42:"yes", "flag": ["red","white","blue"]} 2011/05/2415

Dictionary Details Keys must be immutable: numbers, strings, tuples of immutables these cannot be changed after creation reason is hashing (fast lookup technique) not lists or other dictionaries these types of objects can be changed "in place" no restrictions on values Keys will be listed in arbitrary order again, because of hashing 2011/05/2416

Tuples key = (lastname, firstname) point = x, y, z # parentheses optional x, y, z = point # unpack lastname = key[0] singleton = (1,) # trailing comma!!! empty = () # parentheses! tuples vs. lists; tuples immutable 2011/05/2417

Variables No need to declare Need to assign (initialize) use of uninitialized variable raises exception Dynamically typed if friendly: greeting = "hello world" else: greeting = 12**2 print greeting Everything is a "variable": Even functions, classes, modules 2011/05/2418

Reference Semantics Assignment manipulates references x = y does not make a copy of y x = y makes x reference the object y references Very useful; but beware! Example: >>> a = [1, 2, 3] >>> b = a >>> a.append(4) >>> print b [1, 2, 3, 4] 2011/05/2419

Control Structure if condition: statements [elif condition: statements]... [else: statements] while condition: statements [else: statements] for var in sequence: statements [else: statements] break continue 2011/05/2420

Grouping Indentation C int i; for (i = 0; i < 20; i++) { if (i%3 == 0) { printf("%d\n", i); if (i%5 == 0) { printf("Bingo!\n" ); } printf("---\n"); } Python for i in range(20): if i%3 == 0: print i if i%5 == 0: print "Bingo!" print "---" 2011/05/ Bingo! Bingo!

Functions, Procedures def name(arg1, arg2=some_val,..., *v, **kw): """documentation"""# optional doc string statements return# from procedure # implied None return expression# from function 2011/05/2422

Example Function def gcd(a, b): "greatest common divisor" while a != 0: a, b = b%a, a # parallel assignment return b >>> gcd.__doc__ 'greatest common divisor' >>> gcd(12, 20) /05/2423

Classes class name(object): "documentation" statements -or- class name(base1, base2,...):... Most, statements are method definitions: def name(self, arg1, arg2,...):... May also be class variable assignments 2011/05/2424

Example Class class Stack: "A well-known data structure…" def __init__(self):# constructor self.items = [] def push(self, x): self.items.append(x)# the sky is the limit def pop(self): x = self.items[-1]# what happens if it’s empty? del self.items[-1] return x def is_empty(self): return len(self.items) == 0# Boolean result 2011/05/2425

Using Classes To create an instance, simply call the class object: x = Stack()# no 'new' operator! To use methods of the instance, call using dot notation: x.is_empty()# -> True x.push(1)# [1] x.is_empty()# -> False x.push("hello")# [1, "hello"] x.pop()# -> "hello"# [1] To inspect instance variables, use dot notation: x.items# -> [1] 2011/05/2426

Subclassing class FancyStack(Stack): "stack with added ability to inspect inferior stack items" def peek(self, n): """peek(0) returns top; peek(1) returns item below that; etc.""" size = len(self.items) assert 0 <= n < size# test precondition return self.items[size-1-n] 2011/05/2427

Subclassing (2) class LimitedStack(FancyStack): "fancy stack with limit on stack size" def __init__(self, limit): self.limit = limit FancyStack.__init__(self) # base class constructor def push(self, x): assert len(self.items) < self.limit FancyStack.push(self, x) # "super" method call 2011/05/2428

Modules Collection of stuff in foo.py file functions, classes, variables Importing modules: import re; print re.match("[a-z]+", s) from re import match; print match("[a-z]+", s) Import with rename: import re as regex from re import match as m 2011/05/2429

Packages Collection of modules in directory Must have __init__.py file May contain subpackages Import syntax: from P.Q.M import foo; print foo() from P.Q import M; print M.foo() import P.Q.M; print P.Q.M.foo() import P.Q.M as M; print M.foo()# new 2011/05/2430

Catching Exceptions def foo(x): return 1/x def bar(x): try: print foo(x) except ZeroDivisionError, message: print "Can’t divide by zero:", message else: # Only executed if no exceptions are caught pass bar(0) 2011/05/2431

Try-finally: Cleanup f = open(file) try: process_file(f) finally: f.close()# always executed print "OK"# executed on success only or with open(file) as f: process_file(f) 2011/05/2432

File Objects f = open(filename[, mode[, buffersize]) mode can be "r", "w", "a" (like C stdio); default "r" append "b" for text translation mode append "+" for read/write open buffersize: 0=unbuffered; 1=line-buffered; buffered methods: read([nbytes]), readline(), readlines() write(string), writelines(list) seek(pos[, how]), tell() flush(), close() fileno() 2011/05/2433

A Program in C 1. #include 2. #include 3. int main() { 4. srand(time()); 5. int i, j, random_odd[10]; 6. // Generate random odd integers 7. for (i = j = 0; i < 10; i++) { 8. random_odd[j] = rand() % 10000; 9. if (random_odd[j] % 2) 10. j += 1; 11. } 12. for (i = 0; i < j; i++) 13. printf("%d\n", random_odd[i]); 14. // Calculate the product 15. unsigned long product; 16. for (i = 0; i < j; i++) 17. product *= random_odd[i]; 18. printf(”\n%lu\n", product); 19. } 2011/05/2434

And in Python 1. #!/usr/bin/env python 2. import random # Generate random odd integers 5. # Using a list comprehension 6. random_odd = [x for x in random.sample(range(10000), 10) if x % 2] 7. for num in random_odd: 8. print num # Calculate the product 11. print '\n', reduce(lambda x, y: x*y, random_odd) 2011/05/2435

References Python Tutorial: Python Documentation: Many slides from: 2/intro22.ppt 2/intro22.ppt 2011/05/2436

Questions? 2011/05/2437