[Python] Evitar un espacio en una entrada de números enteros

Iniciado por Geormarsch, 4 Julio 2017, 05:45 AM

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

Geormarsch

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 (python) [Seleccionar]

#-*- coding: utf -8 -*-

def Sueldo():
    MSB=int(input("ingrese su sueldo bruto:"))
    if (MSB>0):                               #MSB Debe ser positivo
        if MSB == " ":                       #No debe tener un espacio la variable y aqui es donde marca error
            print ("ESPACIO EN BLANCO")
        else:
            print ("Todo OK")               #Seria la continuación del programa...
    else:
        print ("Error, numero negativo") #Aqui si es negativo...
       

Sueldo()


Agradecería saber por qué no funciona y alguna solución
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

engel lex

Código (php) [Seleccionar]
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 (python) [Seleccionar]
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 (python) [Seleccionar]
entrada = raw_input("algo:")
if ' ' in entrada:
  print "hay espacio"
else:
  entrada = int(entrada)
  if entrada <= 0:
    print "error, 0 o menos"

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

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 (python) [Seleccionar]
#-*- coding: utf -8 -*-

def Sueldo():
    MSB=input("ingrese su sueldo bruto:")
    if MSB.isnumeric() == False:                               
        print ("No ha ingresado solo números")
    else:
        print ("Todo OK")               
        MSB=int(MSB)
       
Sueldo()

Geormarsch

Cita de: engel lex en  4 Julio 2017, 06:19 AM
Código (php) [Seleccionar]
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 (python) [Seleccionar]
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 (python) [Seleccionar]
entrada = raw_input("algo:")
if ' ' in entrada:
  print "hay espacio"
else:
  entrada = int(entrada)
  if entrada <= 0:
    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
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"