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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (Python) Filtro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Python) Filtro  (Leído 2,830 veces)
BigKaz

Desconectado Desconectado

Mensajes: 94


Ver Perfil
(Python) Filtro
« en: 20 Noviembre 2016, 02:50 am »

Hola, estoy haciendo un programa en el que quiero mostrar en la pantalla un nombre ingresado por el usuario, pero que ese nombre no sea un numero ni decimal. Como puedo hacer un filtro para esto?


   
Código
  1. nombre = (input("Cual es tu nombre?: "))


En línea

Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: (Python) Filtro
« Respuesta #1 en: 20 Noviembre 2016, 03:19 am »

Usa el método isdigit que tienen las cadenas de python:

Código
  1. print(nombre.isdigit())

Devuelve true true si el string es un número y False si no. Ahora, para probar si el número es decimal, no hay una función que lo compruebe, pero hay muchas formas de hacer, lo que a mí se me ocurre es que elimines el separador decimal (ya sea un punto o una coma) y luego compruebes si es un número:

Código
  1. numero = numero.replace(".", "")
  2. print(nombre.isdigit())

Saludos!


En línea

BigKaz

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: (Python) Filtro
« Respuesta #2 en: 20 Noviembre 2016, 03:36 am »

Y al reves? (Verificar si la variable edad es un numero, si es verdadero, seguir con el programa, de lo contrario, preguntar otra vez)
Código
  1. edad = (input("Cuantos años tienes?: "))
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: (Python) Filtro
« Respuesta #3 en: 20 Noviembre 2016, 03:40 am »

creo que hay error, si quieres verificar que solo sean letras para el nombre, deberías usar:
Código
  1. nombre.isalpha()
devolvera verdadero o falso
y en el caso de la edad

Código
  1. edad.isdigit()

igual que el anterior
En línea

BigKaz

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: (Python) Filtro
« Respuesta #4 en: 20 Noviembre 2016, 03:46 am »

Creo que es al reves, usar isdigit para verificar si el nombre es un numero, por ejemplo:
Código
  1. nombre = (input("Cual es tu nombre?: "))
  2. while (nombre.isdigit()):
  3. nombre = input("Ingresa tu nombre otra vez:  ")

y para que verificar que edad sean letras:

Código
  1. edad = (input("Cuantos años tienes?: "))
  2. while (edad.isalpha()):
  3. edad = input("Ingresa tu edad otra vez:  ")
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: (Python) Filtro
« Respuesta #5 en: 20 Noviembre 2016, 04:17 am »

con ese criterio lo podés usar como se te de las ganas porque también vale:
Código
  1. nombre = (input("Cual es tu nombre?: "))
  2. while not nombre.isalpha():
  3.    nombre = input("Ingresa tu nombre otra vez:  ")
  4.  

lo que importa es es que isdigit verifica que sean números e isalpha que sean letras.
En línea

Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: (Python) Filtro
« Respuesta #6 en: 20 Noviembre 2016, 05:03 am »

El método que debes usar depende de cómo quieres hacer el filtrado, isdigit() verifica que la cadena sea sólo un número. isalpha() verifica que la cadena sea sólo letras, así que si por ejemplo, el nombre contiene algún espacio, o el usuario lo escribe con un punto al final, isalpha() devuelve False pero eso no signica que el nombre no sea válido. Pero, de nuevo, depende de cómo necesites el filtrado.

Acá tienes la documentación, es buena idea hecharle un vistazo https://docs.python.org/3/library/stdtypes.html?highlight=isalpha#str.isalpha

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Filtro SQL Injection y Filtro XSS
PHP
0x0309 6 6,544 Último mensaje 16 Octubre 2009, 08:22 am
por 0x0309
[Python]Filtro de Email List
Scripting
word93 0 2,616 Último mensaje 11 Agosto 2010, 00:51 am
por word93
[Python] ¿Por qué Python 2.7.3 admite la sintaxis de Python 3? « 1 2 »
Scripting
Yidu 10 10,552 Último mensaje 10 Febrero 2013, 21:46 pm
por Eleкtro
[Python/Tkinter](Kyurem v2.0)Consola de comandos hecha en python (Continuación)
Scripting
Príncipe_Azul 5 4,921 Último mensaje 16 Abril 2014, 11:19 am
por AdeLax
[AYUDA][PYTHON] Leer y guardar archivos .exe de forma hexadecimal en python???
Scripting
Noxware 3 5,378 Último mensaje 22 Agosto 2014, 09:33 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines