''' // C: 0 .c.. 100 [100] // F: 32 .f.. 212 [180] // (f-32)/(c-0) = 180/100 // c = (f-32) * 100/180 // f = c * 180/100 + 32 ''' def toCelsius(f): return (f-32) * 5/9 # (5/9) may be evaluated to 0 in Python 2 def toFahrenheit(c): return c * 180/100 + 32 # Challenge: re-write the above functions into lambda functions ... if __name__ == "__main__": print(77, 'degree F = ', toCelsius(77), 'degree C') print("") print(25, 'degree C = ', toFahrenheit(25), 'degree F') print("") print('round-trip conversion for F=77 produces F=', toFahrenheit( toCelsius(77) )) print('round-trip conversion for C=25 produces C=', toCelsius( toFahrenheit(25) )) print("") # Every 10 (5) deg C change makes 18 (9) deg F change print('deltaC==10 <=> deltaF==18') for c in range(0,100+1,10): print('%3d degree C = %5.1f degree F' % (c, toFahrenheit(c))) print("") print('deltaF==9 <=> deltaC==5') # Every 18 (9) deg F change makes 10 (5) deg C change for f in range(32,212+1,9): print('%3d degree F = %5.1f degree C' % (f, toCelsius(f))) print("")