Programación I - Simuacro de Primer Parcial

Instrucciones:

1. Seguimiento de Código (2 puntos)

¿Qué valor imprime en pantalla al ejecutar el siguiente código? Justifique brevemente su respuesta siguiendo el flujo de las variables.

def exam_mystery(text):
    word = "pythonic"
    if len(text) > 5:
        if "a" in text:
            word = text[:3].upper() + word[-2:]
        elif "e" in text:
            word = text[1:4] + "123"
        
        if len(word) > 5:
            result = word[::-1]
        else:
            result = word + "!!!"
    else:
        result = text[::2] + "&" + word[:2]
    
    print("Valor final:", result)

exam_mystery("parcial")

2. Manipulación de Listas y Slicing (2 puntos)

Escribir una función llamada shuffle_list que reciba una lista de exactamente 6 elementos. La función debe devolver una nueva lista siguiendo estas reglas (sin usar loops):

Ejemplo: shuffle_list([10, 20, 30, 40, 50, 60]) devuelve [60, 20, 40, 30, 50, 10]

3. Validación de Strings (2 puntos)

Escribir una función llamada validate_token que reciba un string y devuelva True si cumple con todas las siguientes condiciones, o False en caso contrario:

  1. El string debe empezar y terminar con la misma letra (ignorando mayúsculas/minúsculas).
  2. Debe tener una longitud de al menos 8 caracteres.
  3. Debe contener al menos un dígito numérico (0-9).
  4. No debe contener espacios en blanco al principio ni al final.

Ejemplos:

4. Resolución de Problemas: Sistema de Gimnasio (4 puntos)

Implementar una función llamada gym_membership que calcule el costo mensual de la cuota de un socio basándose en su edad y el tipo de plan.

Reglas de cálculo:

La función debe:

  1. Pedir al usuario la edad (convertir a int) con el mensaje: "Ingrese la edad del socio: ".
  2. Pedir el tipo de plan con el mensaje: "Ingrese el plan (basico/premium): ".
  3. Pedir si desea acceso fines de semana con el mensaje: ¿Acceso fin de semana? (si/no): ".
  4. Imprimir: "El costo final de la membresía es: $X", siendo X el valor calculado.
  5. Si la edad es negativa o el plan no es válido, imprimir: "Datos de entrada no válidos".

Ejemplo del cálculo: