elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: 4n4lDetector v1.3: herramienta de análisis estático de malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Duda sobre Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre Python  (Leído 180 veces)
DarkPest

Desconectado Desconectado

Mensajes: 3



Ver Perfil
Duda sobre Python
« en: 19 Mayo 2017, 17:58 »

Código
  1. n1=4
  2. n2=8
  3. n3=8
  4. print (n1, n2, n3)
  5. def maxDeTres(n1,n2,n3):
  6.    if n1>n2 and n1>n3:
  7.        return n1
  8.    elif n2>n1 and n2>n3:
  9.        return n2
  10.    elif n3>n1 and n3>n2:
  11.        return n3
  12.    else:
  13.        return 'Algunos números son iguales'
  14.  
  15. print (maxDeTres(n1,n2,n3))
  16.  
  17. if maxDeTres(n1,n2,n3) == 'Algunos números son iguales' and n1==n2:
  18.    return ('n1 y n2 son los mayores y son iguales')
  19. elif n1==n3:
  20.    return ('n1 y n3 son los mayores y son iguales')
  21. else:
  22.    return ('n2 y n3 son los mayores y son iguales')
   

Me puede ayudar alguien tengo la siguiente duda. Porque en mi segundo IF los returns me devuelven un error 'return' outside function. Con print si que funciona, pero con return no. Se que está relacionado con la identación pero no entiendo el porque. Muchas gracias


« Última modificación: 19 Mayo 2017, 18:08 por Eleкtro » En línea

Eleкtro
Novato Astral y
Moderador Global
***
Conectado Conectado

Mensajes: 8.831


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Duda sobre Python
« Respuesta #1 en: 19 Mayo 2017, 18:08 »

Se que está relacionado con la identación pero no entiendo el porque.

Código
  1. def maxDeTres(n1,n2,n3):
  2. ...
  3.  
  4. if maxDeTres(n1,n2,n3) == 'Algunos números son iguales' and n1==n2:
  5.    return ('n1 y n2 son los mayores y son iguales')
  6. elif n1==n3:
  7.    return ('n1 y n3 son los mayores y son iguales')
  8. else:
  9.    return ('n2 y n3 son los mayores y son iguales')

Esa unidad de condicionales no tiene indentación, por lo tanto se ejecutan fuera del bloque de la función, y el error que te indica es por que la sentencia return no tiene sentido usarla si no es para devolver un valor de retorno en el bloque de una función.

Con print si que funciona, pero con return no.

Esa es la solución, puesto que evidentemente tú no quieres que esa función devuelva un string, tan solo quieres imprimir el string en la shell, así que no entiendo por que intentas usar "return" en vez de "print".

¡Saludos!


« Última modificación: 19 Mayo 2017, 18:15 por Eleкtro » En línea


DarkPest

Desconectado Desconectado

Mensajes: 3



Ver Perfil
Re: Duda sobre Python
« Respuesta #2 en: 19 Mayo 2017, 18:34 »

Esa unidad de condicionales no tiene indentación, por lo tanto se ejecutan fuera del bloque de la función, y el error que te indica es por que la sentencia return no tiene sentido usarla si no es para devolver un valor de retorno en el bloque de una función.

Esa es la solución, puesto que evidentemente tú no quieres que esa función devuelva un string, tan solo quieres imprimir el string en la shell, así que no entiendo por que intentas usar "return" en vez de "print".

¡Saludos!

Aaaaaah de acuerdo muchísimas gracias por la aclaración. Utilizo el return porque estoy aprendiendo Python y claro, voy probando cosas. Creía que podía utilizarlo para lo mismo en este caso y  no tenía claro porque no me dejaba pero ya lo veo, mil gracias !!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda de if sobre if [Python]
Scripting
CaronteGold 9 3,742 Último mensaje 28 Diciembre 2009, 17:17
por CaronteGold
Duda sobre python...? « 1 2 »
Scripting
barnix456 12 3,377 Último mensaje 17 Enero 2010, 01:08
por Masita
Duda sobre programación (C, C++, Python, etc...)
Programación C/C++
shaddy4ever 1 234 Último mensaje 5 Agosto 2016, 13:47
por ivancea96
MOVIDO: Duda sobre Python
Programación General
Eleкtro 0 159 Último mensaje 19 Mayo 2017, 20:37
por Eleкtro
Duda sobre python y funcion time
Scripting
c405 4 190 Último mensaje 22 Mayo 2017, 03:31
por c405
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines