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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  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 2,477 veces)
DarkPest

Desconectado Desconectado

Mensajes: 3



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

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 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



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

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 pm 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 pm »

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 6,820 Último mensaje 28 Diciembre 2009, 17:17 pm
por CaronteGold
Duda sobre python...? « 1 2 »
Scripting
barnix456 12 7,193 Último mensaje 17 Enero 2010, 01:08 am
por Masita
MOVIDO: Duda sobre Python
Programación General
Eleкtro 0 2,081 Último mensaje 19 Mayo 2017, 20:37 pm
por Eleкtro
Duda sobre python y funcion time
Scripting
c405 4 2,886 Último mensaje 22 Mayo 2017, 03:31 am
por c405
Duda sobre and en script Python
Scripting
Sergiolocuelo 6 2,445 Último mensaje 14 Agosto 2018, 17:12 pm
por Sergiolocuelo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines