.. index:: single: Inici(2). Jutge P25788 Jutge.org: `P25788 inici (2) `_ ------------------------------------------------------------------------- 1. Programa una funció *vowel_consonant(s)* que donat un string *s* retorni el nombre de vocals i consonants que apareixen com a caràcters en *s*. Se sap que tots els caràcters de *s* són lletres. .. code-block:: python >>> vowel_consonant('SpartacUs') (3, 6) | .. note:: En els problemes 2 i 3 les funcions **retornen** strings (no els escriuen amb *print()*). És per això que el string resultat del doctest es veu entre cometes ('). | 2. Programa una funció *delete_digits(s)* que retorni el string que s’obté esborrant els dígits de l’string *s*. .. code-block:: python >>> delete_digits('#Pelham 1-2-3#') '#Pelham --#' | 3. Programa una funció *switch(s)* que donat un string *s* retorni el string que s’obté canviant les lletres majúscules per les seves corresponents minúscules i viceversa. Nota: no utilitzis el mètode *swapcase* de la classe *str*. .. code-block:: python >>> switch('#Pelham 1-2-3#') '#pELHAM 1-2-3#' | .. warning:: En els problemes 4 i 5 les funcions **escriuen** (amb *print()*) una seqüència de valors, un a cada volta de la iteració, però en la mateixa línia. La forma estàndard de la instrucció *print* escriu al final un **caràcter de final de línia**. Això fa que el següent *print* escriugui en una nova línia. Per exemple, si s'escriuen els valors 1, 2 i 3 amb 3 *print*'s veurem que surten cadascú en una línia: .. code-block:: python 1 2 3 enlloc de veure'ls en la mateixa: .. code-block:: python 1 2 3 En el document :doc:`print` trobaràs més informació sobre com resoldre aquest tema. | 4. Programa una funció *countdown(n)* que donat un enter *n* més gran que zero escriu el compte enrere fins a 0. .. code-block:: python >>> countdown(7) 7 6 5 4 3 2 1 0 | 5. Programa una funció *powers_of_2(n)* que donat un natural *n* escriu les *n* primeres potències de 2. .. code-block:: python >>> powers_of_2(6) 1 2 4 8 16 32 | | | :author: Jorge Castro