Python Basics. 2 Python History Late 1970s: programming language called ABC at the Centrum voor...

Preview:

Citation preview

Python Basics

2

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

3

Python History

•Guido: Benevolent Dictator for Life (BDFL)

•Neat set of interviews: http://www.artima.com/intv/

•Search for “Guido”

4

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

5

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 Pythoninteger int

“real” number floatpicture Picturepixel Pixel

colour Colorstring of letters str

6

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 -10308 … 10308

7

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

8

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

9

Python Operators

•Usual meaning: * + > < <= >= - ( )

•New operators

•power: 2 ** 5

•testing for equality: 3 == x

•remainder: 8 % 3

•division: 8 / 3

•assignment: num_bananas = 0

10

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)

11

Mathematical Operator Precedence

•Operators in same box group left to right

•Override using parentheses

** Exponentiation

+x -xPositive, negative

* / % //

Multiplication, division,

remainder, integer division

+ -Addition,

subtractionOperator precedence, highest to

lowest

12

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

13

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

14

Function Definition

def function_name(parameters): body

def keyword

Zero or more, comma-separated

One or more statements

15

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

16

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

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

What’s Next

Functions

Recommended