Underc0de

Programación Scripting => Python => Mensaje iniciado por: Mavis en Mayo 29, 2011, 01:24:09 AM

Título: [Código] Entero / No Entero [Ejercicio - Python]
Publicado por: Mavis en Mayo 29, 2011, 01:24:09 AM
175 > Diseña un programa que indique si una cadena leída de teclado esta bien formada como
numero entero. El programa escribirá «Es entero» en caso afirmativo y «No es entero» en
caso contrario.
Por ejemplo, para '12' mostrara «Es entero», pero para '1 2' o 'a' mostrara «No es
entero».


Fue muy simple resolver esta actividad. Simplemente cree una función, y dentro de esta función, use un condicional que comprara si el numero es entero. Si es entero, devuelve «Es entero» y si no lo es, devuelve «No es entero». Pero tenia otro problema, y era, por ejemplo, si le daba a la cadena un valor como "1 3". Al haber un espacio, saltaba error, por lo tanto, eso no me servia. Pero también, al introducir una letra, pasaba lo mismo.

Eso también fue fácil de solucionar, simplemente se le pone un manejo de errores usando TRY & EXCEPT. Si surge un error con el valor de la variable, este devolverá que no es entero, ya que si lo fuese, no saldría error.

Código (python) [Seleccionar]
def Funcion(String):
    if (String == int(String)):
        return 'Es entero'
    else:
        return 'No es entero'

while True:
    try:
        String = input('Ingrese una cadena: ')
        print '%s' % Funcion(String)
    except:
        print 'No es entero'
Título: Re:[Código] Entero / No Entero [Ejercicio - Python]
Publicado por: MKD1R en Enero 17, 2020, 09:37:09 PM
Excelente amigo, sique asi. La mejor forma de aprender es escribiendo y leyendo codigo.
:D
Título: Re:[Código] Entero / No Entero [Ejercicio - Python]
Publicado por: darkucla en Enero 18, 2020, 02:04:25 AM
Muy bien, quisiera recomendarte el uso de .isdigt()  en un string te da True si son solo números
Claro que si deseas introducir "12.34".isdigit() por ejemplo, será False.. pero para eso podemos usar "12.34".count(".")  que retornará 1 y sabremos que tiene decimal

Código (python) [Seleccionar]

strNumero = input("Numero: ")
if strNumero.count(".") == 1:  # Busca que tenga un punto
if strNumero.replace(".", "").isdigit():  # quitamos el punto y preguntamos si son solo numeros
fltNumero = float(strNumero)
print(fltNumero, "no es entero, tiene decimal")
else:
print("no es entero")
elif strNumero.isdigit():      # Si la cadena tiene solo números...
intNumero = int(strNumero)
print(intNumero, "es entero ", end="")
if intNumero % 2 == 0:
print("par")
else:
print("impar")
else:
print("no es entero")


Hay algo que no domino aun que son las regex... expresiones regulares... las cuales disminuyen el código.. saludos
Título: Re:[Código] Entero / No Entero [Ejercicio - Python]
Publicado por: darkucla en Enero 18, 2020, 02:43:53 AM
que loco!.. revivieron un post de hace 9 años... y yo creyéndolo reciente :/