Python Homework Help: Problems and Solutions
Python Homework Help: Problems and Solutions
We've taught you that objects encapsulate data, and they provide member
functions that operate based on that data. Some member functions change
that data – in that case, they're modifiers and the object is mutable – while
others simply return new data.
pythonhomeworkhelp.com
You should get out a bunch of what looks like jumbled nonsense. But those
things are actually member functions of each object. You'll generally see
two types of member functions:
pythonhomeworkhelp.co
m
We see the same result. It turns out that whenever you write object1 <
object2, Python looks for a __lt__ member function in a and calls it with b
as the argument. (In actuality, there is a little more to the story, but we
won't worry about that now.)
The rest of the functions are all functions that you can use! For help with
any, type:
Take a quick look at some of the functions for strings, lists and tuples...
we'll be needing them.
pythonhomeworkhelp.co
m
Let's say there are two methods to find the "distance" of two
chromosomes -- that is, how much the two have varied through
mutations. One method is to go letter by letter and count the number of
discrepancies. Another method is to sum the discrepancies of a's (e.g.
chromosome x has 5 a's, chromosome y has 7 a's), c's, g’s, and t’s.
Are the two methods the same? We don't know, let's find out.
Write a function that uses method 1. It will take two chromosomes, and
go letter by letter in each, comparing them. It then returns the total
number of discrepancies it finds.
Write another function that uses method 2. It will take two chromosomes,
and return the sum of 'a' discrepancies, ‘cones, and so on.
Then call each function on each of the combinations (A,B), (A,C), (A,D),
(B,C), (B, D), and (C, D) and see which methods tell you which pair of
chromosomes is "furthest" (i.e. most varied) and which pair is "closest"
(i.e. least varied).
Important note: From this point on, we are going to stray from interactive
programs that use raw_input and go to solving complex problems instead.
You should not use a raw_input function anywhere in this program.
pythonhomeworkhelp.co
m
A = "gtggcaacgtgc"
B = "gtagcagcgcgc"
C = "gcggcacagggt"
D = "gtgacaacgtgc"
pythonhomeworkhelp.co
m
def compare(c1, c2, name1, name2):
print name1, "and", name2, ":"
print "Method 1 says there are", method1(c1,
c2), "differences."
print "Method 2 says there are", method2(c1,
c2), "differences."
print
pythonhomeworkhelp.co
m