Test Foro de elhacker.net SMF 2.1

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 (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
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 (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"

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 (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()
Título: Re: [Python] Evitar un espacio en una entrada de números enteros
Publicado por: Geormarsch en 4 Julio 2017, 07:16 AM
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