Transcript slides2

Python Basics
Python History
• Late 1970s: programming language called ABC at the Centrum voor
Wiskunde en Informatica in the Netherlands
• Audience included physicists, social scientists, and linguists
• 1983: Guido van Rossum joined the ABC team
• Late 1980s: Guido needed a language for a different project; based
it on ABC, removed warts
• Python, after Monty Python
2
Python History
• Guido: Benevolent Dictator for Life (BDFL)
• Neat set of interviews: http://www.artima.com/intv/
• Search for “Guido”
3
How Python is Managed
• Guido collects and writes Python Enhancement
Proposals (PEPs)
• http://www.python.org/dev/peps/
• Interested parties comment
• Guido makes final decisions
• Team of programmers (many of them volunteers!)
implement the features
4
Python Types
• Every Python value has
a type that describes
what sort of value it is
• Built-in function type
will tell you the type of
an expression
English
Python
int
integer
float
“real” number
Picture
picture
Pixel
pixel
Color
colour
str
string of letters
5
Python Numeric Types
• Mathematical types: int float long bool
• English names:
• integer, floating-point number, long integer,
boolean
• int range: -2147483648 … 2147483647
• float values: about -10 … 10
308
308
6
Python Numeric Types
long values: unlimited (any number of available
locations in memory)
• int values that grow too large are automatically
converted to long
• One more: bool (from “Boolean”): True, False
7
Sizes in Memory
• Integers have a fixed size
• -1 and 983471 use the same amount of memory
• Floating-point number have a fixed size
• Consequence: can’t represent every possible
value
• Long integers can take up an arbitrarily large
amount of memory
8
Python Operators
• Usual meaning: * + > < <= >= • New operators
• power: 2 ** 5
• testing for equality: 3 == x
• remainder: 8 % 3
• division: 8 / 3
• assignment: num_bananas = 0
( )
9
You’re Not My Type
• Operations involving different types use this
hierarchy for the type of the result:
• float > long > int > bool
• 45.3 * 400000000L # result: float
• 400000000L - 45 # result: long
• 3 + True # result int (more on combining ints and
bools later)
10
Mathematical Operator Precedence
**
• Operators in same box
+x
Exponentiation
-x
Positive, negative
group left to right
• Override using
*
/
%
parentheses
+
-
//
Multiplication,
division, remainder,
integer division
Addition, subtraction
Operator precedence, highest to lowest
11
Names
• Variable names, function names, and every other
name you’ll see:
• Begin with a letter or underscore (a-z, A-Z, _)
• Are made up of letters, underscores, and
numbers
• Valid: _moo_cow, cep3, I_LIKE_TRASH
• Invalid: 49ers, @home
12
Naming Conventions
• thEre’S a GoOD rEasON wHy WorDs haVE A
StaNDaRd caPITaLizAtIon sCHemE
• Python convention for function names and
variables: pothole_case
• CamelCase is sometimes seen, but not for
functions and variables
• When in doubt, use lowercase_pothole
13
Function Definition
Zero or more, comma-separated
def function_name(parameters):
body
One or more statements
def keyword
14
Return Statement
• Form:
•return expression
• This must appear in a function body
• How it’s executed
1.Evaluate the expression
2.Exit the function, using the result of the
expression as the value of the function call
15
Useful __builtins__
• dir: produce a list of available functions and
variables
• help: display documentation
• type: produce the type of an expression
• int, str, float, bool: type conversion
• min, max, abs
•raw_input
16
Statements
• You’ve seen these statements
• assignment: variable = value
• print: print expression
• function definition: def function(…): …
• function call: function(…)
• return: return expression
• for loop: for variable in list: …
• If statement: if expression: …
17
What’s Next
Functions
18