Python - Soy principiante y necesito ayuda con este ejercic

 
Vista:

Soy principiante y necesito ayuda con este ejercic

Publicado por Jose (3 intervenciones) el 22/06/2007 23:56:11
Hola a todos , necesito ayuda para resolver este problema , tengo que hacer un
programa , donde uno introduzca una cadena , y el prgrama me diga cuantos números
hay en la misma ..

Por ejemplo la cadena: "tengo un 1, un 27 , y un 789"
me tendría que dar como resultado , que en la misma hay 3 números ,
un 1 , un 27 y un 789

Solo pude hacer la primera parte del programa:

cadena=raw_input("Dame la cadena")
contador_numeros=0

for caracter in range (len(cadena)):
for numeros in "0123456789":
if cadena[i] == numeros:
contador_numeros+=1

lo que no se es como hacer que mi programa , cuando encuentre un
número , lo recorra hasta que llegue a un caracter que no sea un
número...

Bueno eso es todo
Desde ya muchas gracias

Jose
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Soy principiante y necesito ayuda con este ejer

Publicado por Cyrus (54 intervenciones) el 24/06/2007 14:12:03
Buenas, vas bien encaminado, a ver como lo haría yo...

Lo primero no usaría el segundo for numero in ........, yo pondría la función isdigit(), asi me queda en total:

cadena="tengo un 1, un 27 , y un 789"
ListaDeNumeros=[]
esNumero=False
for caracter in range (len(cadena)):
____if cadena[caracter].isdigit():
________if cadena[caracter-1].isdigit()==False:
____________posicionInicial=caracter
____________esNumero=True
________if caracter==len(cadena)-1:
____________posicionFinal=caracter
____________numero=cadena[posicionInicial:posicionFinal+1]
____________ListaDeNumeros.append(numero)
____else:
________if esNumero:
____________posicionFinal=caracter
____________esNumero=False
____________numero=cadena[posicionInicial:posicionFinal]
____________ListaDeNumeros.append(numero)
print "En la cadena actual hay " + str(len(ListaDeNumeros)) + " numeros: "
print ListaDeNumeros

Lo que hace es guardar los números en un lista, usando el método append, y ¿como hace esto?, pues va mirando numero por numero, si es un numero y el anterior no lo es, apunta su posición en la cadena, y si no es un numero, pero lo que había antes si lo era, pues guarda el numero en la lista de números. En caso de que el último carácter de la cadena sea un numero, lo añadimos también.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias !!!!

Publicado por Jose (3 intervenciones) el 25/06/2007 01:35:10
Hola cyrus ...... un millon de gracias por la respuesta , ahora mismo me voy a poner a probar lo que escribiste ....sos un genio !!:....gracias x ayudar a este pobre principiante...jejej....
La verdad que no conocía la función isdigit().....
lo único que no me quedo muy claro es , si el código que escribiste sirve para cualquier ejemplo , o sea , si es general , o si solo sirve para la cadena : "tengo un 1, un 27 , y un 789"...bueno de todas maneras ya lo voy a probar ....
le voy a agregar el raw_input , para que se pueda introducir cualquier cadena...

Bueno UN MILLÓN DE GRACIAS master !!!.....
salu2 !!!!

Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar