Skip to content

Latest commit

 

History

History
228 lines (150 loc) · 8.14 KB

Quiz10.rst

File metadata and controls

228 lines (150 loc) · 8.14 KB

Quiz - 10

.. tabbed:: quiz10

    .. tab:: Ejercicio 1

        .. activecode:: q10_1
            :nocodelens:

            Desarrolle la función ``cuantas_donas`` que toma a ``n``, un número entero
            positivo, como parámetro, y devuelve una cadena de forma ``"Número de donas: n"``,
            donde ``n`` es el valor que se le pasó a la función como argumento. No obstante,
            si ``n`` >= 10, ``cuantas_donas`` devolverá ``"muchas"`` en vez de ``n``. |br| |br|
            Ejemplos: |br|
            ``cuantas_donas(5)`` -> ``"Número de donas: 5"`` |br|
            ``cuantas_donas(23)`` -> ``"Número de donas: muchas"`` |br|

            ~~~~
            def cuantas_donas(n):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(cuantas_donas(4), "Número de donas: 4", "Esperado: Número de donas: 4")
                    self.assertEqual(cuantas_donas(9), "Número de donas: 9", "Esperado: Número de donas: 9")
                    self.assertEqual(
                        cuantas_donas(10),
                        "Número de donas: muchas",
                        "Esperado: Número de donas: muchas",
                    )
                    self.assertEqual(
                        cuantas_donas(99),
                        "Número de donas: muchas",
                        "Esperado: Número de donas: muchas",
                    )


            myTests().main()


    .. tab:: Ejercicio 2

        .. activecode:: q10_2
            :nocodelens:

            Desarrolla la función ``cadena_de_extremos`` que, dada una cadena ``s``,
            devuelva una cadena con las dos primeras y las dos últimas letras de ``s``.
            Sin embargo, si la cadena tiene menos de 2 letras, devuelve una cadena vacía. |br| |br|
            Ejemplos: |br|
            ``cadena_de_extremos("palmeras")`` -> ``"paas"`` |br|
            ``cadena_de_extremos("a")`` -> ``""`` |br|

            ~~~~
            def cadena_de_extremos(s):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(cadena_de_extremos("palmeras"), "paas", "Esperado: paas")
                    self.assertEqual(cadena_de_extremos("algoritmos"), "alos", "Esperado: alos")
                    self.assertEqual(cadena_de_extremos("co"), "coco", "Esperado: coco")
                    self.assertEqual(cadena_de_extremos("a"), "", "Esperado: ''")
                    self.assertEqual(cadena_de_extremos("xyz"), "xyyz", "Esperado: xyyz")
                    self.assertEqual(cadena_de_extremos(""), "", "Esperado: ''")


            myTests().main()


    .. tab:: Ejercicio 3

        .. activecode:: q10_3
            :nocodelens:

            Desarrolle la función ``remplazar_primer_caracter`` que, dada una cadena ``s``,
            devuelva una cadena en la que todas las apariciones del primer carácter en ``s``
            se reemplacen por "*", a excepción del primero. **Nota:**
            use el método ``.replace(valor_a_replazar, nuevo_valor)`` para resolver el
            ejercicio. |br| |br|
            Ejemplos: |br|
            ``remplazar_primer_caracter("google")`` -> ``"goo*le"`` |br|
            ``remplazar_primer_caracter("dona")`` -> ``"dona"`` |br|

            ~~~~
            def remplazar_primer_caracter(s):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(remplazar_primer_caracter("babble"), "ba**le", "Esperado: ba**le")
                    self.assertEqual(remplazar_primer_caracter("aardvark"), "a*rdv*rk", "Esperado: a*rdv*rk")
                    self.assertEqual(remplazar_primer_caracter("google"), "goo*le", "Esperado: goo*le")
                    self.assertEqual(remplazar_primer_caracter("dona"), "dona", "Esperado: dona")


            myTests().main()


    .. tab:: Ejercicio 4

        .. activecode:: q10_4
            :nocodelens:

            Desarrolle la función ``combinar_dos_cadenas`` que tome dos cadenas como
            argumentos, ``a`` y ``b``, y devuelva una nueva cadena de la siguiente forma:

            - La nueva cadena tiene que ser una combinación de ``a`` y ``b``.
            - La nueva cadena tendrá la forma ``"<a> <b>"``, note el espacio entre ambas.
            - La nueva cadena intercambiará las primeras dos letras de ``a`` y ``b``.

            Suponga que ``a`` y ``b`` tienen más de 2 caracteres.
            Para mayor claridad, observe los siguientes ejemplos. |br| |br|
            Ejemplos: |br|
            ``combinar_dos_cadenas("mix", "pod")`` -> ``"pox mid"`` |br|
            ``combinar_dos_cadenas("pezzy", "firm")`` -> ``"fizzy perm"`` |br|

            ~~~~
            def combinar_dos_cadenas(a, b):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(combinar_dos_cadenas("mix", "pod"), "pox mid", "Esperado: pox mid")
                    self.assertEqual(combinar_dos_cadenas("dog", "dinner"), "dig donner", "Esperado: dig donner")
                    self.assertEqual(
                        combinar_dos_cadenas("gnash", "sport"),
                        "spash gnort",
                        "Esperado: spash gnort",
                    )
                    self.assertEqual(combinar_dos_cadenas("pezzy", "firm"), "fizzy perm", "Esperado: fizzy perm")


            myTests().main()


    .. tab:: Ejercicio 5


        .. activecode:: q10_5
            :nocodelens:

            Desarrolle la función ``es_palindromo`` que toma una cadena ``s`` como
            parámetro y verifica si ``s`` es palíndromo o no, devolviendo ``True`` o
            ``False`` respectivamente. |br| |br|
            Ejemplos: |br|
            ``es_palindromo("asa")`` -> ``True`` |br|
            ``es_palindromo("casa")`` -> ``False``  |br|

            ~~~~
            def es_palindromo(s):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(es_palindromo("asa"), True, "Esperado: True")
                    self.assertEqual(es_palindromo("casa"), False, "Esperado: False")
                    self.assertEqual(es_palindromo("reconocer"), True, "Esperado: True")
                    self.assertEqual(es_palindromo("palabra"), False, "Esperado: False")
                    self.assertEqual(es_palindromo("radar"), True, "Esperado: True")
                    self.assertEqual(es_palindromo("seres"), True, "Esperado: True")


            myTests().main()


    .. tab:: Ejercicio 6

        .. activecode:: q10_6
            :nocodelens:

            Desarrolle la función ``contar_ocurrencias`` que toma dos parámetros:
            ``frase`` y ``palabra``, ambos de tipo cadena. La función debe devolver
            el número de veces que ``palabra`` se encuentra en ``frase``. |br| |br|
            Ejemplos: |br|
            ``contar_ocurrencias("a ana y a mariana les gustan las manzanas", "ana")`` -> ``3`` |br|

            ~~~~
            def contar_ocurrencias(frase, palabra):


            ====
            from unittest.gui import TestCaseGui


            class myTests(TestCaseGui):
                def testOne(self):

                    self.assertEqual(
                        contar_ocurrencias("a ana y a mariana les gustan las manzanas", "ana"),
                        3,
                        "Esperado: 3",
                    )
                    self.assertEqual(contar_ocurrencias("Cats, rats, bats, and hats.", "ats"), 4, "Esperado: 4")


            myTests().main()