terça-feira, 18 de março de 2014

Check iO: um jogo educativo para aprender/practicar Python

Olá!

Não tenho tido tempo para escrever no blog. No entanto, gostava de divulgar um site que me parece muito interessante: http://www.checkio.org


Este site funciona como um jogo de plataformas. Começamos na plataforma Home e para acedermos a outras plataformas temos de resolver exercícios de programação. Cada exercício tem um número de pontos associado e tem de ser resolvido recorrendo a Python 2.7 ou 3.3.

A parte mais interessante do site é que nos permite ler o código de outras pessoas após resolvermos os desafios. Assim, dá para aprender bastante para quem não for muito fluente em Python como eu.

A título de exemplo, um dos exercícios iniciais é escrever uma função que devolve a transposta de uma dada matriz. O meu código para resolver o exercício foi o seguinte:

1
2
3
4
5
6
7
def checkio(data):
    L, C = len(data), len(data[0])
    transp = [[0] * L for i in xrange(C)]
    for i in xrange(L):
        for j in xrange(C):
            transp[j][i] = data[i][j]
    return transp

Contudo, bastava usar a função standard zip et voilà:

1
2
def checkio(data):
    return zip(*data)

Sem comentários:

Enviar um comentário