0% encontró este documento útil (0 votos)
332 vistas11 páginas

Recuperación - Examen - Programación - PYTHON

El documento es un examen de programación en Python que consta de tres partes: preguntas de respuesta múltiple, preguntas abiertas y ejercicios prácticos. La primera parte evalúa conocimientos sobre conceptos básicos de Python, la segunda parte requiere explicaciones sobre diferencias y funciones en Python, y la tercera parte incluye ejercicios de implementación de funciones y clases. El examen tiene una duración de 2 horas y un puntaje total de 10 puntos.

Cargado por

Álvaro Ramos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
332 vistas11 páginas

Recuperación - Examen - Programación - PYTHON

El documento es un examen de programación en Python que consta de tres partes: preguntas de respuesta múltiple, preguntas abiertas y ejercicios prácticos. La primera parte evalúa conocimientos sobre conceptos básicos de Python, la segunda parte requiere explicaciones sobre diferencias y funciones en Python, y la tercera parte incluye ejercicios de implementación de funciones y clases. El examen tiene una duración de 2 horas y un puntaje total de 10 puntos.

Cargado por

Álvaro Ramos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Examen: Programación en Python - Recuperación

Duración: 2 horas​
Puntaje Total: 10 puntos​
Instrucciones: Responde las siguientes preguntas buscando en documentación oficial,
foros o apuntes si es necesario. Explica brevemente el razonamiento detrás de tus
respuestas si se solicita.

Primera Parte: Test de Respuesta Múltiple (3 puntos, 0.3 cada una)

1.​ ¿Qué imprime este código?

frutas = ["manzana", "pera", "plátano"]


frutas[1] = "naranja"
print(frutas)

a) ["manzana", "naranja", "plátano"]​


b) ["naranja", "pera", "plátano"]​
c) ["manzana", "pera", "naranja"]​
d) ["manzana", "pera", "plátano""naranja"]

2.​ ¿Qué hace el siguiente código?

resultado = [x**2 for x in range(5) if x % 2 == 0]


print(resultado)

a) Genera una lista con los números pares entre 0 y 5.​


b) Genera una lista con los cuadrados de los números pares entre 0 y 5.​
c) Genera una lista con los números impares entre 0 y 5.​
d) Genera una lista vacía.

3.​ ¿Qué sucede si ejecutas este código?

x = 10
y = 0
print(x / y)

a) Devuelve un error porque no se puede dividir entre cero.​


b) Imprime 0.​
c) Imprime infinito.​
d) El código no imprime nada porque está mal definido.
4.​ ¿Qué operador se utiliza para comprobar si un elemento pertenece a una lista en
Python?​
a) []​
b) contains​
c) ==​
d) in

5.​ Si ejecutas el siguiente código:

cadena = "Hola Mundo"


print(cadena[2:7])

¿Qué se imprimirá?​
a) "la Mun"​
b) "ola Mun"​
c) "la Mund"​
d) "ola Mu"

6.​ ¿Qué sucede si intentas acceder a un índice que no existe en una lista?​
a) Devuelve un error de tipo.​
b) Devuelve un error de índice.​
c) Devuelve None.​
d) No sucede nada.

7.​ ¿Qué se imprime al ejecutar este código?

x = 3
y = 7
print(f"{x} + {y} = {x + y}")

a) "3 + 7 = 10"​
b) "x + y = x + y"​
c) "3 + 7 = 37"​
d) "3 + 7 = 3 + 7"
8.​ ¿Qué crees que intenta hacer el siguiente código?

def procesar_numeros(lista):

resultado = []

for numero in lista:

if numero % 2 == 0:

resultado.append(numero ** 2)

else:

resultado.append(numero * 2)

return resultado

a) Filtrar los números pares de la lista y devolverlos al cuadrado.​


b) Elevar al cuadrado todos los números de la lista.​
c) Generar una lista solo con los números impares al doble de su valor.​
d) Calcular el cuadrado de los números pares y el doble de los impares.

9.​ ¿Qué resultado obtendrás al ejecutar el siguiente código?

x = 5
y = x
y += 3
print(x, y)

a) 5, 5​
b) 8, 8​
c) 5, 8​
d) Error de asignación.

10.​¿Qué hace el siguiente código?

mi_dict = {"a": 1, "b": 2}


print(mi_dict.get("c", 0))

a) Devuelve None.​
b) Devuelve un error porque "c" no está en el diccionario.​
c) Devuelve 0.​
d) Devuelve 2.
Segunda Parte: Preguntas Abiertas (4 puntos, 1 cada una)

