Python Basics Python History Late 1970 s programming
Python Basics
Python History • Late 1970 s: 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 1980 s: 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 integer float “real” number Picture picture Pixel pixel Color colour 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 6
Python Numeric Types l� ong 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 * 40000 L # result: float • 40000 L - 45 # result: long • 3 + True # result int (more on combining ints and bools later) 10
Mathematical Operator Precedence ** • Operators in same box +x group left to right • Override using parentheses * / Exponentiation -x % Positive, negative // 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, cep 3, I_LIKE_TRASH • Invalid: 49 ers, @home 12
Naming Conventions • th. Ere’S a Go. OD r. Eas. ON w. Hy Wor. Ds ha. VE A Sta. NDa. Rd ca. PITa. Liz. At. Ion s. CHem. E • Python convention for function names and variables: pothole_case • Camel. Case 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 def keyword One or more statements 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
Function calls Run first_functions. py in WING 17
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: … 18
- Slides: 18