# 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.

## Conditionals

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 `x`

.

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)

## Exercises

**Exercise**

Can the `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")

**Exercise**

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()

**Exercise**

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 `x`

and `y`

are nonzero.

Consider nesting `if...else`

blocks inside of an `if...else`

block.

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