from cisc106 import * def f(x): if x < 10: return (x+9) elif x < 5: return (x + 4) elif x <...

21
Example from cisc106 import * def f(x): if x < 10: return (x+9) elif x < 5: return (x + 4) elif x < 0: return (x) else: return(0) assertEqual(f(-1), ______)

Post on 19-Dec-2015

231 views

Category:

Documents


0 download

TRANSCRIPT

Examplefrom cisc106 import *def f(x):

if x < 10: return (x+9)

elif x < 5:return (x + 4)

elif x < 0:return (x)

else:return(0)

 assertEqual(f(-1), ______)

Aside (strings)def addstrings(par1): return(par1 + "ubba")

assertEqual(addstrings("gub"),"gububba")

def addmore(par1): return(addstrings(par1)

+addstrings(par1))

assertEqual(addmore(“ha"), "_____________")

def dow(x): if (x == 1): return("Sunday") elif (x == 2): return("Monday") elif (x == 3): return("Tuesday") elif (x == 4): return("Wednesday") elif(x == 5): return("Thursday") elif (x == 6): return("Friday") elif (x == 7): return ("Saturday") else: return("Error")

assertEqual(dow(3),"Tuesday")

def makestr(x): if (dow(x) !="Error"): return("Today is " + dow(x)) else: return("Bad day") assertEqual(makestr(4),________)assertEqual(makestr(9),________)

def makestr(x): if (dow(x)=="Error"): return("Bad day") else: return("Today is " + dow(x))

assertEqual(makestr(9),________)assertEqual(makestr(-1),________)

anddef q(x): if (x>5) and (x < 10): return("just enough") elif (x > 5) and (x < 15): return("too much") else: return("no idea")

assertEqual(q(12), "___________")

diff?def q(x): if (x>5) and (x < 10): return("just enough") elif (x > 5) and (x < 15): return("too much") else: return("no idea")

assertEqual(q(7), "________")

def q(x): if (x>5) or (x < 10): return("just enough") elif (x > 5) or (x < 15): return("too much") else: return("no idea")

assertEqual(q(13), "________")

Eval?def q(x,y): if ((x<10) and (x >5)) or ((y <30 ) and (y > 25)): return(“hi") else: return(“low")

What do we need to input to get “hi”?What do we need to input to get “low”?

Nesteddef f(x)

if (x > 10):if ((x%2) == 0):

return(‘a big, even number’)else:

return(‘a big, odd number’)elif (x > 3):

if ((x%2) == 0):return(‘a small, even

number’)else:

return(‘a small, odd number’)else:

return(‘a puny number’)

assertEqual(f(4),____)assertEqual(f(13),____)assertEqual(f(0),_____)

What happens?def ReturnSomething(value):

if value = 1:return “glub”

else:return “blug”

assertEqual(ReturnSomething(1),________)

Nested If:def nested(x,y): if (y < 0): if (x == "abs"): if (((y * -1) % 2)== 0): return(str(y) + "is even") else: return(str(y) + "is odd")

else: if (y % 2 == 0): return(str(y) + "is negative but even") else: return(str(y) + "is negative but odd")

else: return("we really don't care if it's even or odd")

assertEqual(nested(“abs”,-4),_____________)

Same?def q(x): if (x>5) and (x < 10): return("just enough") elif (x > 5) and (x < 15): return("too much") else: return("no idea")

def g(x): if (x > 5): if (x < 10): return("just enough") elif (x < 15): return("too much") else: return("no idea") assertEqual(g(12),________)

What about:assertEqual(g(17),________)

def multof3(x): return(x%3)

def func(x): if(multof3(x) == 0): return(str(x) + " is a multiple of 3") else: return(str(x) + " is not a multiple of 3")

def ismultof3(x): if ((x%3) == 0): return(True) else: return(False)

def func2(x): if (ismultof3(x)): return(str(x) + " is a multiple of 3") else: return(str(x) + " is not a multiple of 3")

def ismultof3(x): if ((x%3) == 0): return(True) else: return(False)

When python executes the following statement, what is the result?(x%3)==0

def ismultof3(x): return((x%3) == 0):

def func2(x): if (ismultof3(x)): return(str(x) + " is a multiple of 3") else: return(str(x) + " is not a multiple of 3")

Function to represent this:#Determines if input value (x) will solve the#problem:# x2 - 3x – 4 = 0#Input: x: a number#Output:a boolean value

def eqcheck(x): return x**2 – 3*x – 4 == 0

Given assertEqual(eqcheck(3),______________)

What is returned? assertEqual(eqcheck(4),______________)

from cisc106 import *

def StateHealth(w,pl,pp,s): return((w * .25) + (pl * .25) + ((100-pp) * .20) + ((100 - s) * .30))

def StateGrade(w,p1,pp,s): if (StateHealth(w,p1,pp,s) > 93): return ("A") elif (StateHealth(w,p1,pp,s) > 84): return('B') elif (StateHealth(w,p1,pp,s) > 75): return('C') elif (StateHealth(w,p1,pp,s) > 66): return('D') else: return('F') assertEqual(StateGrade(80,73,18,19),'C')assertEqual(StateGrade(57,96,55,16),'D')assertEqual(StateGrade(100,100, 0, 0),'A')

Remember?

from cisc106 import *

def StateHealth(w,pl,pp,s): return((w * .25) + (pl * .25) + ((100-pp) * .20) + ((100 - s) * .30))

def StateGrade(w,p1,pp,s):var1 = StateHealth(w,p1,pp,s)

if (var1 > 93): return ("A") elif (var1> 84): return('B') elif (var1> 75): return('C') elif (var1> 66): return('D') else: return('F') assertEqual(StateGrade(80,73,18,19),'C')assertEqual(StateGrade(57,96,55,16),'D')assertEqual(StateGrade(100,100, 0, 0),'A')

Instead

from cisc106 import *

def StateHealth(w,pl,pp,s): return((w * .25) + (pl * .25) + ((100-pp) * .20) + ((100 - s) * .30))

def StateGrade(w,p1,pp,s):var1 = StateHealth(w,p1,pp,s) + 10

if (var1 > 93): return ("A") elif (var1> 84): return('B') elif (var1> 75): return('C') elif (var1> 66): return('D') else: return('F') assertEqual(StateGrade(80,73,18,19),‘B’)assertEqual(StateGrade(57,96,55,16),‘C')assertEqual(StateGrade(100,100, 0, 0),'A')

Add a Curve to the Grade?

More Variablesfrom cisc106 import *def calcsomething(par1): if ((par1%2) == 1): return(par1 * -1) else: return(par1)

def finddif(par1,par2): var1 = calcsomething(par1) if (var1 < 0): var1 = 0 var2 = calcsomething(par2) if (var2 < 0): var2 = 0 if ((var1 - var2) < 0): return(var2 - var1) else: return(var1 - var2)

assertEqual(finddif(3,7),____)assertEqual(finddif(4,7),____)assertEqual(finddif(2,4),____)

def MakeDate(par1,par2,par3): var1 = "Today is " var1 += GetDOW(par1) var1 += ", " var1 += GetMonth(par2) var1 += " " var1 += "20"+str(par3) return(var1)

def GetMonth(x): if (x == 1): return("January") elif (x == 2): return("February") elif (x == 3): return("March") elif (x == 4): return("April") elif(x == 5): return("May") elif (x == 6): return("June") elif (x == 7): return ("July") elif (x == 8): return("August") elif (x == 9): return("September") elif (x == 10): return("October") elif(x == 11): return("November") elif (x == 12): return("December")

def GetDOW(x): if (x == 1): return("Sunday") elif (x == 2): return("Monday") elif (x == 3): return("Tuesday") elif (x == 4): return("Wednesday") elif(x == 5): return("Thursday") elif (x == 6): return("Friday") elif (x == 7): return ("Saturday")

if statements: Same?def fu1(x): y = x*3 if (y < 0): y = y * -1 elif (y < 10): y = y + 4 return(y)assertEqual(fu1(-

2),__)

def fu2(x): y = x*3 if (y < 0): y = y * -1 if (y < 10): y = y + 4 return(y)assertEqual(fu2(-

2),__)

What about?def f(x): if (x == 1): return x else: return(x + f(x-1))

assertEqual(f(4),______)

def f2(x): if (x == 1): return str(x) else: return(str(x) + f2(x-1))

assertEqual(f2(4),_______)

Try:def f(x):

return(x + f(x-1))

assertEqual(f(4),______)

def f2(x): if (x == 1): return x else: return(x + f2(x+1))

assertEqual(f2(4),_____)

def f3(x): if (x == 1): return x else: return(x + f2(x-2))

assertEqual(f2(4),_______)