<jupyter_start><jupyter_text>**Curso Intro Python** Módulo 9: Funciones Parte 1: Trabajar con argumentos de funciones  **Problema 1:**Se solicita crear un informe de combustible que requiere información de varias ubicaciones de combustible en todo el cohete.<jupyter_code># Step 1: Crear función para lectura de combustibles para mostrar el promedio en
# un reporte.
def lectura_combustible (tCombustible1, tCombustible2, tCombustible3):
    avg = (tCombustible1 + tCombustible2 + tCombustible3)/3
    #return ("Reporte de Combustible \n", "Tanque 1:", tCombustible1, "\nTanque 2:", tCombustible2, "\nTanque 3:", tCombustible3, "\nPromedio de combustible:",avg)
    return (f"Reporte de Combustible \n Tanque 1: {tCombustible1} \n Tanque 2: {tCombustible2} \n Tanque 3: {tCombustible3} \n Promedio de combustible: {avg}")

# Step 2: Imprimir el reporte de combustible de 3 fuentes de combustible
print("El reporte de combustible es: \n", lectura_combustible(1230, 2304, 4320))<jupyter_output>El reporte de combustible es: 
 Reporte de Combustible 
 Tanque 1: 1230 
 Tanque 2: 2304 
 Tanque 3: 4320 
 Promedio de combustible: 2618.0<jupyter_text>**Problema 2:**Aparte de crear el reporte se pide crear una función para calcular el promedio de forma independiente.<jupyter_code># Step 1: Crear función general que calcula el promedio de combustible de manera general, 
# ingresando un set de valores que se almacenan en una lista.
def promedio_combustible (vTanques):
    # Calcular el promedio de manera general para n cantidad de valores de combustible,
    # utilizando la función suma que sumará esos valores y los dividirá entre el número
    # de elementos o valores de combustibles ingresados.
    avgCombustible = sum(vTanques)/len(vTanques)
    return avgCombustible

print("El promedio de combustible es:", promedio_combustible([1230, 1320, 3420, 8920, 7602]))<jupyter_output>El promedio de combustible es: 4498.4<jupyter_text>**Problema 3:**Actualizar la función lectura_combustible que genera el reporte sobre el combustible.<jupyter_code># Step 1: Actualizando la función para que sea más general.
def lectura_combustible(vTanques):
    return (f"Reporte de Combustible \n Tanque 1: {vTanques[0]} \n Tanque 2: {vTanques[1]} \n Tanque 3: {vTanques[2]} \n Promedio de combustible: {promedio_combustible(vTanques)}")

# Step 2: Imprimir el reporte de combustible de 3 fuentes de combustible
print("El reporte de combustible es: \n", lectura_combustible([20, 1230, 3420]))<jupyter_output>El reporte de combustible es: 
 Reporte de Combustible 
 Tanque 1: 20 
 Tanque 2: 1230 
 Tanque 3: 3420 
 Promedio de combustible: 1556.6666666666667<jupyter_text>Parte 2: Trabajar con argumentos de palabra clave en funciones **Problema 4:**Se solicita construir un informe de cohete que require varias piezas de información como el tiempo hasta el destino, el combustible a la izquierda y el nombre del destino.<jupyter_code># Step 1: Crear función que cree el informe:
def crea_informe (prelanzamientoTime, vueloTime, destino, tanqueExt, tanqueInt):
    return (f"INFORME DEL COHETE \n Tanque Interno: {tanqueInt} \n Tanque Externo: {tanqueExt} \n Destino: {destino} \n Hora de pre-lanzamiento: {prelanzamientoTime} \n Hora de vuelo: {vueloTime}")

print("El informe sobre el cohete es:", crea_informe("22:10:12", "23 horas", "Júpiter", 2340, 5305))<jupyter_output>El informe sobre el cohete es: INFORME DEL COHETE 
 Tanque Interno: 5305 
 Tanque Externo: 2340 
 Destino: Júpiter 
 Hora de pre-lanzamiento: 22:10:12 
 Hora de vuelo: 23 horas<jupyter_text>**Problema 5:**Se solicita construir un informe de cohete pero que la función que lo genera sea adaptativa.<jupyter_code># Step 1: Crear función que genera el informe del cohete con argumentos adaptables.
def crea_informe(destino, *time, **tanquesCombustible):
    return (f"INFORME DEL COHETE \n Tanque Externo: {tanquesCombustible['text']} \n Tanque interno: {tanquesCombustible['tint']} \n Combustible total: {sum(tanquesCombustible.values())} \n Destino: {destino} \n Tiempo de vuelo: {sum(time)} minutos \n Hora: {time[0]} \n Minutos: {time[1]} \n Segundos {time[2]}")

print("El informe sobre el cohete es:", crea_informe("Júpiter", 23, 12, 10, text=340, tint=5305))<jupyter_output>El informe sobre el cohete es: INFORME DEL COHETE 
 Tanque Externo: 340 
 Tanque interno: 5305 
 Combustible total: 5645 
 Destino: Júpiter 
 Tiempo de vuelo: 45 minutos 
 Hora: 23 
 Minutos: 12 
 Segundos 10<jupyter_text>**Problema 6:**Ahora, se solicita actualizar la función anterior para usar el nombre de cada tanque en el informe.<jupyter_code># Step 1: Actualizar la función para utilizar el nombre de cada tanque.
# Algo similar hicé arriba accediendo al key en el diccionario del combustible, pero 
# considerando otra opción.
def crea_informe(destino, *time, **tanquesCombustible):
    informe = (f"INFORME DEL COHETE \n Combustible total: {sum(tanquesCombustible.values())} \n Destino: {destino} \n Tiempo de vuelo: {sum(time)} minutos \n Hora: {time[0]} \n Minutos: {time[1]} \n Segundos {time[2]}")

    for keyTanque, keyCantidad in tanquesCombustible.items():
        informe += (f"\n Nombre del tanque: {keyTanque} \n Cantidad de combustible {keyCantidad}")
    return informe

print("El informe sobre el cohete es:", crea_informe("Júpiter", 23, 12, 10, Tanque_Ext=340, Tanque_Int=5305))<jupyter_output>El informe sobre el cohete es: INFORME DEL COHETE 
 Combustible total: 5645 
 Destino: Júpiter 
 Tiempo de vuelo: 45 minutos 
 Hora: 23 
 Minutos: 12 
 Segundos 10
 Nombre del tanque: Tanque_Ext 
 Cantidad de combustible 340
 Nombre del tanque: Tanque_Int 
 Cantidad de combustible 5305
{'fraction_non_alphanumeric': 0.09052258635961027, 'fraction_numerical': 0.04304694419840567, 'mean_word_length': 5.273333333333333, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 1, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '601937', 'license': 'MIT', 'n_tokens_mistral': 2275, 'n_tokens_neox': 2019, 'n_words': 689, 'path': 'Module_9/Module_9_kata.ipynb', 'repo_name': 'CristopherA96/LaunchX_IntroPython_w1', 'size': '5645'}