1.​ Explica brevemente las diferencias entre:


○​ Un diccionario y una lista en Python.
○​ Los operadores is y ==.
○​ Un bucle for y una comprensión de lista.
○​ Un error de tipo (TypeError) y un error de índice (IndexError).
2.​ Describe el propósito del método __str__ en una clase de Python y da un ejemplo
práctico de su uso.
3.​ ¿Qué es un módulo en Python? Da un ejemplo de cómo importarlo y usarlo.
4.​ ¿Cómo funcionan los operadores lógicos and, or y not en Python? Proporciona un
ejemplo que combine los tres en una sola expresión.

Tercera Parte: Ejercicios Prácticos (4 puntos, 2 cada uno)

1.​ Cálculo del promedio​


Escribe una función llamada calcular_promedio que reciba una lista de números
y devuelva el promedio.​
a) Proporciona el código de la función.​
b) Demuestra cómo usar esta función con la lista [4, 8, 15, 16, 23, 42].

2. ​ Diseña una clase llamada Coche que tenga:

○​ Un atributo marca (cadena) y un atributo velocidad (entero) inicializado a 0


a no ser que lo pasen como parametro.
○​ Un método acelerar que aumente la velocidad en 10.
○​ Un método frenar que disminuya la velocidad en 10.
○​ Un método mostrar_info que imprima la marca y la velocidad actual.

Crea una instancia de la clase con marca Toyota y velocidad 10. Acelera el coche
hasta 40 de velocidad, frenalo hasta 20 y muestra la información.

3. ​Escribe un programa que lea un archivo de texto llamado notas.txt y:

○​ Cuente cuántas palabras hay en el archivo.


○​ Cree un nuevo archivo llamado reporte.txt que escriba:
■​ El número total de palabras.
■​ Las primeras dos líneas del archivo original.
Examen: Programación en Python - Recuperación

Duración: 2 horas​
Puntaje Total: 10 puntos​
Instrucciones: Responde las siguientes preguntas buscando en documentación oficial,
foros o apuntes si es necesario. Explica brevemente el razonamiento detrás de tus
respuestas si se solicita.

Primera Parte: Test de Respuesta Múltiple (3 puntos, 0.3 cada una)

1.​ ¿Qué imprime este código?

frutas = ["manzana", "pera", "plátano"]


frutas[1] = "naranja"
print(frutas)

a) ["manzana", "naranja", "plátano"]​


b) ["naranja", "pera", "plátano"]​
c) ["manzana", "pera", "naranja"]​
d) ["manzana", "pera", "plátano""naranja"]

2.​ ¿Qué hace el siguiente código?

resultado = [x**2 for x in range(5) if x % 2 == 0]


print(resultado)

a) Genera una lista con los números pares entre 0 y 5.​


b) Genera una lista con los cuadrados de los números pares entre 0 y 5.​
c) Genera una lista con los números impares entre 0 y 5.​
d) Genera una lista vacía.

3.​ ¿Qué sucede si ejecutas este código?

x = 10
y = 0
print(x / y)

a) Devuelve un error porque no se puede dividir entre cero.​


b) Imprime 0.​
c) Imprime infinito.​
d) El código no imprime nada porque está mal definido.

4.​ ¿Qué operador se utiliza para comprobar si un elemento pertenece a una lista en
Python?​
a) []​
b) contains​
c) ==​
d) in

5.​ Si ejecutas el siguiente código:

cadena = "Hola Mundo"


print(cadena[2:7])

¿Qué se imprimirá?​
a) "la Mun"​
b) "ola Mun"​
c) "la Mund"​
d) "ola Mu"

6.​ ¿Qué sucede si intentas acceder a un índice que no existe en una lista?​
a) Devuelve un error de tipo.​
b) Devuelve un error de índice.​
c) Devuelve None.​
d) No sucede nada.

7.​ ¿Qué se imprime al ejecutar este código?

x = 3
y = 7
print(f"{x} + {y} = {x + y}")

a) "3 + 7 = 10"​
b) "x + y = x + y"​
c) "3 + 7 = 37"​
d) "3 + 7 = 3 + 7"
8.​ ¿Qué crees que intenta hacer el siguiente código?

def procesar_numeros(lista):

resultado = []

for numero in lista:

if numero % 2 == 0:

resultado.append(numero ** 2)

else:

resultado.append(numero * 2)

return resultado

a) Filtrar los números pares de la lista y devolverlos al cuadrado.​


b) Elevar al cuadrado todos los números de la lista.​
c) Generar una lista solo con los números impares al doble de su valor.​
d) Calcular el cuadrado de los números pares y el doble de los impares.

