Complete the following problems on paper. Try to solve each problem on paper first before using Thonny to confirm your answers.
[PP Problem 5.1] What value does each expression produce?
a. True and not False
b. True and not false
(Notice the capitalization.)
c. True or True and False
d. not True or not False
e. True and not 0
f. 52 < 52.3
g. 1+52<52.3
h. 4!=4.0
[PP Problem 5.6] Write a function named different
that has two parameters,
a
and b
. The function should return True
if a
and b
refer to
different values and should return False
otherwise.
[PP Problem 5.9] Assume we want to print a strong warning message if a pH value is below 3.0 and otherwise simply report on the acidity. We try this if statement:
>>> ph = 2
>>> if ph < 7.0:
... print(ph, "is acidic.")
... elif ph < 3.0:
... print(ph, "is VERY acidic! Be careful.")
...
2 is acidic.
This prints the wrong message when a pH of 2 is entered. What is the problem, and how can you fix it?
Note that the print
function also allows multiple parameters, which are
simply printed on the same line with a space in between. That’s why it is
not necessary to use str(ph)
here.
Your colleague wrote a program to describe the temperature, specifically it reports if the temperature is below freezing (in degrees fahrenheit), at freezing or above freezing. Their code is not working when the temperature is exactly 32 degrees. What is wrong and how could you fix it?
if temp == 32:
print("At freezing")
if temp <= 32:
print("Below freezing")
if temp >= 32:
print("Above freezing")
Modify the firstprimes
function (included below) to print out all the
prime numbers less than or equal to the parameter, num
. You can assume the
isprime
function is already available in your program. It will return
True
if its argument is a prime number and False
otherwise.
def firstprimes(num):
"""Prints out the first num primes"""
count = 0 # the number of primes we've printed out
current = 1 # the current number we're checking
while count < num:
if isprime(current):
print(current)
count += 1
current += 1
Write two functions, one using a for loop and one using a while loop that print all the numbers from 1 to 20, inclusive, that are evenly divisible by 3. Your function should print one number per line.
Extend both of your functions from the previous problem to accept the inclusive start and stop as parameters, i.e. instead of the fixed range of 1 to 20, allow the caller to specify the range.
[Computing for Biologists] DNA is composed of four nucleotides, A, C, G, and
T. Although we might expect the four nucleotides to be equally common in the
genome that is not the case. On average, the GC fraction, the percentage of
nucleotides that are ‘G’ or ‘C’, of the human genome is less than 40%. The
GC fraction is also not evenly distributed. Some regions of the genome,
including where genes are found, have a higher GC fraction. Thus regions of
high GC content can be used as a signal to detect genes or other features of
interest. Write a function named gc_fraction
that takes a DNA string as a
parameter and returns the GC fraction as a floating point number (that is
the fraction of all the nucleotides in the string that are ‘G’ or ‘C’). Your
function should work for upper or lower case strings, i.e. ‘acgt’ and
‘AGTC’, should both generate a result of 0.5.