Problemas

Ejecutar este documento en forma dinámica: Binder

Para realizar algunos ejercicios realizaremos entradas desde el teclado, indicando al usuario lo que se pide ingresar. Para ello haremos uso de la instrucción input, a la que se le pasa una string como argumento y espera a que se ingrese una string desde el teclado (finalizando con la tecla Enter). Por ejemplo:

In [ ]:
nombre = input('¿Cuál es tu nombre? ')
print('¡Hola {:s}!'.format(nombre))

Problema 1

Reemplazar ___ en el código siguiente para evaluar la entrada desde el teclado.

In [ ]:
days = int(input("¿Cuántos días hay en un año bisiesto? "))
if ___ == 366:
    print("Aprobaste el examen.")
print("¡Felicitaciones!")

Problema 2

Reemplazar ___ en el código siguiente para evaluar la entrada desde el teclado.

In [ ]:
respuesta = input('¿Python es un lenguaje interpretado? Si o No >> ').lower()

if respuesta ___ 'si':
    print('Respuesta correcta.')
___ :
    print('Respuesta incorrecta.')
print('Gracias.') 

Problema 3

Reemplazar ___ en el código siguiente de modo que lo que imprime tenga sentido. En este ejemplo usaremos la instrucción assert para determinar si la respuesta es correcta o se produjo un error.

In [ ]:
nombre = 'Juan Pablo'

if ____:
    print('El nombre "{}" tiene más de 20 caracteres'.format(nombre))
    descripcion = 'largo'
elif ____:
    print('El nombre  "{}" tiene más de 15 caracteres'.format(nombre))
    descripcion = 'medio largo'
elif ____:
    print('El nombre  "{}" tiene más de 10 caracteres'.format(nombre))
    descripcion = 'medio largo'
elif ____:
    print('El nombre  "{}" tiene 8, 9 o 10 caracteres'.format(nombre))
    descripcion = 'medio corto'
else:
    print('El nombre  "{}" es un nombre corto'.format(nombre))
    descripcion = 'corto'

assert descripcion == 'medio corto'

Problema 4

Escribir un programa para convertir temperaturas de celsius a fahrenheit y viceversa. La conversión es:

$$ \frac{c}{5} = \frac{f - 32}{9} $$

donde $c$ es la temperatura en celsius y $f$ en fahrenheit. La salida esperada es:

60 C es 140 F
45 F es 7 C
In [ ]:
# Tu código:

Problema 5

Reemplazar ___ en el código siguiente para obtener una lista con las palabras en mayúsculas.

In [ ]:
palabras = ['PYHTON', 'JUAN', 'quESo', 'pAn', 'PABLO', '123']
palabras_mayusculas = []
for ___ in palabras:
    if ___.isupper():
        palabras_mayusculas.append(___)

assert palabras_mayusculas = ['PYHTON', 'JUAN', 'PABLO']

Problema 6

Calcular la suma de valores en mi_dict.

In [ ]:
mi_dict = dict(val1=44, val2=55, val3=1, val4=1)

# Tu código:
suma_valores = 

assert suma_valores == 101

Problema 7

Crear una lista de strings basada en una lista de números con la siguientes reglas:

  • Si el número es múltiplo de 5 e impar, la string debe ser 'cinco impar'
  • Si el número es un múltiplo de 5 y par, la string debe ser 'cinco par'
  • Si el número es impar, la string es 'impar'
  • Si el número es par, la string es 'par'
In [ ]:
numeros = [1, 3, 4, 6, 81, 80, 100, 95]

# Tu código:
mi_lista = 

assert mi_lista == ['impar', 'impar', 'par', 'par', 'impar', 'cinco par', 'cinco par', 'cinco impar']

Problema 8

Escribir un código que genere la salida siguiente, utilizando for anidados:

* 
* * 
* * * 
* * * * 
* * * * * 
* * * * 
* * * 
* * 
*
In [ ]:
# Tu código:

Problema 9

Escribir un código que imprima todos los números entre 0 y 10, excepto el 3 y el 7. Usar la instrucción continue.

In [ ]:
# Tu código:

Problema 10

Escribir un código que imprima la secuencia de Fibonacci entre 0 y 50, usando para ello la instrucción while.

Nota: La secuencia de Fibonacci son los números:

0, 1, 1, 2, 3, 4, 8, 13, ...

Tal que cada número es la suma de los dos anteriores. La salida esperada es:

0, 1, 1, 2, 3, 4, 8, 13, 21, 34
In [ ]:
# Tu código:

Problema 11

Reemplazar ___ en el código siguiente para generar una lista con la longitud de las palabras en frase. Utilizar comprensión de listas.

In [ ]:
frase = 'He pasado una tarde estupenda, pero no ha sido ésta'
palabras = frase.split()
longitudes = [___]
print(palabras)
print(longitudes)

assert longitudes == [2, 6, 3, 5, 10, 4, 2, 2, 4, 4]

Problema 12

Repetir el problema anterior pero incoporando la longitud solo si la palabra no es no.

In [ ]:
frase = 'He pasado una tarde estupenda, pero no ha sido ésta'
palabras = frase.split()
longitudes = [___]
print(palabras)
print(longitudes)

assert longitudes == [2, 6, 3, 5, 10, 4, 2, 4, 4]