Q and A for Section 4.4 CS 106, Fall 2014. Q1 Q: The syntax for an if statement (or conditional...
-
Upload
harriet-evans -
Category
Documents
-
view
214 -
download
0
Transcript of Q and A for Section 4.4 CS 106, Fall 2014. Q1 Q: The syntax for an if statement (or conditional...
Q and A for Section 4.4
CS 106, Fall 2014
Q1
Q: The syntax for an if statement (or conditional statement) is:
if _______________ : _____________ A: if <boolean expression>: <body>
Q2
Q: Write code that prints out "Brilliant!" if the value in variable food is "spam".
A: if food == "spam": print "Brilliant!"
Q3
Q: What happens if the value of food is "bubble and squeak"?
A: Nothing.
Q4
Q: Write code to print "Brilliant!" if food is "spam" and how_prepared is "on toast".
A: if food == "spam" and how_prepared == "on toast":
print "Brilliant!"(or...)
What if we don't like it on toast?
Q5
Q: Write code to print "Brilliant!" if food is "spam" and how_prepared is "on toast", and to print "Awesome!" if how_prepared is "in a casserole".
A: if food == "spam":if how_prepared == "on toast":
print "Brilliant!"if how_prepared == "in a casserole":
print "Awesome!"
Q6
Q: An if-else statement has this format:if _____________ : ___________else: ___________A: <boolean expression>; <if body>; <else body>
Q7
Q: Suppose you have a function is_prime(x) that returns True if x is a prime number. Write code to add x to a list primes if x is prime and to a list non_primes otherwise.
A: if is_prime(x): primes.append(x)else: non_primes.append(x)
Q8
Q: Write code that prints "NaN" if the list nums is empty or, otherwise, computes and prints the average of the list of floats.
A: if len(nums) == 0:print "NaN"
else:print sum(nums) / len(nums)
Non-booleans used as booleans
Q: In the “for the guru” on page 142, there is code if not dinner:. Can you explain that?
A: Why, yes. Yes, I can. The pattern is if <boolean expression>:
So, if the expression given is not a boolean (dinner is a string), then it is converted to a boolean, as if bool(dinner) were called. In general, if a value is empty (“” or []), the value is False; else, True.
Q9
Q: Write code that prints "Let's go" if the variable response equals either 'y' or 'yes'.
A: if response in ('y', 'yes'):print "Let's go"
(not if response == 'y' or 'yes' !!)
Q10
Q: You are given a long string gen containing only As, Gs, Ts, and Cs. Write code to count the number of As and the number of Gs in the string.
countAs = 0countGs = 0for ch in gen:
if ch == 'A':countAs += 1
elif ch == 'G':countGs += 1
Q11
Q: You have 2 operands, op1 and op2, and an operator, op, that is one of '+', '-', '*', '/'. Write code to compute the correct result into res.
A: if op == '+':res = op1 + op2
elif op == '-':res = op1 - op2
elif op == '*':res = op1 * op2
elif op == '/':res = op1 / op2
Q12
Q: What can we do to the previous code to print out "Oops!" if op contains a bad value?
A: Addelse:
print 'Oops!'
Q13
Q: Rewrite this code using if-elif:if i < 7:
do_something(i)else:
if j > 9:do_something_else(j)
A: if i < 7:do_something(i)elif j > 9:do_something_else(j)
Nested if vs. elif
Q: When would you prefer an if nested inside an else, over using an elif.A: An if-else is a binary decision: there are two choices. An if-elif-elif-else is an n-way decision: some variable can belong to n different “groups” or “classes”. If you are comparing a variable n to something, and then in one of the results have to “classify” some other variable, use a nested if.
Q14
Q: Write code to print out a student's letter grade, based on the value in score. Pick your own scale.
A: if score > 92:print 'A'elif score > 85:print 'B'elif score > 77:print 'C'
elif score > 70:print 'D'
else:print 'F'