9.​ ¿Qué resultado obtendrás al ejecutar el siguiente código?

x = 5
y = x
y += 3
print(x, y)

a) 5, 5​
b) 8, 8​
c) 5, 8​
d) Error de asignación.

10.​¿Qué hace el siguiente código?

mi_dict = {"a": 1, "b": 2}


print(mi_dict.get("c", 0))

a) Devuelve None.​
b) Devuelve un error porque "c" no está en el diccionario.​
c) Devuelve 0.​
d) Devuelve 2.
Segunda Parte: Preguntas Abiertas (4 puntos, 1 cada una)

1.​ Explica brevemente las diferencias entre:


○​ Un diccionario y una lista en Python.

Un diccionario almacena pares clave-valor y tiene acceso rápido por clave.


Una lista es una colección ordenada de elementos accesibles por índice.

○​ Los operadores is y ==.

is: Comprueba si dos variables apuntan al mismo objeto en memoria.

==: Comprueba si los valores son iguales.

○​ Un bucle for y una comprensión de lista.

Un bucle for itera para realizar acciones. Una comprensión de lista crea una
nueva lista en una línea.

○​ Un error de tipo (TypeError) y un error de índice (IndexError).

TypeError: Error cuando el tipo de dato es inválido.

IndexError: Error al acceder a un índice inválido de una lista.

2.​ Describe el propósito del método __str__ en una clase de Python y da un ejemplo
práctico de su uso.

Define la representación string de un objeto.

class Persona:

def __init__(self, nombre):

self.nombre = nombre

def __str__(self):

return f"Persona: {self.nombre}"

print(Persona("Álvaro"))

3.​ ¿Qué es un módulo en Python? Da un ejemplo de cómo importarlo y usarlo.

Es un archivo con funciones o variables reutilizables.

import math

print(math.sqrt(16))
4.​ ¿Cómo funcionan los operadores lógicos and, or y not en Python? Proporciona un
ejemplo que combine los tres en una sola expresión.

​ a = True

b = False

print((a and not b) or b) # True


Tercera Parte: Ejercicios Prácticos (4 puntos, 2 cada uno)

1.​ Cálculo del promedio​


Escribe una función llamada calcular_promedio que reciba una lista de números
y devuelva el promedio.​
a) Proporciona el código de la función.​
b) Demuestra cómo usar esta función con la lista [4, 8, 15, 16, 23, 42].

def calcular_promedio(lista):

return sum(lista) / len(lista)

numeros = [4, 8, 15, 16, 23, 42]

print(calcular_promedio(numeros)) # 18.0

2. ​ Diseña una clase llamada Coche que tenga:

○​ Un atributo marca (cadena) y un atributo velocidad (entero) inicializado a 0


a no ser que lo pasen como parametro.
○​ Un método acelerar que aumente la velocidad en 10.
○​ Un método frenar que disminuya la velocidad en 10.
○​ Un método mostrar_info que imprima la marca y la velocidad actual.

Crea una instancia de la clase con marca Toyota y velocidad 10. Acelera el coche
hasta 40 de velocidad, frenalo hasta 20 y muestra la información.

class Coche:

def __init__(self, marca, velocidad=0):

self.marca = marca

self.velocidad = velocidad

def acelerar(self):

self.velocidad += 10

def frenar(self):

self.velocidad -= 10

def mostrar_info(self):
print(f"Marca: {self.marca}, Velocidad: {self.velocidad} km/h")

# Crear una instancia de la clase Coche

mi_coche = Coche("Toyota", 10)

# Acelerar hasta 40 de velocidad

mi_coche.acelerar()

mi_coche.acelerar()

mi_coche.acelerar()

mi_coche.acelerar()

# Frenar hasta 20 de velocidad

mi_coche.frenar()

mi_coche.frenar()

# Mostrar información del coche

mi_coche.mostrar_info()

3. ​Escribe un programa que lea un archivo de texto llamado notas.txt y:

○​ Cuente cuántas palabras hay en el archivo.


○​ Cree un nuevo archivo llamado reporte.txt que escriba:
■​ El número total de palabras.
■​ Las primeras dos líneas del archivo original.

​ with open("notas.txt", "r") as archivo:


​ ​ contenido = archivo.readlines()
​ ​ total_palabras = sum(len(linea.split()) for linea in contenido)

with open("reporte.txt", "w") as reporte:


​ ​ reporte.write(f"Total de palabras: {total_palabras}\n")
​ ​ reporte.writelines(contenido[:2])

También podría gustarte