[Código] Entero / No Entero [Ejercicio - Python]

Iniciado por Mavis, Mayo 29, 2011, 01:24:09 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Código: php
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
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'

Excelente amigo, sique asi. La mejor forma de aprender es escribiendo y leyendo codigo.
:D

Enero 18, 2020, 02:04:25 AM #2 Ultima modificación: Enero 18, 2020, 02:07:37 AM por darkucla
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

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

que loco!.. revivieron un post de hace 9 años... y yo creyéndolo reciente :/