Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Geormarsch en 4 Julio 2017, 05:45 am



Título: [Python] Evitar un espacio en una entrada de números enteros
Publicado por: Geormarsch en 4 Julio 2017, 05:45 am
Hola, hace mucho tiempo no escribo por aquí, espero que todos estén bien  ;D

He venido con una pregunta.

Cómo evito que en un input exista un espacio ingresado por el usuario?

Intenté realizar esto pero sin duda alguna no funciona...

Código
  1. #-*- coding: utf -8 -*-
  2.  
  3. def Sueldo():
  4.    MSB=int(input("ingrese su sueldo bruto:"))
  5.    if (MSB>0):                               #MSB Debe ser positivo
  6.        if MSB == " ":                       #No debe tener un espacio la variable y aqui es donde marca error
  7.            print ("ESPACIO EN BLANCO")
  8.        else:
  9.            print ("Todo OK")               #Seria la continuación del programa...
  10.    else:
  11.        print ("Error, numero negativo") #Aqui si es negativo...
  12.  
  13.  
  14. Sueldo()
  15.  

Agradecería saber por qué no funciona y alguna solución


Título: Re: [Python] Evitar un espacio en una entrada de números enteros
Publicado por: engel lex en 4 Julio 2017, 06:19 am
Código
  1. MSB=int(input("ingrese su sueldo bruto:"))

con esto capturas la entrada, si estás en python 2 esto será de tipo int, luego conviertes a tipo int

Código
  1. if MSB == " ":

luego revisas si lo capturado (que ahora es tipo int) es un espacio... dará error

si quieres conseguir un espacio en un texto
Código
  1. entrada = raw_input("algo:")
  2. if ' ' in entrada:
  3.  print "hay espacio"
  4. else:
  5.  entrada = int(entrada)
  6.  if entrada <= 0:
  7.    print "error, 0 o menos"


Título: Re: [Python] Evitar un espacio en una entrada de números enteros
Publicado por: tincopasan en 4 Julio 2017, 06:38 am
hay muchas formas, depende de que tanto quieras programar y de tu imaginación, ahora como veo que es un sueldo y debe ser solo números se me ocurre como fácil:
Código
  1. #-*- coding: utf -8 -*-
  2.  
  3. def Sueldo():
  4.    MSB=input("ingrese su sueldo bruto:")
  5.    if MSB.isnumeric() == False:                              
  6.        print ("No ha ingresado solo números")
  7.    else:
  8.        print ("Todo OK")              
  9.        MSB=int(MSB)
  10.  
  11. Sueldo()
  12.  


Título: Re: [Python] Evitar un espacio en una entrada de números enteros
Publicado por: Geormarsch en 4 Julio 2017, 07:16 am
Código
  1. MSB=int(input("ingrese su sueldo bruto:"))

con esto capturas la entrada, si estás en python 2 esto será de tipo int, luego conviertes a tipo int

Código
  1. if MSB == " ":

luego revisas si lo capturado (que ahora es tipo int) es un espacio... dará error

si quieres conseguir un espacio en un texto
Código
  1. entrada = raw_input("algo:")
  2. if ' ' in entrada:
  3.  print "hay espacio"
  4. else:
  5.  entrada = int(entrada)
  6.  if entrada <= 0:
  7.    print "error, 0 o menos"



PERFECTO!!!! ME HA FUNCIONADO.

Sin embargo ahora si yo no introduzco nada, se forma un error, intente usar un or y poner '' sin un espacio, pero ahora cuando introduzco algún número no me funciona... Cómo podría hacerlo también para controlar un espacio y un algo vacio