Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Tuplado en 29 Mayo 2012, 23:51 PM

Título: Programación Python_Extraer solo números de una cadena de texto
Publicado por: Tuplado en 29 Mayo 2012, 23:51 PM
HOLA CHICOS/AS

Mi duda es como sacar de una cadena de texto en Python, sólo los números

Código (python) [Seleccionar]
cadena = str(input("introduce cadena:"))
cadena = 123desf345

solo quiero que me imprima 123345 ¿Cómo lo hago?, alguien me puede ayudar

Alguna función ya hecha de python que me haga esto

Gracias de antemano
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: Eleкtro en 30 Mayo 2012, 10:13 AM
Cita de: Tuplado en 29 Mayo 2012, 23:51 PM
solo quiero que me imprima 123345 ¿Cómo lo hago?, alguien me puede ayudar

Alguna función ya hecha de python que me haga esto

Código (python) [Seleccionar]
import re
cadena = "123abcdef456"
cadena = re.sub("\D", "", cadena)
print cadena


saludos
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: Tuplado en 30 Mayo 2012, 13:51 PM
Muchas gracias campeón
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: 0x5d en 31 Mayo 2012, 08:22 AM
Hola, buen día.
Yo sinceramente prefiero el método sin librerías:
Código (python) [Seleccionar]
print "".join([x for x in "123jajaja345" if x.isdigit()])
Salida: 123345

http://codepad.org/20R5e4HX ahí la salida online

Pd: raw_input es la función para pedir datos alfanuméricos.

Saludos, Javier
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: .:WindHack:. en 31 Mayo 2012, 21:01 PM
Hola,
Se me ocurre otra forma de hacerlo...

Código (python) [Seleccionar]
cString = '1Hola2Mundo3p4c5sd6jaja7...8:D9-0'
nString = ''
for i in cString:
    if (i >= chr(48)) and (i <= chr(57)):
       nString += i
print nString


Salida:
1234567890


Atte. Sebastián.,
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: adastra en 31 Mayo 2012, 21:03 PM
Cita de: EleKtro H@cker en 30 Mayo 2012, 10:13 AM
Código (python) [Seleccionar]
import re
cadena = "123abcdef456"
cadena = re.sub("\D", "", cadena)
print cadena


saludos
Esta es la mejor opción, por simplicidad y eficiencia.
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: [u]nsigned en 1 Junio 2012, 18:37 PM
Cita de: adastra en 31 Mayo 2012, 21:03 PM
Esta es la mejor opción, por simplicidad y eficiencia.

Recien empienzo con python, pero si se programar en otros lenguajes. Creo que es lo contrario, puede que el codigo sea mas corto. Pero el programa sera menos eficiente...debido a que estamos usando mas memoria y recursos del sistema al importar un modulo (importas todo el modulo re solo para usar una funcion). Por lo que es mas eficiente (en terminos de recursos del sistema) usar los build-in's

Saludos!!
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: adastra en 1 Junio 2012, 19:59 PM
Cita de: El As del Club Paris en  1 Junio 2012, 18:37 PM
Recien empienzo con python, pero si se programar en otros lenguajes. Creo que es lo contrario, puede que el codigo sea mas corto. Pero el programa sera menos eficiente...debido a que estamos usando mas memoria y recursos del sistema al importar un modulo (importas todo el modulo re solo para usar una funcion). Por lo que es mas eficiente (en terminos de recursos del sistema) usar los build-in's

Saludos!!
Si es cierto... omite lo de eficiencia,  :xD :xD sin embargo es la forma más sencilla y limpia de hacerlo.
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: criskapunk en 2 Junio 2012, 05:10 AM
Buenas,

Se podría únicamente importar la función que se va a utilizar del módulo:

Código (python) [Seleccionar]
from re import sub
cadena = "123abcdef456"
cadena = sub("\D", "", cadena)
print cadena


Un saludo.
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: Eleкtro en 2 Junio 2012, 05:25 AM
Cita de: criskapunk en  2 Junio 2012, 05:10 AM
Buenas,

Se podría únicamente importar la función que se va a utilizar del módulo:

Código (python) [Seleccionar]
from re import sub
cadena = "123abcdef456"
cadena = sub("\D", "", cadena)
print cadena


Un saludo.

+1 ;D

Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: Tuplado en 2 Junio 2012, 20:19 PM
Muy buena esa manera también WindHack:

Lo único que lo estoy haciendo todo con variables globales, para coger práctica, soy nuevo en esto y quiero ir adquiriendo base poco a poco pero sin pausa, pero te repito muchas gracias y buena idea también hacerlo con sentencias de condiciones.

Un saludo
Título: Re: Programación Python_Extraer solo números de una cadena de texto
Publicado por: .:WindHack:. en 4 Junio 2012, 02:51 AM
Me alegro que te haya servido la función que puse, Tuplado.

Un placer, y sigue practicando, campeón.


Saludos.,



Atte. Sebastián.,