Ejercicios del Capítulo 09

Volver al índice.

Escribe una predicción de lo que expulsará el siguiente código. Luego, ejecuta el código y observa cuán acertada fue tu predicción. Si tu predicción fue incorrecta, intenta entender el por qué.

Si no entiendes el por qué el código funciona de esa manera, mira el vídeo que se halla al final del ejercicio. Si te encuentras en la versión texto del ejercicio, pásate a la versión HTML on-line para que puedas verlo.

Ésta sección está puntuada con 10 puntos, medio punto por problema.

  1. Bloque 1
    for i in range(5):
        print(i + 1)
    
  2. Bloque 2
    for i in range(5):
        print(i)
        i = i + 1
    
  3. Bloque 3
    x = 0
    for i in range(5):
        x += 1
    print(x)
    
  4. Bloque 4
    x = 0
    for i in range(5):
        for j in range(5):
            x += 1
    print(x)    
    
  5. Bloque 5
    for i in range(5):
        for j in range(5):
            print (i, j)
    
  6. Bloque 6
    for i in range(5):
        for j in range(5):
            print ("*", end="")
            print ()
    
  7. Bloque 7
    for i in range(5):
        for j in range(5):
            print ("*", end="")
        print ()
    
  8. Bloque 8
    for i in range(5):
        for j in range(5):
            print ("*", end="")
    print ()
    
  9. Bloque 9
    # Se supone que este código suma los números de la lista
    # ¿Cuál es el error aquí?
    array = [5, 8, 10, 4, 5]
    i=0
    for i in array:
        i = i + array[i]
    print(i)
    
  10. Bloque 10
    for i in range(5):
        x = 0
        for j in range(5):
            x += 1
    print(x)
    
  11. Bloque 11
    import random
    juega_otravez = "s"
    while juega_otravez == "s":
        for i in range(5):
            print (random.randrange(2), end="")
        print()
        juega_otravez = input("¿Quieres jugar otra vez? ")
    print ("Chao!")
    
  12. Bloque 12
    def f1(x):
        print(x)
    y = 3
    f1(y)
    
  13. Bloque 13
    def f2(x):
        x = x + 1
        print(x)
    y = 3
    f2(y)
    print(y)
    
  14. Bloque 14
    def f3(x):
        x = x + 1
        print(x)
    x = 3
    f3(x)
    print(x)
    
  15. Bloque 15
    def f4(x):
        z = x + 1
        print(z)
    x = 3
    f4(x)
    print(z)
    
  16. Bloque 16
    def foo(x):
        x = x + 1
        print ("x=", x)
    
    x = 10
    print ("x = ", x)
    foo(x)
    print ("x = ", x)
    
  17. Bloque 17
    def f():
        print("f comienza")
        g()
        h()
        print("f finaliza")
    
    def g():
        print("g comienza")
        h()
        print("g finaliza")
        
    def h():
        print("h")
        
    f()
    
  18. Bloque 18
    def foo():
        x = 3
        print("Hemos llamado a foo")
        
    x = 10
    print ("x = ", x)
    foo()
    print ("x = ", x)
    
  19. Bloque 19 (Aquí se demuestra un concepto nuevo que no será explicado completamente hasta el Capítulo 12.)
    def a(x):
        print("a", x)
        x = x + 1
        print("a", x)
        
    x = 1
    print("principal", x)
    a(x)
    print("principal", x)
    
    def b(y):
        print("b", y[1])
        y[1] = y[1] + 1
        print("b", y[1])
        
    y = [123, 5]
    print("principal", y[1])
    b(y)
    print("principal",y[1])
    
    def c(y):
        print("c",y[1])
        y = [101,102]
        print("c",y[1])
        
    y = [123,5]
    print("principal",y[1])
    c(y)
    print("principal",y[1])
    
Vídeo: Explicación de los bloques de código

Corrección del Código

En esta sección se trata de encontrar los errores en el código. Si no lo consigues, mírate el vídeo al final de las respuestas para que entiendas qué fue mal.

Ésta sección vale 7 puntos.

  1. Corrige el código siguiente: (No permitas que imprima la palabra ``None'')
    def suma(a, b, c):
        print(a + b + c)
    
    print(suma(10, 11, 12))
    
  2. Corrige el código siguiente: (x debería incrementarse en uno, pero no lo hace.)
    def incrementa(x):
        return x + 1
    
    x = 10
    print("X es ", x, " Ahora incrementaré x." )
    incrementa(x)
    print("X es ahora", x)
    
  3. Corrige el código siguiente:
    def print_hola:
        print("Hola")
    
    print_hola()
    
  4. Corrige el código siguiente:
    def cuenta_hasta_diez():
        for i in range[10]:
            print(i)
    
    cuenta_hasta_diez()
    
  5. Corrige el código siguiente:
    def suma_lista(lista):
        for i in lista:
            suma = i
            return suma
    
    lista = [45, 2, 10, -5, 100]
    print(suma_lista(lista))
    
  6. Corrige el código siguiente: (Aquí casi invertimos la cadena. ¿Qué ha fallado?)
    def revertir(texto):
        resultado = ""
        longitud_texto = len(texto)
        for i in range(longitud_texto):
            resultado = resultado + texto[i * -1]
        return resultado
    
    texto = "Programar es fantástico."
    print(revertir(texto))
    
  7. Corrige el código siguiente:
    def obten_opcion_usuario():
        while True:
            comando = input("Comando: ")
            if comando = f or comando = m or comando = e or comando = b or comando = s:
                return comando
            
            print("Hey, ese no es un comando. Éstas son tus opciones:" )
            print("f - Hacia adelante a toda velocidad")
            print("m - Velocidad moderada")
            print("e - Estado")
            print("b - Beber")
            print("s - Salir")
    
    comando_usuario = obten_opcion_usuario()
    print("Introdujiste:", comando_usuario)
    
Video: Explicación de cómo corregir el código

(13 pts) En esta sección escribe el código que satisfaga las siguientes premisas:

  1. Escribe una función que imprima ``Hola Mundo.''
  2. Escribe el código que llame a la función en el problema 1.
  3. Escribe una función que imprima ``Hola Bob.'', la cual tomará un parámetro que permita al llamador especificar el nombre. No uses una declaración input dentro de la función! Utiliza un parámetro.
  4. Escribe el código que llame a la función anterior.
  5. Escribe una función que tome dos números como parámetros (no como input del usuario) y que imprima el producto de ambos (es decir, que los multiplique.)
  6. Escribe el código que llame a la función anterior.
  7. Escribe una función que tome dos parámetros. El primer parámetro será una cadena de texto(string) llamado frase. El segundo parámetro será un número llamado cuenta. Imprime, por pantalla, frase cuenta veces. (por ejemplo, la función toma 'Hola' y 5, con lo que imprimirá 'Hola' cinco veces.)
  8. Escribe el código que llame a la función anterior.
  9. Escribe el código para una función que tome un número y devuelva su cuadrado. Atención, la función debe devolver la respuesta, no imprimirla.
  10. Escribe el código que llame a la función anterior.
  11. Escribe una función que tome tres números como parámetros y devuelva la fuerza centrífuga. La fórmula para la fuerza centrífuga es:
    F=m(v^2/r)
    F es fuerza, m es masa, r es radio, y v es la velocidad angular.
  12. Escribe el código que llame a la función anterior.
  13. Escribe una función que tome una lista de números como parámetro, e imprima cada número individualmente usando un bucle for.
Vídeo: Respuestas