Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def is_number(s):
- """
- Helper function: Check if a string represents a real number
- """
- try:
- float(s)
- return True
- except ValueError:
- return False
- def convert_degree(temp, units):
- """
- converts degrees from celsius to fahrenheit.
- :param temp: the temperature to convert.
- :param units: the units to convert from (should be "C" or "F")
- :return: The converted temperature. if the temp is below the absolute 0 the function returns none
- """
- if not is_number(temp):
- return None
- if temp < -273.15 and units == "C":
- return None
- elif temp < -459.67 and units == "F":
- return None
- elif units == "F":
- return (temp * 9 / 5) + 32
- elif units == "C":
- return (temp - 32) * (5 / 9)
- else:
- return None
- def natural_language_convert_degree(user_request):
- """
- converts the "user request" to the desire temperature
- :param user_request: user request should be in this format : convert to [celsius|fahrenheit] [degree]
- :return: The converted temperature. if the temp is below the absolute 0 the function returns none
- """
- ans = user_request.split()
- if len(ans) != 4:
- return None
- if not is_number(ans[3]):
- return None
- degree = float(ans[3])
- if ans[2] == "celsius" and degree > -273.15:
- return float(ans[3]), convert_degree(degree, "C")
- elif ans[2] == "fahrenheit" and degree > -459.67:
- return float(ans[3]), convert_degree(degree, "F")
- else:
- return None
- def user_input_convert_degree():
- """
- :return:
- """
- maalot_str = input("Please enter degrees: ")
- if not is_number(maalot_str):
- return
- maalot = float(maalot_str)
- yehida = input("Convert to (C)elsius, or (F)ahrenheit: ")
- if yehida == "C":
- return maalot, "in Fahrenheit is ", convert_degree(maalot, yehida), "in Celsius"
- if yehida == "F":
- return maalot, "in Celsius is", convert_degree(maalot, yehida), "in Fahrenheit"
- else:
- return None
- # # fill code here. It is recommended to implement the function 'water_temp_to_state' and call it from here
- # # Convert water temperature to state of matter for user input.
- # def state_of_matter():
- def water_temp_to_state(temp):
- if temp < 0:
- return "Solid"
- if 0 <= temp <= 100:
- return "Liquid"
- if temp > 100:
- return "Gas"
- else:
- return
- def state_of_matter():
- """
- User inserts a number between 1 to 3, after this, the user will insert 3 degrees.
- :return:the output will be if the state of the numbers is in gas, liquid or solid for water.
- """
- threenums_str = input("Please enter a number of temperatures (1-3): ")
- if not is_number(threenums_str):
- return
- threenums = float(threenums_str)
- # if not 1 <= threenums <= 3:
- # return "The number you entered is not between 1 and 3, goodbye!"
- if threenums == 1:
- print("Please enter the temperatures, one in each line")
- deg1_str = input("")
- if not is_number(deg1_str): # Problem
- return
- deg1 = float(deg1_str)
- return water_temp_to_state(deg1)
- elif threenums == 2:
- print("Please enter the temperatures, one in each line")
- deg1_str = input("")
- deg2_str = input("")
- if not is_number(deg1_str):
- return
- if not is_number(deg2_str):
- return
- deg1 = float(deg1_str)
- deg2 = float(deg2_str)
- print(water_temp_to_state(deg1))
- return water_temp_to_state(deg2)
- elif threenums == 3:
- print("Please enter the temperatures, one in each line")
- deg1_str = input("")
- deg2_str = input("")
- deg3_str = input("")
- if not is_number(deg1_str):
- return
- if not is_number(deg2_str):
- return
- if not is_number(deg3_str):
- return
- deg1 = float(deg1_str)
- deg2 = float(deg2_str)
- deg3 = float(deg3_str)
- print(water_temp_to_state(deg1))
- print(water_temp_to_state(deg2))
- return water_temp_to_state(deg3)
- else:
- return "The number you entered is not between 1 and 3, goodbye!"
- # Test
- # threenums_str = input("Please enter a number of temperatures (1-3): ")
- # if not is_number(threenums_str):
- # return None
- # threenums = float(threenums_str)
- # if threenums > 3 or threenums < 1:
- # return "The number you entered is not between 1 and 3, goodbye!"
- # if threenums == 1:
- # print("Please enter the temperatures, one in each line:)
- #
- # print("Please enter the temperatures, one in each line:")
- # deg1_str = (input(""))
- # deg2_str = (input(""))
- # deg3_str = (input(""))
- # if not is_number(deg1_str):
- # return None
- # if not is_number(deg2_str):
- # return None
- # if not is_number(deg3_str):
- # return None
- # if deg1_str == "":
- # return None
- # if deg2_str == "":
- # return None
- # if deg3_str == "":
- # return None
- # deg1 = float(deg1_str)
- # deg2 = float(deg2_str)
- # deg3 = float(deg3_str)
- # print(water_temp_to_state(deg1))
- # print(water_temp_to_state(deg2))
- # print(water_temp_to_state(deg3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement