#!/usr/bin/python3

"""
ΑΣΚΗΣΗ 4
Στην κλίμακα Fahrenheit το νερό παγώνει στους 32 βαθμούς (0 οC) και βράζει στους 212 (100 οC)
Να γραφεί συνάρτηση μετατροπής από οC σε οF και το αντίστροφο και πρόγραμμα (main) που ο χρήστης να δίνει οC ή oΦ  και να επιστρέφει την αντίστοιχη θερμικρασία στην άλλη κλίμακα.
"""

def F2C(F_deg):
	# Μετατροπή F σε C, χρησιμοποιώντας τον τύπο: C = 5/9 * (F - 32)
	C_deg=( 5 / 9 ) * (F_deg - 32)
	return C_deg

def C2F(C_deg):
	# Μετατροπή C σε F, χρησιμοποιώντας τον τύπο: F = 9/5 * C +32
	F_deg=( 9 / 5 ) * C_deg + 32
	return F_deg
	
def main():
	C=None
	F=None
	opt=None
	try:
		# block για Έλεγχο στην είσοδο τιμών
		while True:
			print("Choose an option\n \t convert oF to oC (press F2C) \n \t convert oC to oF (press C2F)")
			opt=input("please give your answer: ")
			if not(opt=="C2F" or opt=="F2C"):
				print("error. Invalid option")
				continue
			break
		# Τέλος block
	
	except Exception as e:
		print(f"Exception {str(e)}")
		exit(1)

	try:
		if (opt=="C2F"):
			while True:
				C=float(input("Give temperature in oC: "))
				if (C< -273.15):
					print("This temperature does not exist. Try again.")
					continue
				else:
					break

			print(f"{C:.2f} oC = {C2F(C):.2f} oF")
		
		if (opt=="F2C"):
			while True:
				F=float(input("Give temperature in oF: "))
				if (F< -459.67):
					print("This temperature does not exist. Try again.")
					continue
				else:
					break

			print(f"{F:.2f} oF = {F2C(F):.2f} oC")

	except Exception as e:
		print(f"Exception: {str(a)}")
		exit(1)
		
if __name__=="__main__":
	main()
