0% encontró este documento útil (0 votos)
3K vistas21 páginas

PDF Soluciones Curso Python - Unir

solucion curso de python unir
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)
3K vistas21 páginas

PDF Soluciones Curso Python - Unir

solucion curso de python unir
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

ACTIVIDAD 1

Ejercicio 1

Completa la siguiente función para que dado un número de documento nacional de identidad (DNI), se
devuelva una letra. Esta letra se obtiene calculando el resto del DNI entre 23 y a partir de ese valor asignarle
una letra de la siguiente tabla:

RESTO 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
LETRA T R W A G M Y F P D X B N J Z S Q V H L C K E

El valor DNI será un número entero y la letra debe ser una cadena de caracteres que contendrá una única
letra en mayúsculas.

def ejercicio_1(dni):
resultado = "TRWAGMYFPDXBNJZSQVHLCKE"[dni
"TRWAGMYFPDXBNJZSQVHLCKE"[dni % 23]
23]
return resultado

Ejercicio 2

Completa la siguiente función para que dado el precio de un producto, se calcule y se devuelva el precio
total que debe pagar el cliente, es decir, incluyendo el IVA (21% sobre el precio del producto). El precio
total deberá ser únicamente el valor del precio, es decir, no debe contener el símbolo de la moneda.

def ejercicio_2(precio):

resultado = round(precio * 1.21,


1.21, 2)
return resultado

Ejercicio 3

Completa la siguiente función para que dado el diámetro de una circunferencia, se calcule el área del círculo
que contiene dicha circunferencia. Como valor de PI se usará 3.1415.

def ejercicio_3(diametro):
resultado = 3.1415 * ((diametro / 2) ** 2)
return resultado

Ejercicio 4

Completar la función para que dado dos números enteros y dos números enteros, se calcula el cociente y el

resto de hacer la división entera entre n y m.


def ejercicio_4(numero1, numero2):
cociente = numero1 // numero2
resto = numero1 % numero2
return cociente, resto

Ejercicio 5

Completar la función para que dado el número de unidades que ha comprado un usuario de 2 productos
diferentes, devolver el peso total del paquete para enviar su compra por mensajería. El peso de cada unidad
del producto1 es de 147 unidades y el peso de cada unidad del producto2 es de 2400 unidades. La función
debe devolver únicamente el peso total.

def ejercicio_5(producto1, producto2):


resultado = (producto1 * 147)
147) + (producto2 * 2400)
2400)
return resultado
ACTIVIDAD 2

Ejercicio 1

Escribe una función llamada ejercicio1 que genere una lista con 15 valores enteros aleatorios que vayan de
1 a 100. La función debe devolver la lista con todos los valores.
valor es.

import random as r
def ejercicio1():
lista_salida = []
for i in range(
range(15
15):
):
lista_salida.
lista_salida .append(r
append(r..randint(
randint(11, 100
100))
))
return lista_salida
lista_salida

Ejercicio 2

Escribe una función llamada ejercicio2 que recibe 2 argumentos: el primero será la lista que hemos
implementado en el Ejercicio 1 y el segundo un número por el que se dividirá cada uno de los elementos
de la lista. El resultado será una nueva lista.
lista .

def ejercicio2(lista_entrada, divisor):


lista_salida = []
for i in range(len(lista_entrada)):
lista_salida.
lista_salida .append(lista_entrada[i] / divisor)
return lista_salida
lista_salida

Ejercicio 3

Usando funciones anónimas, crea una nueva lista que contenga los valores enteros de cada uno de los
elementos de la lista que devuelve la función implementada en el Ejercicio 2.

ejercicio3 = lambda p : [int(p[i]) for i in range(len(p))]

Ejercicio 4

Implementa una función, llamada ejercicio4, que reciba como argumentos dos números enteros y devuelva
en una tupla los siguientes valores: el factorial del primer argumento y el máximo común divisor de ambos
argumentos.

import math as m
def ejercicio4(numero1, numero2):

factorial
mcd = m. = m.
m.factorial(numero1)
m.gcd(numero1, numero2)
return factorial, mcd

Ejercicio 5

Crea una función ejercicio5 que devuelva una lista con todos los valores contenidos en una lista que se pasa
por argumento pero eliminando
eliminando los valores repetidos. Prueba el funcionamiento de esta función con la lista
obtenida en el Ejercicio 1.

def ejercicio5(lista_entrada):
lista_salida = []
for i in lista_entrada:
lista_entrada:
if i not in lista_salida:
lista_salida.
lista_salida .append(i)
return lista_salida
lista_salida
ACTIVIDAD 3

Ejercicio 1

Escribe una clase llamada Numero.


Numero . Esta clase debe tener una constructora que reciba un número y almacene
ese número en 2 atributos: romano que almacenará el número en el formato de número romanos como una
cadena de caracteres y normal que guardará el número que nos han dado en la constructora.

Ejercicio 2

Crea dos nuevos


mostrando métodos
el valor en la
de ambos clase Numero.
atributos; El primer
el segundo método,
atributo, llamado imprime()
suma_romano() imprime
tendrá como un mensaje
parámetros una
cadena de caracteres que representará otro número romano y que sumaremos a los atributos que ya
teníamos.

Ejercicio 3

Define una función dentro de la clase Numero que a partir de una cadena de caracteres, devuelve True si
esa cadena de caracteres corresponde con un número romano
ro mano y falso en caso contrario . Después, modifica
el método para que lance un error en el caso de que el valor que nos pasan por parámetro no se corresponde
con el patrón de un número romano

import re

class Numero:

romano = ""
normal = ""

def __init__(self, normal):


self.
self .romano = Numero
Numero.
.normal_a_romano(normal)
self.normal = normal
self.

def imprime(self):
cadena = ("{}
("{} {}"
{}"))
print(cadena
(cadena.
.format(self
format(self.
.normal, self.
self.romano))

def suma_romano(self, romano):


numero_anterior = Numero
Numero..romano_a_normal(self .romano)
numero_nuevo = Numero
Numero..romano_a_normal(romano)
res = int(numero_anterior) + int(numero_nuevo)
self.
self .romano = Numero
Numero.
.normal_a_romano(res)

self.normal = res
self.
def romano_a_normal(romano):
dic = {"M"
{"M":: 1000,
1000, "D"
"D":: 500
500,, "C":
"C": 100
100,, "L"
"L":: 50
50,, "X"
"X":: 10,
10, "V":
"V":
5, "I":
"I": 1}
res = 0
for i in range(
range(0
0, len(romano)):
len(romano)):
if i == 0 or dic[romano[i]] <= dic[romano[i
dic[romano[i - 1]]:
res += dic[romano[i]]
else:
res += dic[romano[i]] - 2 * dic[romano[i - 1]]
return res

def normal_a_romano(normal):
num = [1
[1, 4, 5, 9, 10,
10, 40
40,
, 50,
50, 90,
90, 100,
100, 400,
400, 500,
500, 900
900,
, 1000]
1000]
rom = ["I"
["I",
, "IV",
"IV", "V"
"V",, "IX"
"IX",
, "X"
"X",, "XL",
"XL", "L",
"L", "XC"
"XC",
, "C"
"C",, "CD",
"CD",
"D",
"D" , "CM",
"CM", "M"
"M"]]
i = 12
res = ""
while normal:
div = normal // num[i]
normal %= num[i]
while div:
res += str(rom[i])
div -= 1
i -= 1
return res

def is_romano(self, romano):


patron_romano =
"^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$"
if re
re..search(patron_romano, romano):
return True
else:
return False

Ejercicio 4

Implementa una clase MejorNumero. Esta clase heredará las propiedades de Numero e incluirá dos métodos
nuevos para restar y multiplicar los atributos recibiendo por parámetro otro número romano.

Ejercicio 5

En la clase MejorNumero, crea un nuevo método que reciba una lista con 3 números romanos. A
continuación, iterando sobre los elementos de la lista llamará a la función suma_romano(). Los posibles
errores se tendrán que gestionar con excepciones para mostrar un mensaje y seguir ejecutando el siguiente
número.

class MejorNumero(Numero):
def __init__(self, normal):
self.romano = Numero
self. Numero.
.normal_a_romano(normal)
self.
self .normal = Numero.
Numero.normal

def resta(self, romano):


numero_anterior = Numero
Numero..romano_a_normal(self .romano)
numero_nuevo = Numero
Numero..romano_a_normal(romano)
res = int(numero_anterior) - int(numero_nuevo)
self.
self .romano = Numero
Numero.
.normal_a_romano(res)
self.
self .normal = res

def multiplica(self, romano):


numero_anterior = Numero
Numero..romano_a_normal(self .romano)
numero_nuevo = Numero
Numero..romano_a_normal(romano)
res = int(numero_anterior) * int(numero_nuevo)
self.
self .romano = Numero
Numero.
.normal_a_romano(res)
self.normal = res
self.

def iterar(self, lista):


numero_anterior = Numero
Numero.
.romano_a_normal(self .romano)
acumulador = 0
for elemento in lista:
try:
acumulador += Numero
Numero..romano_a_normal(elemento)
except TypeError:
print("Ha fallado el número " + str(elemento))
str(elemento))
res = numero_anterior + acumulador
self.
self .romano = self
self.
.romano = Numero
Numero.
.normal_a_romano(res)
self.
self .normal = res
ACTIVIDAD 4

Ejercicio 1

Crea una función llamada ejercicio1, que recibe la ruta donde se encuentra un dataset y devuelve una
DataFrame con los datos que hay en el dataset. Para comprobar esta función utiliza el dataset
titanic.csv que se incluye en esta actividad.

import pandas as pd
def ejercicio1(dataset):
return pd
pd..read_csv(dataset)

Ejercicio 2

Crea otra función llamada ejercicio2. Esta función recibe un único argumento que es un dataframe. En
concreto debe recibir el dataframe que se ha obtenido de leer el dataset titanic.csv. Esta función
devolverá otro dataset que incluya únicamente a los pasajeros menores de 35 años y que viajaban en 3ª
clase.

def ejercicio2(dataframe):
filtro = dataframe[(dataframe
dataframe[(dataframe.
.Age < 35
35)) & (dataframe
(dataframe.
.Pclass == 3)]
return filtro

Ejercicio 3

Crea una función llamada ejercicio3, que recibiendo como argumento el dataframe de salida del ejercicio
2, calcule el porcentaje de pasajeros menores de 35 años de 3ª clase que sobrevivieron.

def ejercicio3(dataframe):
total_registros = dataframe
dataframe.
.Survived
Survived..count()
sobrevivientes = dataframe[(dataframe
dataframe[(dataframe..Survived ==
1)].
)].Survived
Survived..count()
p_sobrevivientes = (sobrevivientes * 100)
100) / total_registros
return p_sobrevivientes
p_sobrevivientes

Ejercicio 4

Implementa una función llamada ejercicio4 que recibiendo el dataframe con los datos del Titanic, devuelva
en una tupla el porcentaje de hombres y mujeres que viajaban en el Titanic, redondeados al segundo
decimal.

def ejercicio4(dataframe):
total_registros = dataframe
dataframe..Survived
Survived..count()
n_hombres = dataframe[(dataframe
dataframe[(dataframe..Sex == "male"
"male")]
)]..Sex
Sex..count()
n_mujeres = dataframe[(dataframe
dataframe[(dataframe..Sex == "female"
"female")]
)].
.Sex
Sex.
.count()
p_hombres = round((n_hombres * 100)
100) / total_registros, 2)
p_mujeres = round((n_mujeres * 100)
100) / total_registros, 2)
return p_hombres, p_mujeres

Ejercicio 5

Implementa una función llamada ejercicio5 que recibiendo el dataframe con los datos del Titanic, devuelva
en una lista el número de pasajeros que viajaban en 1ª, 2ª y 3ª clase.

def ejercicio5(dataframe):
lista = []
.insert(
lista.
lista insert(0
0, dataframe[(dataframe.
dataframe[(dataframe.Pclass == 1)]
)]..Pclass
Pclass..count())
lista.
lista.insert(
insert(1
1, dataframe[(dataframe.
dataframe[(dataframe.Pclass == 2)]
)]..Pclass
Pclass..count())
.insert(
lista.
lista insert(2
2, dataframe[(dataframe.
dataframe[(dataframe.Pclass == 3)]
)]..Pclass
Pclass..count())
return lista
Test Tema 1

Python se creó con el objetivo de:


A. Ser más potente que otros lenguajes de la época.
B. Crear un lenguaje fácil de usar y de aprender.
C. Programar usando interfaces visuales.
D. Poder crear aplicaciones de servidor más fácilmente.

El objetivo principal de Python fue crear un lenguaje igual de potente que otros de la época
pero que fuese fácil de usar y aprender simplificando su sintaxis.

¿Cuál de las siguientes propiedades tiene Python?


A. El tipo de las variables se hace de forma dinámica.
B. Se pueden programar en diferentes
di ferentes paradigmas como programación orientada a objetos o
programación funcional.
C. Podemos extender las funcionalidades de Python creando módulos en C++.
D. Todas las anteriores.

La versión de Python que debemos usar es:


A. Tenemos que usar la versión 3.8 o posterior.
B. Podemos usar cualquier versión de Python, ya que no cambian mucho.
C. Tenemos que usar la versión 2.7.
D. Depende de las características de nuestro equipo.

La versión de Python que debemos utilizar, sea cual sea nuestro equipo, es la versión 3.8 o
posterior, ya que otras versiones han sido descontinuadas desde enero de 2020.

¿Cuál de las siguientes herramientas no podemos usar para programar en Python?


A. Editor de texto plano como Atom.
B. La consola del sistema.
C. Aplicaciones de ofimática como Word.
D. Entornos de desarrollo avanzado como PyCharm.

Python permite el uso de diferentes herramientas para crear programas, desde la consola del
sistema hasta entornos avanzados. Sin embargo, no se pueden crear programas que no sean
de texto plano como Word o WordPad.

¿Cómo puedo instalar Jupyter Notebook en mi equipo?


A. Instalando la distribución Anaconda.
B. Instalando la distribución básica de Python.
C. Instalando un editor de texto plano.
D. A través de una suscripción.

Jupyter Notebook es una aplicación gratuita que está incluida dentro de la distribución
Anaconda.
¿Qué diferencia existe entre las distribuciones de Python?
A. La distribución básica de Python incluye más módulo que Anaconda.
B. La distribución de Anaconda incluye más módulo que la versión básica.
C. Anaconda no permite instalar más módulos.
D. La versión básica de Python no permite instalar más módulos.

La distribución Anaconda incluye más módulos que la versión básica de Python debido a que
está orientada al análisis de datos. Además, ambas distribuciones permiten instalar nuevos
módulos.

¿Qué es Jupyter Notebook?


A. Un editor de texto plano.
B. Un comando de la consola para ejecutar instrucciones de Python.
C. Un entorno que permite crear celdas con diferentes funcionalidades (escribir código,
documentar, etc.).
D. Otra distribución para instalar Python en nuestro equipo.

Jupyter Notebook es un entorno de desarrollo cuya principal característica son las celdas, que
permiten crear bloques con diferentes contenidos como pueden ser código de Python, texto o
gráficos.

¿Qué tipo de celdas podemos usar en Jupyter Notebook?


A. Celdas con código de Python.
B. Celdas con texto basado en markdown.
C. Texto con formato consola.
D. Todas las anteriores.

En Jupyter Notebook podemos crear celdas que contengan código de Python y de texto, ya sea
con el formato markdown o con el formato de consola.

¿Qué tipo de ficheros no podemos crear con el navegador de archivos de Jupyter Notebook?
A. Notebooks.
B. Carpetas.
C. Ficheros de Texto.
D. Ficheros PDF.

Dentro del navegador de archivos de Jupyter Notebook podemos crear diferentes tipos de
ficheros como son carpetas, notebooks o archivos de texto. Sin embargo, otros formatos como
ficheros PDF no se pueden crear aquí.

En Jupyter Notebook:
A. Las celdas de salida se crean automáticamente.
B. Tenemos que ejecutar las instrucciones en la consola de Python.
C. No se pueden exportar los notebooks a otros formatos como PDF o HTML.
D. No se puede reiniciar el kernel para borrar la memoria.

Las únicas celdas que se crean automáticamente en Jupyter Notebook son las celdas de salida,
que muestran el resultado de una celda
c elda que contiene código de Python. No es necesario
ejecutar las instrucciones en la consola y las acciones C y D si están permitidas en Jupyter.
Test Tema 2

Los identificadores en Python:


A. Pueden tener cualquier tipo de carácter o símbolo.
B. No pueden estar en mayúsculas.
C. Tienen como longitud máxima 20 caracteres.
D. Pueden incluir dígitos siempre que no estén al principio del identificador.

Los identificadores en Python no pueden incluir símbolos especiales, pueden estar en


minúsculas o mayúsculas, pueden incluir dígitos excepto al comienzo del identificador y
pueden tener cualquier longitud.

¿Cuál de estas afirmaciones no es correcta?


A. Los comentarios pueden ser de una línea o de bloque.
B. Puedo crear un identificador que se llame and.
C. Los identificadores
i dentificadores no pueden contener símbolos especiales (@, $…).
D. Python no ejecuta los comentarios.

¿Qué debemos usar para que Python


Py thon detecte distintos bloques de código?
A. Llaves ({}).
B. Las palabras reservadas begin y end.
C. Sangrías de uno o más espacios.
D. Sangrías de cuatro espacios.

En Python utilizamos la sangría de cuatro espacios para definir nuevos bloques de código, por
ejemplo, después de declarar una instrucción if.
i f.

¿Qué tipo de dato devuelve la siguiente operación? 2 / 3


A. int.
B. bool.
C. float.
D. error.

Este operador es una división normal


no rmal por lo que, aunque sean dos números enteros, el tipo de
dato devuelto por este operador es float.

Si partimos de una variable var con un valor inicial igual a 10 y queremos multiplicarlo por 3
almacenando el resultado en la misma variable, ¿cuál es la forma más efectiva para
conseguirlo?
A. var = var + 10.
B. var += int(‘10’).
C. var -= 10.
D. var*= 3

La forma más efectiva para multiplicar 3 a una variable y almacenar el valor en la misma
variable es usando la multiplicación con asignación. Además, no es necesario hacer ningún
cambio en el tipo de dato.
Tenemos la siguiente cadena de caracteres almacenada en una variable: frase = “Hola,
Python!”. Si accedemos a las posiciones frase[ -7:12], ¿cuál será el resultado?
A. “Python”.
B. “Hola”.
C. “la, P”.
D. Devolverá un error.

En este caso estamos accediendo desde la posición 7 contando desde la derecha, es decir, la P,
hasta la posición 11 contando desde la izquierda (es la posición 12 menos una posición), es
decir, la n. El resultado es «Python».

Usando la misma variable que en la pregunta anterior, ejecutamos la siguiente instrucción:


frase.replace(“Adiós”, “Buenos días”). ¿Cuál será el resultado?
A. “Adiós, Python!”.
B. Devolverá un error.
C. “Hola, Buenos días”.
D. “Hola, Python!”.

Al no existir una coincidencia con «Adiós» dentro de la variable frase, devolverá el mismo valor
que tenía la variable frase originalmente.
ori ginalmente.

Continuando con la variable anterior, ¿cuál es el resultado de esta sentencia?: len(“Hola”) <=
frase.find(',')
A. True.
B. Devolverá un error.
C. False.
D. “False”.

En esta operación se está comparando si la longitud de la cadena «Hola» (4) es menor o igual
que la posición de la coma dentro de la variable frase (4). Al ser un operador de comparación,
devolverá un dato booleano y, al ser cierto, devolverá True.

¿Cuándo se puede convertir un objeto a una cadena de caracteres?:


A. Siempre que el objeto no sea un número complejo.
B. Siempre que el valor del objeto no sea None.
C. Siempre.
D. Solo si el objeto tiene caracteres.

Modificar un objeto de tipo básico o None a cadena de caracteres no tiene ninguna restricción.

¿Cuál es el resultado de la siguiente operación booleana?: bool(0) or not(bool())


A. False.
B. Dará un error por no poner un objeto en la sentencia bool().
C. Dará un error porque las operaciones lógicas no se pueden usar mientras se cambia el tipo
de dato.
D. True.

El resultado será True, ya que el primer operador bool(0) devolverá False y el segundo
operador devolverá not(False), es decir, True. Por lo que el resultado de False or True será
True.
Test Tema 3

¿Cuál de estas afirmaciones no es correcta?


A. Los objetos incluidos en una lista se pueden modificar.
B. Los elementos de una lista solo pueden ser del mismo tipo.
C. Las listas pueden contener otras estructuras de datos como, por ejemplo, otra lista.
D. Existen dos formas de crear una lista vacía.

Para acceder al valor de un elemento de un diccionario necesitamos saber:


A. Su posición en el diccionario.
B. El tamaño del diccionario.
C. El valor del elemento al que queremos acceder.
D. La clave que se ha asignado al elemento.

Los conjuntos son:


A. Colecciones de elementos no ordenadas y sin repeticiones
B. Colecciones de elementos no ordenadas y con repeticiones.
C. Colecciones de elementos ordenadas y sin repeticiones.
D. Colecciones de elementos ordenadas y con repeticiones.

Los conjuntos son estructuras de datos que almacenan sus objetos de forma no ordenada
o rdenada y sin
repeticiones.

En una ejecución condicional, un bloque de código tras una sentencia else se ejecuta:
A. Si la expresión de la sentencia if ha dado como resultado False.
B. Si las expresiones de las sentencias if y elif han dado como resultado False.
C. Si la expresión de la sentencia else ha dado como resultado False.
D. Siempre.

En un bucle while, un bloque de código tras una sentencia else se ejecuta:


A. Si la expresión de la sentencia while ha dado como resultado True.
B. Solo si ha habido un error en la ejecución.
C. Antes de ejecutar el bucle.
D. Siempre.

¿Cuántas veces se va a imprimir el mensaje en este código? for i in range(1,9):


A. 10.
B. 8.
C. 9.
D. 11.

¿Qué números no se imprimirán en este código?


for i in range(1,10):
if (i % 3 != 0):
print(i)
else:
continue
A. 3.
B. 1, 9.
C. 3, 6, 9.
D. Se mostrarán todos.
¿Cuál de las siguientes opciones nos devolvería los números pares de 0 a 19?
A. range(0,19).
B. range(20).
C. range(0, 20, 2).
D. range(0, 20, 1).

¿Cuál será el resultado de ejecutar este código?


lista = ['a', 5, 7]
iterador = iter(lista)
next(iterador) * 10
A. ‘aaaaaaaaaa’.
B. 50.
C. 70.
D. None.

El iterador recorrerá las diferentes posiciones de la lista, al llamar a la función next, devolverá
el primer elemento de la lista caracteres, la multiplicación
li sta ‘a’. Cómo es de tipo cadena de caracteres,
devuelve la letra ‘a’ repetida 10 veces.

¿Cuál de los siguientes objetos no puede ser utilizado en un iterador?


A. Una cadena de caracteres.
B. Un diccionario.
C. Un número entero.
D. Una tupla.
Test Tema 4

¿Cuántos argumentos puede recibir la siguiente función y cómo se deben poner?


def ejemplo(*args):
print(args)
A. Un único argumento.
B. Todos los que se quieran, y se colocarán por posición.
C. Todos los que se quieran, y se colocarán por nombre.
D. No admite argumentos.

¿Cuál es el resultado de ejecutar la siguiente función?


def calculo(numero_1, numero_2 = 3):
return numero_1 / numero_2
A. 0.
B. Devolverá un error de ejecución.
C. 3.33.
D. 10.

La sentencia return de una función permite:


A. Devolver un único resultado.
B. Devolver más de un resultado, pero se devolverán como una lista.
C. Devolver más de un resultado, pero se devolverán como un conjunto.
D. Devolver más de un resultado, pero se devolverán como una tupla.

¿Qué función del sistema Python se puede utilizar para obtener la parte entera de un
número?
A. math.trunc().
B. math.ceil().
C. sys.trunc().
D. No existe, se debe implementar una función nueva.

La librería math de Python cuenta con muchas funciones aritméticas que podemos utilizar,
entre ellas, la función trunc() que nos devuelve la parte entera de un número decimal.

¿Cuál es la funcionalidad de la variable sys.argv?


A. Almacenar la ruta donde se encuentra Python.
B. Almacenar los argumentos que se han introducido en la consola al ejecutar el script.
C. Almacenar la versión de Python.
D. Almacenar el nombre del usuario del sistema.

Queremos comprobar si el fichero ‘/Carpeta/fichero.py’


‘/Carpeta/fichero.py’ existe en el sistema. ¿Cómo se
podría hacer de la forma más sencilla?
A. Creando una función que lea ficheros en el sistema.
B. Crear el mismo fichero y, si da error, significa que ya existe.
C. Usando la función os.path.basename().
D. Usando la función os.path.exists().
¿Qué devuelve la siguiente función?
def test():
lista = [2, 6, ‘Hola’, 10, 7]
return random.choice(lista)
A. Una permutación de los elementos definidos en la lista.
B. Un elemento de la lista elegido aleatoriamente.
C. Un número aleatorio de 0 al número más alto de la lista.
D. Varios elementos de la lista elegidos aleatoriamente.

Una función anónima:


A. Debe tener únicamente una expresión aritmética.
B. Puede tener un bloque con varias instrucciones.
C. Debe tener una única expresión, sin importar el tipo de esa expresión.
D. No se puede almacenar en una variable.

¿Qué devuelve la siguiente función?


funcion = lambda x: x >= 5 and x < 10
list(filter(funcion, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
A. [1, 2, 3, 4].
B. [5, 10].
C. [2, 4, 6, 8, 10].
D. [5, 6, 7, 8, 9].

¿Qué devuelve la siguiente función?: funcion = lambda x: str(x) list(map(funcion, [1, 2, 3, 4,


5, 6, 7, 8, 9, 10]))
A. Una lista con todos los elementos convertidos a cadena de caracteres.
B. Una lista igual que la que se pasa por parámetro.
C. Dará error porque una lista no se puede convertir a cadena de caracteres.
D. Devolverá una lista vacía.

En este fragmento de código se está aplicando un map para convertir a cada uno de los
elementos de la lista en objetos de tipo cadena de caracteres.
Test Tema 5

¿Cuál es la principal característica de los módulos?


A. Poder hacer pruebas en nuestro desarrollo.
B. Organizar el código de manera que podamos agrupar los diferentes elementos que
desarrollemos.
C. Implementar la interfaz gráfica de nuestra aplicación.
D. Adaptar nuestro código de programación a un entorno de desarrollo.

¿Qué utilidad tiene el alias a la hora de importar un módulo?


A. El alias permite asignar otro identificador a dicho módulo.
B. El alias se debe poner para módulos que ocupan mucho espacio.
C. El alias no se pueden usar al importar módulos, solo al importar paquetes.
D. El alias mejora la eficiencia de un módulo.

A la hora de importar un módulo podemos asignarle un alias. Este alias nos permite hacer
referencia al módulo con un nuevo identificador que, normalmente, es más corto o sencillo de
recordar.

¿Cómo debemos crear un paquete en Python?


A. Creando una carpeta cuyo nombre empiece por pkg.
B. Creando un módulo que solo incluya instrucciones de importación.
C. Creando una carpeta donde exista
exi sta un fichero llamado __init__.py.
D. Asignando módulos a un objeto de tipo paquete.

En la siguiente importación de un paquete, ¿cómo debemos acceder a la función test() del


módulo mi_modulo?
from paquete import mi_modulo as mod
A. paquete.mi_modulo.test().
B. mi_modulo.mod.test().
C. paquete.mod.test().
D. mod.test().

¿Qué es un objeto?
A. Un conjunto de funciones para nuestro código.
B. Un módulo que se puede incluir a Python.
C. Una abstracción de los datos que tiene un estado, un comportamiento y una identidad.
D. Una estructura de datos.

Cuando implementamos un método en una clase, ¿para qué sirve el parámetro self?
A. Para dar al método la instancia del objeto que va a utilizar.
B. Se trata de un parámetro anónimo.
C. Este parámetro indica que la función es un método.
D. Este parámetro no hay que incluirlo en los métodos.

Cuando implementamos un método dentro de una clase debemos pasar como primer
parámetro el elemento self. Este parámetro sirve para que el método pueda acceder a la
instancia del objeto que ha invocado al método.
Para la siguiente clase, ¿cómo podríamos crear una instancia?
class MiClase:
def __init__(self, nombre, puntuacion=0.0):
self.nombre = nombre
self.puntuacion = puntuacion
Para la siguiente clase, ¿cómo podríamos crear una instancia?
class MiClase:
def __init__(self, nombre, puntuacion=0.0):

self.nombre = nombre
self.puntuacion = puntuacion
A. objeto = new MiClase().
B. objeto = MiClase().
C. objeto = MiClase.__init__(‘Hola’,
MiClase.__init__(‘Hola’, 10).
D. objeto = MiClase(‘Hola’).

Cuando implementamos una clase que es una herencia de otra clase, ¿a qué elementos de la
clase padre podemos acceder desde la clase hija?
A. Solo a los atributos de la clase padre.
B. Solo a los métodos de la clase padre.
C. A los atributos y métodos de la clase padre.
D. Solo a la constructora de la clase padre.

Supongamos
si ejecutamosque hemos implementado
el método las siguientes clases. ¿Qué se mostrará en la consola
imprimir del objeto?
class ClasePadre:
def imprimir(self):
print('Hola, soy la clase padre')
class ClaseHija(ClasePadre):
def imprimir(self):
print('Hola, soy la clase hija')
objeto = ClaseHija()
A. Mostrará un error al no saber a qué método nos referimos.
B. «Hola, soy la clase hija».
C. «Hola, soy la clase padre».
D. No se puede imprimir porque no le hemos pasado el argumento self.

¿Para qué sirven los docstring?


A. Para obtener información del módulo, paquete o clase, como la fecha de creación, autor,
etc.
B. Para definir variables de tipo cadena de caracteres.
C. Para definir constantes en un módulo.
D. Para escribir documentación que luego puede ser consultada por la instrucción help().
Test Tema 6

Ejecutando el siguiente código, ¿qué resultado se mostrará al final de la ejecución?


mensaje = 'Hola, me gusta estudiar Python'
re.sub('\w{4},', 'Buenos días', mensaje)
A. «Hola, me gusta estudiar Python».
B. Devolverá un error.
C. «Buenos días me gusta estudiar Python».
D. «Buenos días, me gusta estudiar Python».
En el siguiente ejemplo, ¿qué patrón se está buscando?
string = 'Hoy hemos comido 10 personas un menú de 12 euros. y 2
niños 2 bocadillos de 4 euros. En total pagamos 128 euros.'
result = re.findall('\d+', string)
print(result)
A. Los números de más de un dígito que hay en la cadena de caracteres, es decir, ['10', '12',
'128'].
B. Las palabras que contengan el carácter d más de una vez.
C. Los números que tengan 1 dígito o ninguno, es decir, ['2', '2',
' 2', '4'].
D. Todos los números que hay en la cadena de caracteres, es decir, ['10', '12', '2', '2', '4', '128'].

¿Qué devuelve la función match() cuando no ha encontrado ningún resultado en la cadena

de caracteres?
A. La misma cadena de caracteres de entrada.
B. None.
C. -1.
D. Devuelve un fallo.

¿Qué es una excepción?


A. Una variable donde se guarda un error que se haya producido.
B. El bloque de código que puede producir fallos.
C. Un fallo que lanza Python cuando no ha podido ejecutar una sentencia.
D. Un bloque de código que permite continuar la ejecución de un programa cuando se ha
detectado un error.

¿Cuándo se ejecuta el bloque else en las sentencias try-except?


A. Se ejecuta cuando no ha habido ningún error en el bloque try.
B. Se ejecuta siempre, se produzca o no se produzca un error.
C. Se ejecuta cuando se ha producido un error en la sentencia try.
D. No existe la sentencia else dentro de un bloque try-except.

La sentencia else se pone al final del bloque try-except y nos permite definir un conjunto de
instrucciones que se ejecutarán cuando no haya habido ningún error en la sentencia try.

¿Cuándo se ejecuta el bloque finally en las sentencias try-except?


A. No existe la sentencia finally dentro de un bloque try-except.
B. Se ejecuta siempre, se produzca o no se produzca un error.
C. Se ejecuta cuando no ha habido ningún error en el bloque try.
D. Se ejecutan cuando se ha producido un error en la sentencia try.
¿Qué resultado devolverá la ejecución del siguiente código?
try: hola + 5
‘ ’

except ValueError: print('Error 1')


except TypeError: print('Error 2')
except: print('Error 3')
A. Hola5.
B. Error 3.
C. Error 1.
D. Error 2.
¿Qué lista devolverá el siguiente bloque de instrucciones?
lista = list(range(1,10)) [x / 2 for x in lista if x * 4 < 15]
A. [2.0, 2.5, 3.0, 3.5, 4.0, 4.5].
B. [0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5].
C. [1, 2, 3].
D. [0.5, 1.0, 1.5].

¿Qué estructuras de datos se pueden crear con la técnica de compresión?


A. Únicamente listas.
B. Listas, conjuntos y diccionarios.
C. Listas y diccionarios.
D. De cualquier estructura de datos.

A partir de la siguiente lista, queremos crear un diccionario donde, por cada elemento, la
clave sea el nombre del usuario y el valor, la edad. En el diccionario solo guardaremos
aquellos usuarios menores de 35 años. ¿Cuál de las siguientes sentencias se debería utilizar?
usuarios = [['Juan', 33], ['Alicia', 28], ['Rebeca', 56]]
A. [item[0]: item[1] for item in usuarios if item[1] < 35].
B. {item[0]: item[1] for item in usuarios if item[0] < 35}.
C. [item[0]: item[1] for item in usuarios}.
D. {item[0]: item[1] for item in usuarios if item[1] < 35}.
Test Tema 7

¿Cómo se puede crear una matriz con 3 filas y 3 columnas usando numpy?
A. np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]).
B. np.array([[1, 2, 3, 4], [5, 6, 7, 8, 9]]).
C. np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]).
D. np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])).

numpy es una librería útil para:


A. Procesar archivos CSV.
B. Visualización interactiva.
C. Streaming.
D. Cálculo de vectores y matrices.

pandas es:
A. Un lenguaje de programación.
B. Una librería de cálculo simbólico.
C. Una librería para facilitar el tratamiento de datos.
D. Todos los anteriores.

Para obtener con pandas la información estadística de la estructura e información contenida


en un dataframe llamamos a la función:
A. summary().
B. descr().
C. describe().
D. review().

La función iloc de pandas:


A. Nos permite acceder a los valores a través de la posición del índice.
B. Nos devuelve la localización en memoria de un valor.
C. Devuelve un puntero a memoria.
D. Devuelve un valor lógico.

La función iloc nos permite acceder a una posición del dataframe usando el índice, es decir, el
número de posición que ocupa.

La sentencia df[df.A>0]:
A. No funciona.
B. Hace que todos los valores de A en df sean mayores que cero.
C. Cambia df eliminando todos los valores menores que cero.
D. Muestra solo las filas de df que en su columna A tienen un valor mayor que cero.

¿Qué hace la función groupby() en pandas?


A. Permite juntar más de un dataframe.
B. Permite agrupar los datos según los valores de las columnas especificadas por el argumento
by=.
C. Permite hacer la suma de todos los valores de una columna del dataframe.
D. Muestra los índices del dataframe.
¿Qué hace la función substract() en pandas?
A. Obtiene la longitud del array.
B. Suma los valores de todos los elementos de un array.
C. Resta un valor a todos los elementos de un array.
D. Resta los valores de dos arrays elemento por elemento.

¿Qué función nos permite ordenar un dataframe por su índice?


A. sort_values(index).
B. sort(index).
C. sort_index().
D. Solo se puede ordenar por columnas, no por índices.

¿Cómo tengo que llamar a la función read_csv() para leer un fichero prueba.csv donde los
valores están separados por punto y coma (;)?
A. read_csv(‘prueba.csv’).
B. read_csv(‘prueba.csv’, ’;’).
C. read_csv(‘prueba.csv’, sep=[‘,’, ’;’]).
D. read_csv(‘prueba.csv’, sep=’;’).
Test Tema 8

Los datos que se usan en las gráficas en matplotlib, ¿qué tipo de estructura de datos deben
tener?
A. Listas o arrays de numpy.
B. Conjuntos.
C. Cadena de texto.
D. Tuplas.

matplotlib lee los datos de estructuras como listas de Python o arrays de numpy para generar
las gráficas.

¿Cómo se llama la función que nos permite mostrar las gráficas de matplotlib?
A. iplot().
B. graph().
C. show().
D. plot().

Para generar un histograma, ¿qué función de matplotlib debemos usar?


A. bar().
B. hist().
C. plot().
D. hist2d().

Para crear un gráfico circular o de tarta los datos deben:


A. Sumar el 100%.
B. Sumar 100 para que la tarta esté completa.
C. Sumar entre 0 y 1, estando la tarta completa sólo cuando sumen 1.
D. Ser números enteros

¿Qué hace la función savefig() en matplotlib?


A. Incluir una gráfica en una imagen que ya contiene otras gráficas.
B. Exportar la imagen de la gráfica en un fichero .pdf, .png, .svg o .jpg.
C. Almacenar los metadatos de la figura en un fichero .json.
D. Guardar la figura en una variable para usarla más adelante.

En plotly, cada una de las gráficas se representa con un objeto del módulo:
A. plot.
B. figure.
C. offline.
D. graph_object.
¿Qué atributo del objeto Scatter debemos modificar para que la gráfica sea de puntos?
A. mode=`markers`.
B. symbol=`point`.
C. type=`markers`.
D. Estas gráficas no se hacen con el objeto Scatter.

En los objetos Scatter podemos cambiar el tipo de gráfica (de línea o puntos) con el atributo
mode=`marker`. Luego, podemos cambiar el tipo de punto que se muestra con el atributo
symbol.

¿Qué atributo nos permite modificar el rango de valores que se va a mostrar en un


histograma?
A. range.
B. start - ends.
C. xbins.
D. values.

¿Es necesario que los valores de una gráfica Pie estén normalizados, es decir, sumen 1?
A. Sí, porque de lo contrario no se mostrará la gráfica correcta.
B. Sí. En caso contrario Python nos mostrará un error.
C. No, Pie calcula la representación de cada dato en el gráfico de forma automática.
D. No, los valores que se pasan a Pie son de tipo cadena de caracteres y no se pueden sumar.

Para generar una imagen con varias gráficas, ¿qué función debemos utilizar?:
A. add_graph().
B. make_subplots().
C. include_subplot().
D. make_figure().

También podría gustarte