Autor Tema: Saber si una cadena es un número entero o un número real [python]  (Leído 1420 veces)

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

Desconectado Daniel1952

  • PIC10
  • *
  • Mensajes: 45
Saber si una cadena es un número entero o un número real [python]
« en: 10 de Noviembre de 2017, 22:47:42 »
Hola gente, buen día.-
Ya me pace buscando muchas horas y no encuentro la solución, en c isdigit() comprobaba dígito a dígito en una cadena(si era 0-9) pero parece que en python es true únicamente si toda la cadena contiene sólo número.-
Lo que quiero validar es si el ingreso es un entero o un número real para luego dividir la cifra ingresada, ¿alguien me podría guiar?

Código: Python
  1. from __future__ import print_function
  2.  
  3. def separa(num):
  4.         lista = []
  5.         largo = len(num)
  6.         i=0
  7.         while largo > 0:
  8.                 lista.append(num[i])   
  9.                 i += 1
  10.                 largo -= 1
  11.         return lista
  12.  
  13. #def ver_ingreso(num):
  14.  
  15.  
  16. def main():
  17.         num = str(raw_input("\n Ingrese un numero entero....:"))
  18. #       ver_ingreso(num)
  19.         listaM = separa(num)
  20.         for x in range(0,len(listaM)):
  21.                 print(listaM[x], end=' ')
  22.  
  23. main()

Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5412
Re:Saber si una cadena es un número entero o un número real [python]
« Respuesta #1 en: 11 de Noviembre de 2017, 05:45:21 »
Supongo que utilizas Python 2.7

Prueba con esto:

Código: Python
  1. # -*- coding: cp1252 -*-
  2. from __future__ import print_function
  3.  
  4.  
  5. def ingresar():
  6.    num = raw_input("\nIngrese un numero entero...: ")
  7.    try:
  8.       num_real = float(num)
  9.    except ValueError:
  10.       num_real = None
  11.      
  12.    if num_real == None:
  13.       print(num, "no es un número")
  14.    elif num_real == int(num_real):
  15.       print(int(num_real), "es entero", )
  16.    else:
  17.       print(num_real, "es real",)
  18.  
  19. def main():
  20.    ingresar()
  21.  
  22. main()

Desconectado Daniel1952

  • PIC10
  • *
  • Mensajes: 45
Re:Saber si una cadena es un número entero o un número real [python]
« Respuesta #2 en: 11 de Noviembre de 2017, 09:57:54 »
Hola Picuino.
Gracias por ocuparte, en realidad la idea era un programa para separar una cifra ingresada por teclado, lo complete y funciona,
me sirvió de mucho tu aporte.- 

Código: Python
  1. # -*- coding: cp1252 -*-
  2. from __future__ import print_function
  3.  
  4. def ingresar():
  5.         num = raw_input("\nIngrese un número entero...: ")
  6.         try:
  7.                 num_real = float(num)
  8.         except ValueError:
  9.                 num_real = None
  10.      
  11.         if num_real == None:
  12.                 print(num, "No es un número")
  13.         else:
  14.                 separa(num)
  15.  
  16. def separa(num):
  17.         lista = []
  18.         largo = len(num)
  19.         i=0
  20.         while largo > 0:
  21.                 lista.append(num[i])   
  22.                 i += 1
  23.                 largo -= 1
  24.         muestra(lista)
  25.  
  26. def muestra(lista):
  27.         for x in range(0,len(lista)):
  28.                 print(lista[x], end=' ')
  29.  
  30. def main():
  31.    ingresar()
  32.  
  33. main()
  34.  

Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5412
Re:Saber si una cadena es un número entero o un número real [python]
« Respuesta #3 en: 11 de Noviembre de 2017, 17:29:11 »
Un poco de programación funcional:

Código: Python
  1. def muestra(lista):
  2.    cifras = [cifra for cifra in lista]
  3.    print(' '.join(cifras))
  4.  

Saludos.