jim havrilla. invoking python just type “python –m script.py [arg]” or “python –c command...

18
Jim Havrilla

Upload: audrey-park

Post on 18-Jan-2016

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Jim Havrilla

Page 2: 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

Invoking PythonJust type “python –m script.py [arg]” or “python

–c command [arg]”To exit, quit() or Control-D is usedTo just use the interpreter just type “python”

and just issue python commands (called interactive mode)

FUN FACT: no semicolons needed in python!FUN FACT: in Python, the last printed

expression can be referenced as an automatically stored variable called “_” in interactive mode

Page 3: 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

Argument passingTo access arguments passed in a python

script type “import sys” and the arguments are stored in sys.argv

When no arguments are given, sys.argv[0] is an empty string

Page 4: 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

To handle errorType Control-C or DELETE (the interrupt

character) cancels the input and returns to the main prompt

If a command is being executed, it raises the KeyboardInterrupt exception which could be handled with a try statement

Page 5: 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

Things about Python scripts# designates comments“$ chmod +x myscript.py” to make a script

executable in Unix, and “#! /usr/bin/env python” must go at the beginning of the script

“import” at the beginning of a script to make it import things

After the initial “#!” line one can define the source coding style with a special comment like “# -*- coding: iso-8859-15 -*-”

If you want the python interpreter to do certain things during start-up, you can set an environment variable called “PYTHONSTARTUP” to the name of the file containing the startup commands

Page 6: 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

Numbers in PythonPython interpreter can be used as a straight up

calculator like 2+2 will come out as 4 with no extra syntax

Integer division/multiplication returns the floor, and integer + floating point operations return floating point

An equal sign assigns a value to a variable but can do it to several variables at once like “x=y=z=0”

Can also assign like so “a, b = 0, 1” and a=0, b=1Variables don’t need type designation, but of course

need a value to be used or else an error will occurComplex numbers are supported as well in the form

of a = complex(real,imaginary) or a = 3.0+1.5j and returned as (real+imaginaryj); can be accessed in parts like a.real, a.imag, or abs(a) gives its magnitude

Page 7: 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

Strings in PythonStrings can be in single or double quotes, but

usually in single quotes unless the string is a single quote in two double quotes

A string can span several lines of code; newline character is \n, and to indicate that the next line is a continuation of the last the \ character is used

Type “print” to print a string or just a given value of a whole expression

Can also surround strings in triple quote pairs “”” “”” or ‘’’ ‘’’ and then newline characters don’t need escaping

Page 8: 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

More about strings in PythonStrings can be concatenated with “+” and if the

strings are just string literals they can be concatenated with just a space between them like word = “lame” “Ya”word = “lameYa”

Strings can be indexed like char arrays in C, so word[0] = l

Colon has different effects in indexing: “word[0:2] = la” or “word[:2] = la” or “word[2:] = meYa”

If an index is too large it is replaced by the string size like for example “word[1:1000] = ameYa”

If an index is too small or too negative it is truncated unless it is a single-element reference (yes, you can use negative indices as long as the last element is 0)

Page 9: 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

More on stringsCan’t change parts of strings in python, but can

easily create a new stringlen(string) returns its length, but length of a slice

is index2-index1u‘string’ indicates a unicode based string and

Python Unicode-Escape encoding can be used for characters then or ur‘string’ for raw unicode

unicode() gives access to all Unicode codecs, unicode strings can be converted with str() to normal strings

string.encode(‘utf-8’) will encode in 8-bit or in whatever coding is specified in encode()

Page 10: 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

Lists in Pythonlist = [123, ‘abc’] is a listCan be indexed and concatenated like strings

(but not using a space)Slice operations return a new list of the indexed

elementsIndividual elements of a list can be changed and

can be replaced by slice operations like list[0:1] = 3 list = [3, ‘abc’]

len() still gives length, range() generates arithmetic progressions of numbers in a list like range(5,20,5) = [5,10,15,20]

lists can contain other lists mixed with single elements like list = [[‘k’, 23], ‘f’, 5]

Page 11: 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

Some syntaxThere is no {} for while or for loops or for if

statements, there must be a tab or spaces for each indented line, everything within a block by the same amount

Loop conditions don’t need to be written in parentheses

To instead print spaced answers instead of by newline with print in a while loop use print b, next line instead of print b next line (trailing comma dodges the newline after output)

Page 12: 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

Control Flow in PythonIf statements don’t need elif or else parts but

can have as many elifs as needed, “if elif elif” statement is equivalent to a switch or case statement

For statements work as an iteration over items of a list or sequence like “for x in list[:]:” and then the items are executed in order that they appear

Can use “for i in range(len(list)):print i, a[i];”

to get an iteration through the list easily

Page 13: 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

More on Control Flowbreak statement breaks out of smallest

enclosing loop, to move on with going to “else” in an if statement for example

continue statement moves on with next iteration of the loop

pass statement does nothing and is used syntactically for things like empty classes or used as a placeholder when you are working on a function or condition

Page 14: 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

Functions in PythonThe term “def” introduces the definition of a

function and is followed by a function name and in parentheses a list of arguments

def statement is like “def func(number):”By default all variable assignments in a function

store local variablesreturn is used to give back a resultFunction can be renamed as a variable and stored to

be used in the interpreter like “f = funcf(423)”>>> output

variable.append(new stuff) is the more efficient way to concatenate new elements at the end of a list in a function

Page 15: 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

Some more function stuffTo assign default values one just needs to set each

argument in the definition to a value like:“def func(number=100, why=“not”, tiny)”

Also, “in” can be used to test if a sequence has a value like “if func in (‘no’, ‘not’)

return True” If the default value is a mutable object, it is evaluated only

once, and a function can accumulate arguments like“def func(thing, list=[])

list.append(thing)return list”

for “print func(1), func(‘f’), func(10)”This would print “[1], [1,’f’], [1,’f’,10]”To fix the above just put if list is None for each call so that

it doesn’t append continually

Page 16: 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

A bit more on functions If a function is written like so “def func(arg, *name, **args)” then the formal

parameter **args acts as dictionary containing the keyword arguments except for the whats already a formal parameter or *name in this case which just contains the positional arguments (a variable number not including ** args after *name)

Like in def func(arg1, *name, **args)

for arg in name:print arg

key = args.keys()for keyword in key:

print keyword, “-”, key[keyword]“func(“hi”, “bye”, “try”, haha = “three”, nine = “five”)” would make

byetryhaha – threenine – five

Functions can be called with arbitrary number of arguments Dictionaries can deliver keyword arguments into a function using the ** operator

and the *operator can unpack arguments from a list/tuple lambda function can be used to make small anonymous function inside function

definition Like “def super(arg): return lambda q: q * arg” can be used to say

“func=super(5)func(5)”func(5) is equal to 25 and func(10) = 50

Page 17: 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

Documentation and StyleTry using 4-space indentation instead of tabsType a string in a function definition without

print in front of it and it can be seen by type func.__doc__ to see what is called the docstring

Page 18: 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

Done!Any questions?