Foros del Web » Programando para Internet » Python »

Duda python

Estas en el tema de Duda python en el foro de Python en Foros del Web. Hola, necesito su ayuda, como recien comienzo con el lenguaje de Python, se me complica un poco, y necesito saber como hacer un programa que ...
  #1 (permalink)  
Antiguo 04/05/2010, 12:38
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Duda python

Hola, necesito su ayuda, como recien comienzo con el lenguaje de Python, se me complica un poco, y necesito saber como hacer un programa que muestre la cantidad de numeros que aparecen en una cadena, es decir los numeros solamente de una cadena, por ejemplo en una cadena "ayer te vi 2 veces y 4 veces salude" tiene 2 numeros:
el 2 y el 4, y necesito que python me diga cuantos numeros tiene.

Trate de hacerlo de la siguiente forma pero no me da, pues cometo un error en la linea 8 que no puedo solucionar, pues no se por donde encarar ese problema.
Código:
cadena= 'un 1, un 201 y 2 unos'
x=range(0,9)

while cadena!= '':
  numeros = 0
  anterior = '' 
  for caracter in cadena:
    if caracter == x:
      numeros += 1
      anterior = caracter

  print 'Números: ', numeros
  #2 (permalink)  
Antiguo 04/05/2010, 18:16
AxL456
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda python

En el codigo que has colocado tienes varios errores, los cuales son:
  • el "while" se prolonga infinitamente, no le has indicado cuando salir de dicho bucle
  • la lista de numeros que le asignas a la variable x solo va del 0 al 8, para que vaya del 0 al 9 tienes que indicarlo asi
    Código Python:
    Ver original
    1. x = range(0,10)
  • La condicion "if caracter == x" nunca se va a cumplir porque x es una tupla de valores, y caracter siempre sera una cadena, debes iterar a traves de cada uno de los valores de x y comparar cada uno de ellos con los caracteres..
hay mas detallitos que hacen que tu codigo no corra..

Modifique tu codigo, siguiendo el mismo formato que tenias, aqui te lo dejo..

Código Python:
Ver original
  1. cadena = 'un 1, un 201 y 2 unos'
  2. x = range(0,10)
  3.  
  4. while cadena != '':
  5.   numeros = 0
  6.   anterior = []
  7.   for caracter in cadena:
  8.       for num in x:
  9.           if caracter == str(num):
  10.               numeros += 1
  11.               anterior.append(caracter)
  12.   break
  13.  
  14. print "en la cadena existen %s numeros" % numeros
  15. print anterior

PD: se me olvidaba, el while es innecesario, el codigo corre sin ese bucle..

Código Python:
Ver original
  1. cadena = 'un 1, un 201 y 2 unos'
  2. x = range(0,10)
  3.  
  4. numeros = 0
  5. anterior = []
  6. for caracter in cadena:
  7.   for num in x:
  8.       if caracter == str(num):
  9.           numeros += 1
  10.           anterior.append(caracter)
  11.  
  12. print "en la cadena existen %s numeros" % numeros
  13. print anterior

Última edición por AxL456; 04/05/2010 a las 22:06
  #3 (permalink)  
Antiguo 04/05/2010, 22:00
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Duda python

Un ejemplo rápido usando expresiones regulares.
Código Python:
Ver original
  1. >>> import re
  2. >>> pattern = re.compile("\d+")
  3. >>> pattern.findall("ayer te vi 2 veces y 4 veces salude")
  4. ['2', '4']
  5. >>>

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.