Stored in github at: https://github.com/pvanheus/python2015
1) Given a string of the form:
    "1 + 6"
write a Python function compute(thestring) that will compute the sum and return its value, e.g.
    mystring = "1 + 6"
    print compute(mystring)
    7
In [6]:
    
def compute(astring):
    expression_list = astring.split()
    #print expression_list
    num1 = float(expression_list[0])
    num2 = float(expression_list[2]) # or expression_list[-1]
    result = num1 + num2
    return result
    
In [7]:
    
def compute(astring):
    number_list = astring.split('+')
    print number_list
    total = 0
    for number in number_list:
        total += float(number)
    return total
    
In [11]:
    
def compute(astring):
    expression_list = astring.split()
    total = float(expression_list[0])
    operation = ''
    for element in expression_list[1:]:
        if element == '+':
            operation = element
        else:
            total += float(element)
    return total
    
In [15]:
    
# test compute
mystring = "103 + 7"
print compute(mystring) # should print 110
assert compute("1 + 1") == 2
    
    
2) Make your compute function handle the basic arithmetic operators: + (add), - (subtract), * (multiply) and / (divide). Division should be floating point division. So now e.g.
    mystring = "2 * 4"
    print compute(mystring)
    8
    mystring = "7 - 9"
    print compute(mystring)
    -2
3) Use compute in a script so that you can process a file containing these mathematical expressions and print an answer for each line. E.g. if myfile.txt contains:
    2 * 4
    7 - 9
    8 + 1
    9 / 2
If your script is called compute.py then running it should look like:
    compute.py myfile.txt
    8
    -2
    9
    4.5
4) Make your compute.py script write the results into a file, so now the compute.py script will take two command line arguments, the input file and the output file, and running it will look like:
    compute.py myfile.txt results.txt
where for the example given above the results (8, -2, 9, 4.5) should be written to results.txt.
5) Expand the compute function so that it can process more than 2 numbers. Operations should be processed left to right without concern for the normal rules of arithmetic (i.e. the BODMAS rule doesn't apply). So e.g.
mystring = "2 + 7 - 8 * 3"
print compute(mystring)
3
Remember that:
You can split a string into a list of strings with mystring.split()
A string can be converted to a number with int() or float()
The conditional statement if lets you choose what to do in your code, e.g.:
 if fruit == 'lemon':
     print "sour"
 elif fruit == 'strawberry':
     print "sweet"
 else:
     print "I don't know"
The open() built in function, when given a filename, returns a file open for reading or writing e.g.
 myfilename = 'myfile.txt'
 myfile = open(myfilename)
 myfilename = 'output.txt'
 myfile = open(myfilename, 'w')
You can loop through the lines in a file or the elements of a list with for:
 for line in myfile:
     print "the line is:", line
The command line arguments to a script are in sys.argv:
 import sys
 print "I got:", sys.argv
In [ ]: