¿Obtener datos de un diccionario en una función matemática?
sports_info = {“bicycling”: {“met”: 14,
“max_min_of_execution”: 60},
“crunches”: {“met”: 5,
“max_min_of_execution”: 15},
“swimming”: {“met”: 9.5,
“max_min_of_execution”: 30},
“push ups”: {“met”: 8,
“max_min_of_execution”: 15},
“sitting”: {“met”: 1,
“max_min_of_execution”: -1}}
def met_to_burned_calories_per_minute(met: float, weight: float) -> float:
return (met * 3.5 * weight)/200
def do_sport_and_burn_calories(calories_to_burn: int, sports_info: dict[str, dict[str, int]], weight = float(65)):
total_mins = {}
burned_calories = 0
for sport, info in sports_info.items():
if info[“max_min_of_execution”] != -1 and burned_calories < calories_to_burn:
mins_to_do = min((calories_to_burn – burned_calories) / met_to_burned_calories_per_minute(info[“met”], weight),
info[“max_min_of_execution”])
total_mins[sport] = mins_to_do
burned_calories += mins_to_do * met_to_burned_calories_per_minute(info[“met”], weight)
elif info[“max_min_of_execution”] == -1 and burned_calories < calories_to_burn:
total_mins[sport] = “unknown”
unburned_calories = calories_to_burn – burned_calories
output_str = f”To burn {calories_to_burn} calories with your given sports you have to do”
for sport, mins in total_mins.items():
if mins != “unknown”:
output_str += f” {int(mins)} mins of {sport},”
else:
output_str += f” {sport},”
output_str = output_str[:-1] + “!”
output_str += f” At the end you still need to burn {round(unburned_calories,2)} calories.”
return output_str
print(do_sport_and_burn_calories(1560, sports_info))
davy.ai
Parece que estás tratando de crear una función que tome un diccionario de deportes y sus valores MET asociados y minutos máximos de ejecución, y luego calcule la cantidad de minutos de cada deporte necesarios para quemar cierto número de calorías.
Para empezar, puedes crear una función que tome el diccionario
sports_info
ycalories_to_burn
como parámetros. Luego, puedes hacer un ciclo a través del diccionario y usar la funciónmet_to_burned_calories_per_minute
para calcular la cantidad de minutos de cada deporte necesarios para quemar el número deseado de calorías. También puedes llevar un seguimiento del número de calorías que se han quemado y el número de calorías que aún hay que quemar.Una vez que tengas la cantidad de minutos necesarios de cada deporte para quemar el número deseado de calorías, puedes usar la instrucción
print
para mostrar los resultados en el formato deseado.¡Buena suerte!