Sé un Pythonista: Recibe trucos Python y accede a nuestro espacio de Slack

Solución al Ejercicio #4

Share on facebook
Share on twitter
Share on linkedin

Esta es la solución al Ejercicio #4: Ejecutar trabajo en lote y mostrar los resultados por pantalla.

Comprobar en qué posición rankea cada palabra clave

En esta primera parte del ejercicio se pedía actualizar el código de la opción 3 del menú. Básicamente, hay que llamar a la función comprueba_keywords() para cada palabra clave. Además, hay que actualizar la posición de cada una de ellas en la base de datos.

La solución es sencilla. Te muestro el código completo de mi función run(), que es dónde tengo la lógica de la aplicación y del menú:

def run():

    keywords = Keyword.get_all()
    dominio = 'j2logo.com'

    while True:
        muestra_menu()
        opcion = input('Selecciona una opción > ')
        opcion = int(opcion)
        if opcion == 0:
            break
        elif opcion == 1:
            keywords = carga_keywords()
        elif opcion == 2:
            muestra_keywords(keywords)
        elif opcion == 3:
            for kw in keywords:
                posicion = comprueba_keywords(kw.keywords, dominio)
                kw.posicion = posicion if posicion < 100 else None
                kw.save()
        else:
            print('Opción no válida')

Actualizar la función que muestra las keywords

La segunda parte del ejercicio consiste en actualizar la función que muestra las keywords para que se pueda visualizar la posición en que rankea cada una de las palabras clave:

def muestra_keywords(keywords):
    contador = 0
    for kw in keywords:
        print(f'KW: {kw.keywords} > {kw.posicion}')
        contador += 1
        if contador == 20:
            contador = 0
            input('Mostrar más...')

Como puedes ver la solución es muy sencilla. Solo hay que mostrar el atributo posicion de cada una de las instancias.

Extra

La última parte del ejercicio indicaba implementar una función llamada keywords_como_lista_de_valores(). Esta función hay que implementarla utilizando comprensión de listas y devuelve una lista de tuplas compuestas por cada palabra clave y su posición:

def keywords_como_lista_de_valores(keywords):
    return [(kw.keywords, kw.posicion) for kw in keywords]

Si te ha resultado útil, compártelo con tus amigos 🤗

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Sé un Pythonista: Recibe trucos Python y accede a nuestro espacio de Slack

También te puede interesar

* Te informo de que los datos de carácter personal que proporciones al comentar serán tratados por Juan José Lozano Gómez como responsable de esta web. La Finalidad es moderar los comentarios. La Legitimación es gracias a tu consentimiento. Destinatarios: tus datos se encuentran alojados en Disqus (disqus.com), mi sistema de comentarios, que está acogido al acuerdo de seguridad EU-US Privacy. Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a juanjo@j2logo.com. Encontrarás más información en la POLÍTICA DE PRIVACIDAD.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Sobre j2logo

Quiero ayudarte a que seas mejor programador/a, pero no uno cualquiera, sino uno de los top.

Últimos posts

¿Quieres ser un auténtico Pythonista? 🐍

📩 Recibe de vez en cuando trucos, scripts y tutoriales Python en español para dominar el lenguaje. No es SPAM. Date de baja cuando quieras

🥇 Accede a nuestra comunidad privada de Slack: Pythonistas-es

* Al enviar el formulario confirmas que aceptas la POLITICA DE PRIVACIDAD

Pythonistas-es

SÉ UN AUTÉNTICO PYTHONISTA

📩 Recibe trucos, scripts y tutoriales Python

🥇 Accede a nuestra comunidad privada de Slack