# PracProg2cond

# Making Choices

2. a. `x and y`

b. `not x`

c. `x or y`

4. Yes. If you try substituting all possible Boolean values for `(light < 0.01)`

, which we’ll abbreviate as L, and `(temperature > 0.0)`

as T, you’ll find the following Boolean expressions are logically equivalent:

`L` |
`T` |
`L != T` |
`L or T and not (L and T)` |
---|---|---|---|

True | True | False | False |

True | False | True | True |

False | True | True | True |

False | False | False | False |

6.

def different(a, b): """ (number, number) -> bool Return True if a and b refer to the same values, or False, otherwise. >>> different(0, 1) True >>> different(1, 1) False """ return a != b

8.

def convert_temperatures(t, source, target): """ (number, str, str) -> number Convert t from source temperature scale to target temperature scale and return the result. >>> convert_temperatures(0, 'Celsius', 'Kelvin') 273.15 >>> convert_temperatures(100, 'Celsius', 'Fahrenheit') 212.0 """ if source == 'Kelvin': celsius = t - 273.15 elif source == 'Celsius': celsius = t elif source == 'Fahrenheit': celsius = (t - 32) * 5 / 9 elif source == 'Rankine': celsius = (t - 491.67) * 5 / 9 elif source == 'Delisle': celsius = 100 - t * 2 / 3 elif source == 'Newton': celsius = t * 100 / 33 elif source == 'Reamur': celsius = t * 5 / 4 elif source == 'Romer': celsius = (t - 7.5) * 40 / 21 if target == 'Kelvin': return celsius + 273.15 elif target == 'Celsius': return celsius elif target == 'Fahrenheit': return celsius * 9 / 5 + 32 elif target == 'Rankine': return (celsius + 273.15) * 9 / 5 elif target == 'Delisle': return (100 - celsius) * 3 / 2 elif target == 'Newton': return celsius * 33 / 100 elif target == 'Reamur': return celsius * 4 / 5 elif target == 'Romer': return celsius * 21 / 40 + 7.5

10. a. `It's acidic!`

b. `It's acidic!`

c.

ph = float(input("Enter the ph level: ")) if ph < 7.0: print("It's acidic!") if ph < 4.0: print("It's a strong acid!")