Autor
|
Tema: (Python) Filtro (Leído 2,863 veces)
|
BigKaz
Desconectado
Mensajes: 94
|
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? nombre = (input("Cual es tu nombre?: "))
|
|
|
En línea
|
|
|
|
Once
|
Usa el método isdigit que tienen las cadenas de python: 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: numero = numero.replace(".", "") print(nombre.isdigit())
Saludos!
|
|
|
En línea
|
|
|
|
BigKaz
Desconectado
Mensajes: 94
|
Y al reves? (Verificar si la variable edad es un numero, si es verdadero, seguir con el programa, de lo contrario, preguntar otra vez) edad = (input("Cuantos años tienes?: "))
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
creo que hay error, si quieres verificar que solo sean letras para el nombre, deberías usar: nombre.isalpha()
devolvera verdadero o falso y en el caso de la edad edad.isdigit()
igual que el anterior
|
|
|
En línea
|
|
|
|
BigKaz
Desconectado
Mensajes: 94
|
Creo que es al reves, usar isdigit para verificar si el nombre es un numero, por ejemplo: nombre = (input("Cual es tu nombre?: ")) while (nombre.isdigit()): nombre = input("Ingresa tu nombre otra vez: ")
y para que verificar que edad sean letras: edad = (input("Cuantos años tienes?: ")) while (edad.isalpha()): edad = input("Ingresa tu edad otra vez: ")
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
con ese criterio lo podés usar como se te de las ganas porque también vale: nombre = (input("Cual es tu nombre?: ")) while not nombre.isalpha(): nombre = input("Ingresa tu nombre otra vez: ")
lo que importa es es que isdigit verifica que sean números e isalpha que sean letras.
|
|
|
En línea
|
|
|
|
Once
|
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.isalphaSaludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Filtro SQL Injection y Filtro XSS
PHP
|
0x0309
|
6
|
6,565
|
16 Octubre 2009, 08:22 am
por 0x0309
|
|
|
[Python]Filtro de Email List
Scripting
|
word93
|
0
|
2,628
|
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,619
|
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,951
|
16 Abril 2014, 11:19 am
por AdeLax
|
|
|
[AYUDA][PYTHON] Leer y guardar archivos .exe de forma hexadecimal en python???
Scripting
|
Noxware
|
3
|
5,406
|
22 Agosto 2014, 09:33 am
por Eleкtro
|
|