Anuncio

Colapsar
No hay ningún anuncio todavía.

Contador de 'Bob'

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Python Contador de 'Bob'

    Buenas,
    estoy iniciándome un poco en Python y tengo una duda.
    El problema pide que dado un string s, determinar el numero de veces que sale la palabra 'bob' e imprimir el resultado

    Por ejemplo:
    numbob=0
    s='azcbobobegghakl'
    def isBob(str1):
    return str1=='bob'


    for str1 in s:
    if isBob(str1):
    numbob+=1
    print(str(numbob))


    Así me da que numbob=0, lo cual es claro, pero os explico un poco qué es lo que intento. Quiero subdividir s tomando la lista de tres en tres valores de manera que cada tupla la pueda comparar con el valor bob ( de ahí la función isBob), pero realmente no sé cómo hacerlo. Llevo muy pocas clases y mis recursos son limitados.

    ¿Qué puedo usar para solucionar ésto que estoy intentando?
    Physics works, I'm telling you- Dr. Walter Lewin

  • #2
    Re: Contador de 'Bob'

    Ya existe un metodo para hacer eso:
    Código:
    if str.find("Bob")>=0:
        print("He econtrado a Bob")
    else
        print("Bob no esta")
    Si quieres hacerlo a mano (no seria muy aconsejable ya que es mucho mas lento), una forma sería:
    Código:
    def FindStr(str,substr):    
        i = 0
        while i <= len(str)-len(substr):
            if str[i:i+len(substr)]==substr:
                return i
            i+= 1
        return -1
    
    print( FindStr("Esta bob aqui","bob") )
    Última edición por abuelillo; 03/03/2014, 17:22:20.
     \left\vert{     \Psi_{UNIVERSE}       }\right>  = \sum \alpha_i   \left\vert{     \Psi_{WORLD_i}       }\right> \text{   } \hspace{3 mm}  \sum  \left\vert{} \alpha_i   \right\vert{}^2 = 1

    Comentario


    • #3
      Re: Contador de 'Bob'

      Hola Sheldoniano,

      ¿conoces la función slide? Podrías tirar por aquí quizá . Por ejemplo, en tu lista s, si pones s[1:3], debería devolverte 'zcb'. Sino, también se me ocurre abordarlo por un bucle while.

      Saludos y dime si sabes de lo que hablo.

      PD: Abuelillo se me adelantó y efectivamente utiliza las dos cosas que había planteado.
      Última edición por Turing; 03/03/2014, 17:23:16.
      "Una persona inteligente e irreflexiva es una de las cosas más aterradoras que existen."

      Comentario


      • #4
        Re: Contador de 'Bob'

        abuelillo con la primera solución que das obtengo como si fuera un True, pero no cuántos 'bob' tengo.

        Gracias de todos modos porque me ha servido
        Última edición por Sheldoniano; 04/03/2014, 00:15:41.
        Physics works, I'm telling you- Dr. Walter Lewin

        Comentario


        • #5
          Re: Contador de 'Bob'

          Deberias tener a mano la documentacion de python, en la que salen la lista de funciones y methodos disponibles, las cadenas tienen docenas de metodos para buscar en ellas y manipularlas, sin esa documentacion te acabaras complicando la vida, intentando hacer cosas que ya hace python de forma automatica llamando a la funcion correspondiente.
          Si quieres contar el numero de elementos tienes:

          Str.count("Bob")
          Última edición por abuelillo; 04/03/2014, 02:27:56.
           \left\vert{     \Psi_{UNIVERSE}       }\right>  = \sum \alpha_i   \left\vert{     \Psi_{WORLD_i}       }\right> \text{   } \hspace{3 mm}  \sum  \left\vert{} \alpha_i   \right\vert{}^2 = 1

          Comentario

          Contenido relacionado

          Colapsar

          Trabajando...
          X