Nombre: Cesar Alfonso Sánchez del Toro Matrícula: 02957967
Nombre del curso: Nombre del profesor:
Fundamentos de la programación
Módulo: 1 Actividad: 2
Fecha: 27/08/2024
Bibliografía:
Codigo:
def calcular_precio(tipo_visitante, es_mayor_edad):
# Precio base
if es_mayor_edad:
precio_base = 45
else:
precio_base = 30
# Descuentos por tipo de visitante
descuentos = {
"adulto mayor": 0.12,
"profesor": 0.10,
"estudiante": 0.10
}
# Obtener descuento aplicable
descuento = descuentos.get(tipo_visitante.lower(), 0)
# Calcular precio final con descuento
precio_final = precio_base * (1 - descuento)
return precio_final
def main():
total_a_pagar = 0
while True:
try:
num_visitantes = int(input("Ingrese el número de visitantes que
pagarán boleto: "))
if num_visitantes <= 0:
print("El número de visitantes debe ser mayor que 0.")
continue
except ValueError:
print("Entrada inválida. Ingrese un número entero.")
continue
for i in range(num_visitantes):
while True:
try:
es_mayor_edad = input("¿El visitante es mayor de edad? (s/n):
").strip().lower()
if es_mayor_edad not in ['s', 'n']:
raise ValueError("Entrada inválida. Responda con 's' o 'n'.")
es_mayor_edad = es_mayor_edad == 's'
break
except ValueError as e:
print(e)
continue
while True:
try:
tipo_visitante = input("Ingrese el tipo de visitante (adulto mayor,
profesor, estudiante): ").strip().lower()
if tipo_visitante not in ["adulto mayor", "profesor", "estudiante"]:
raise ValueError("Tipo de visitante inválido.")
break
except ValueError as e:
print(e)
continue
precio = calcular_precio(tipo_visitante, es_mayor_edad)
total_a_pagar += precio
print(f"Precio para este visitante: ${precio:.2f}")
print(f"\nTotal a pagar por todos los visitantes: ${total_a_pagar:.2f}")
while True:
continuar = input("¿Desea calcular el total para otro grupo de
visitantes? (s/n): ").strip().lower()
if continuar in ['s', 'n']:
break
else:
print("Entrada inválida. Responda con 's' o 'n'.")
if continuar == 'n':
break
if __name__ == "__main__":
main()
Explicacion:
Función calcular_precio(tipo_visitante, es_mayor_edad):
Determina el precio base según si el visitante es mayor de edad.
Aplica el descuento correspondiente según el tipo de visitante.
Calcula y retorna el precio final después del descuento.
Función main():
Solicita al usuario el número de visitantes y verifica que sea un número válido.
Usa un ciclo for para iterar sobre el número de visitantes, pidiendo si son
mayores de edad y el tipo de visitante para cada uno.
Calcula el precio para cada visitante y acumula el total a pagar.
Permite al usuario calcular el total para otro grupo de visitantes o salir del
programa.
Ciclos y control de flujo:
Se usan ciclos while para gestionar la entrada del usuario y manejar errores.
Las cláusulas break y continue se utilizan para controlar la lógica del ciclo y
validar entradas.
Resultado: