Bueno, mirando unas códigos de unos amigos sobre el Teorema de Pitágoras, me hizo animar a sacar una versión del mío, aunque un poco raro... xD

Código: Seleccionar todo

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import math

#Funcion para la Hipotenusa... 
def Hipotenusa(X,Y):
    return math.sqrt((X*X)+(Y*Y))

#Funcion para el cateto... 
def Cateto(Y,X):
    return math.sqrt((Y*Y)-(X*X))

#Funcion para reemplazar "," por " " y convertirlos en una "lista".
def Replace(Cadena):
    Cadena = Cadena.replace(","," ")
    Cadena = Cadena.split()
    return Cadena

#Bucle del menu y operaciones...
while 1:
    print """
    ====== Teorema de Pitagoras ======
    1 - Hallar valor de la hipotenusa
    2 - Hallar valor del cateto
    3 - Salir
          """
    #Bloque para manejar excepciones...
    try:
    	Valores = raw_input("Introduce los dos valores separados por una coma > ")
    	Valores = Replace(Valores)
    	Opcion = input("Selecciona la opcion deseada: ")
    	if Opcion == 1:
	 	print "La hipotenusa vale: %s" % Hipotenusa(int(Valores[0]),int(Valores[1]))
    	elif Opcion == 2:
	 	print "El cateto vale: %s" % Cateto(int(Valores[0]),int(Valores[1]))
	else:
		exit()
    #Si se produce un error con la los valores (lista) que pedimos...
    except IndexError:
	print "Opps! ha sucedido un error. Intenta de nuevo..."
Tenemos el siguiente problema:
Una escalera de 10 m de longitud está apoyada sobre la pared. El pie de la escalera dista 6 m de la pared. ¿Qué altura alcanza la escalera sobre la pared?
Imagen


Usando el script:

Código: Seleccionar todo

windhack@windhack-desktop:~$ python '/home/windhack/Escritorio/Pitagoras.py' 

    ====== Teorema de Pitagoras ======
    1 - Hallar valor de la hipotenusa
    2 - Hallar valor del cateto
    3 - Salir
          
Introduce los dos valores separados por una coma > 10,6
Selecciona la opcion deseada: 2
El cateto vale: 8.0

Saludos ;)

Más Información: [Enlace externo eliminado para invitados]
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
Solucionado un pequeño error. No funcionaba con números reales, ahora sí lo hace perfectamente.

Código: Seleccionar todo

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import math

#Funcion para la Hipotenusa... 
def Hipotenusa(X,Y):
    return math.sqrt((X*X)+(Y*Y))

#Funcion para el cateto... 
def Cateto(Y,X):
    return math.sqrt((Y*Y)-(X*X))

#Funcion para reemplazar "," por " " y convertirlos en una "lista".
def Replace(Cadena):
    Cadena = Cadena.replace(","," ")
    Cadena = Cadena.split()
    return Cadena

#Bucle del menu y operaciones...
while 1:
    print """
    ====== Teorema de Pitagoras ======
    1 - Hallar valor de la hipotenusa
    2 - Hallar valor del cateto
    3 - Salir
          """
    #Bloque para manejar excepciones...
    try:
    	Valores = raw_input("Introduce los dos valores separados por una coma > ")
    	Valores = Replace(Valores)
    	Opcion = input("Selecciona la opcion deseada: ")
    	if Opcion == 1:
	 	print "La hipotenusa vale: %s" % Hipotenusa(float(Valores[0]),float(Valores[1]))
    	elif Opcion == 2:
	 	print "El cateto vale: %s" % Cateto(float(Valores[0]),float(Valores[1]))
	else:
		exit()
    #Si se produce un error con la los valores (lista) que pedimos...
    except IndexError:
	print "Opps! ha sucedido un error. Intenta de nuevo..."
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
Esta mal ordenada esta parte:

Código: Seleccionar todo

    try:
       Valores = raw_input("Introduce los dos valores separados por una coma > ")
       Valores = Replace(Valores)
       Opcion = input("Selecciona la opcion deseada: ")
       if Opcion == 1:
       print "La hipotenusa vale: %s" % Hipotenusa(float(Valores[0]),float(Valores[1]))
       elif Opcion == 2:
       print "El cateto vale: %s" % Cateto(float(Valores[0]),float(Valores[1]))
   else:
      exit()
    #Si se produce un error con la los valores (lista) que pedimos...
    except IndexError:
   print "Opps! ha sucedido un error. Intenta de nuevo..."
Recordemos que python no se delimita por ";" como la mayoría de los lenguajes, se delimita por espacios y saltos de linea por lo que debe estar bien ordenado el código, tendría que quedarte así:

Código: Seleccionar todo

    try:
       Valores = raw_input("Introduce los dos valores separados por una coma > ")
       Valores = Replace(Valores)
       Opcion = input("Selecciona la opcion deseada: ")
       if Opcion == 1:
           print "La hipotenusa vale: %s" % Hipotenusa(float(Valores[0]),float(Valores[1]))
       elif Opcion == 2:
           print "El cateto vale: %s" % Cateto(float(Valores[0]),float(Valores[1]))
       else:
          exit()
    #Si se produce un error con la los valores (lista) que pedimos...
    except IndexError:
       print "Opps! ha sucedido un error. Intenta de nuevo..."
//mHmm..
Sí, pero fue el foro el que desordenó mi código ;). Ya sé que Python utiliza la indentación como método de ordenamiento.
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
Responder

Volver a “Otros lenguajes”