elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] Evitar un espacio en una entrada de números enteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] Evitar un espacio en una entrada de números enteros  (Leído 2,923 veces)
Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
[Python] Evitar un espacio en una entrada de números enteros
« 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


En línea

"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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Python] Evitar un espacio en una entrada de números enteros
« Respuesta #1 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"


En línea

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


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python] Evitar un espacio en una entrada de números enteros
« Respuesta #2 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.  
En línea

Geormarsch

Desconectado Desconectado

Mensajes: 160



Ver Perfil
Re: [Python] Evitar un espacio en una entrada de números enteros
« Respuesta #3 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
En línea

"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"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines