Foro de elhacker.net

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
  1. cadena = str(input("introduce cadena:"))
  2. 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
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
  1. import re
  2. cadena = "123abcdef456"
  3. cadena = re.sub("\D", "", cadena)
  4. 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
  1. 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
  1. cString = '1Hola2Mundo3p4c5sd6jaja7...8:D9-0'
  2. nString = ''
  3. for i in cString:
  4.    if (i >= chr(48)) and (i <= chr(57)):
  5.       nString += i
  6. print nString

Salida:
Código:
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
Código
  1. import re
  2. cadena = "123abcdef456"
  3. cadena = re.sub("\D", "", cadena)
  4. 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
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
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
  1. from re import sub
  2. cadena = "123abcdef456"
  3. cadena = sub("\D", "", cadena)
  4. 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
Buenas,

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

Código
  1. from re import sub
  2. cadena = "123abcdef456"
  3. cadena = sub("\D", "", cadena)
  4. 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.,