Programming in PythonConditionals
Consider a simple computational task performed by commonplace software, like highlighting the rows in a spreadsheet which have a value larger than 10 in the third column. We need a new programming language feature to do this, because we need to conditionally execute code (namely, the code which highlights a row) based on the
if statements for this purpose.
We can use an
if statement to specify different blocks to be executed depending on the value of a boolean expression. For example, the following function calculates the sign of the input value
def sgn(x): if x > 0: return +1 elif x == 0: return 0 else: return -1 sgn(-5)
Conditional expressions can be written using ternary conditional
«truevalue» if «condition» else «falsevalue». For example, the following version of the
sgn function returns the same values as the one above except when
x == 0.
def sgn(x): return +1 if x > 0 else -1 sgn(-5)
else part of an
if statement be omitted?
x = 0.5 if x < 0: print("x is negative") elif x < 1: print("x is between 0 and 1")
Write a function called
my_abs which computes the absolute value of its input. Replace the keyword
pass below with an appropriate block of code.
def my_abs(x): pass # add code here def test_abs(): assert my_abs(-3) == 3 assert my_abs(5.0) == 5.0 assert my_abs(0.0) == 0.0 return "Tests passed!" test_abs()
Write a function which returns the quadrant number (1, 2, 3, or 4) in which the point
(x,y) is located. Recall that the quadrants are numbered counter-clockwise: the northeast quadrant is quadrant 1, the northwest quadrant is 2, and so on. For convenience, you may assume that both
y are nonzero.
if...else blocks inside of an
def quadrant(x,y): pass # add code here def test_quadrant(): assert quadrant(1.0, 2.0) == 1 assert quadrant(-13.0, -2) == 3 assert quadrant(4, -3) == 4 assert quadrant(-2, 6) == 2 return "Tests passed!" test_quadrant()
Solution. Here's an example solution:
def quadrant(x,y): if x > 0: if y > 0: return 1 else: return 4 else: if y > 0: return 2 else: return 3