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])
     
     

     

     

     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.
     
 20. 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))
     
 21. 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)
     
 22. Corrige el código siguiente:
     
     def print_hola:
         print("Hola")

     print_hola()
     
 23. Corrige el código siguiente:
     
     def cuenta_hasta_diez():
         for i in range[10]:
             print(i)

     cuenta_hasta_diez()
     
 24. 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))
     
 25. 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))
     
 26. 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)
     
     

     

     (13 pts) En esta sección escribe el código que satisfaga las siguientes premisas:
     
 27. Escribe una función que imprima ``Hola Mundo.''

 28. Escribe el código que llame a la función en el problema 1.

 29. 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.

 30. Escribe el código que llame a la función anterior.

 31. 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.)

 32. Escribe el código que llame a la función anterior.

 33. 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.)

 34. Escribe el código que llame a la función anterior.

 35. 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.

 36. Escribe el código que llame a la función anterior.

 37. 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.

 38. Escribe el código que llame a la función anterior.

 39. Escribe una función que tome una lista de números como parámetro, e imprima cada número individualmente usando un bucle for.