Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Respuestas multiplicadas

¡Buenas tardes! ¿Qué tal? Mi nombre es Melanie. Verán, sucede que al momento de correr mi código se multiplican las respuestas. Esto es, ingreso cinco edades, y el código me devuelve como diez respuesttas. Vean el código que use y las respuestas que obtuve: Ingrese su código aquíverificaciones = [] edades = [5,8,12,42,43]

def verificar_si_puede_conducir_boolean(verificaciones, edades): for edad in edades: if edad >= 18: verificaciones.append(True) else: verificaciones.append(False) for verificacion in verificaciones: if verificacion == True: print('Usted tiene edad para conducir') else: print('Usted NO puede conducir')

verificar_si_puede_conducir_boolean(verificaciones, edades)

RESPUESTA:

Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted tiene edad para conducir Usted NO puede conducir Usted NO puede conducir Usted NO puede conducir Usted tiene edad para conducir Usted tiene edad para conducir

¡Desde ya muchas gracias!

3 respuestas
solución!

Hola Melanie, ¿Cómo estás?

La lógica de tu código está correcta, solo me quedó la duda de si estás respetando la indentación del código dentro de la función. El segundo for no debería estar dentro del primero.

Debería quedar así:

Declaración de variables

verificaciones = [] 
edades = [5,8,12,42,43]

Función

def verificar_si_puede_conducir_boolean(verificaciones, edades): 
  for edad in edades: 
    if edad >= 18: 
      verificaciones.append(True) 
    else: 
      verificaciones.append(False) 
  for verificacion in verificaciones: 
    if verificacion == True: 
      print('Usted tiene edad para conducir') 
    else: 
      print('Usted NO puede conducir')

LLamada a la función

verificar_si_puede_conducir_boolean(verificaciones,edades)

Si esa es la estructura de tu función debería imprimir correctamente las 5 frases:

Usted NO puede conducir

Usted NO puede conducir

Usted NO puede conducir

Usted tiene edad para conducir

Usted tiene edad para conducir

Solo que en esa estructura si vuelves a ejecutar la celda de la llamada a la función, ahí va a comenzar a aumentar la cantidad de frase impresas, en la segunda ejecución 10 frases, en la tercera 15, y así sucesivamente. Esto debido a que lo que estás haciendo es adicionando más (True o False) en el mismo array de verificaciones.

Para solucionar este problema deberías inicializar tus variables en cada llamada a la función, por ejemplo dejando la declaración junto con la llamada a la función:

verificaciones = [] 
edades = [5,8,12,42,43]
verificar_si_puede_conducir_boolean(verificaciones,edades)

Espero haberte ayudado Melanie,

Continua con tus estudios y para otras dudas seguimos por aquí

Saludos :)

¡La respuesta ha sido de gran ayuda! Muchísimas gracias y buena semana :D

Buena semana para tí también Melanie :)