Codificació (5 punts) ===================== .. module:: codificacio .. warning:: Per resoldre aquest exercici **no es poden fer servir llistes**, tuples, diccionaris ni cap altra estructura de dades **per desar tots els elements d'un iterador**. Tenim una sèrie `P` de parells (string, llista), on cada llista pot contenir elements de qualsevol tipus bàsic. Es vol aplicar una codificació de cada parell `(s,l)` de `P`, aplicant una regla senzilla: * per cada enter positiu `n` de `l`, caldrà generar un string que sigui el resultat de repetir `n` vegades l'string `s`. * per la resta d'elements de `l` que no siguin enters positius, s'ha de generar un string amb tants asteriscs com la longitud de `s`. Per exemple, si un parell d'entrada és: .. raw:: html ('manel', [3,'hi',-2, 2,1]) la tupla codificada per aquest parell produirà els següents elements: .. raw:: html 'manelmanelmanel'
'*****'
'*****'
'manelmanel'
'manel'
Dissenya la funció següent i desa-la al mòdul :mod:`codificacio` (fitxer :file:`codificacio.py`): .. function:: codifica_tuples_paraules(it) :param it: iterador sobre una sèrie `P` de parells (:py:class:`string`, :py:class:`list`) :return: iterador sobre la codificació de tots els elements d'`it` Es recomana utiltzar la funció :py:func:`isinstance()` per comprovar el tipus d'un objecte. Per exemple, .. literalinclude:: tests-codifica.txt :language: pycon :start-after: --ini-enunciat :end-before: --fi-enunciat Disposes d'un joc de proves més complet al fitxer :download:`tests-codifica.txt`.