Cuestionario 13 - AED
Cuestionario 13 - AED
Cuestionario 13 - AED
Pregunta 1
Correcta
Se puntúa 1 sobre 1
Suponga la siguiente cabecera de una función cuyo bloque de acciones es irrelevante a los efectos de la pregunta:
def ejemplo(a, b=0, c='Desconocido', d='Ingeniero'):
# el bloque de acciones no importa ahora...
¿Cúales de las siguientes invocaciones a esta función son correctas y activan la función sin producir un error de intérprete? (Observación: más
de una respuesta puede ser correcta. Marque todas las que considere válidas... y tómese su tiempo para pensar y probar cada respuesta
posible...)
b. ejemplo('Medico')
d. ejemplo(32, 20)
Pregunta 2
Correcta
Se puntúa 2 sobre 2
Suponga que se quiere desarrollar una función que tome como parámetro una secuencia (un string, una lista, una tupla, o cualquier otro tipo
de colección que permita acceso mediante índices en Python) y que proceda a ordenar esa colección con diversos algoritmos conocidos, en
forma ascendente o descendente a elección de quien invoca a la función.
En ese contexto, considere la siguiente definición para esa función, en la cual no es relevante su bloque de acciones a los efectos de la
pregunta:
def ordenar(lista, ascendente=True, algoritmo='Quicksort'):
# el bloque de acciones no importa ahora...
¿Cuáles de las siguientes invocaciones a esta función son correctas, y no provocarán un error de intérprete? (Observación: más de una
respuesta puede ser válida. Marque todas las que considere adecuadas... y de nuevo: tómese su tiempo!!!)
d. ordenar('azbycx', algoritmo='Shellsort')
Pregunta 3
Correcta
Se puntúa 2 sobre 2
La siguiente función se propone tomar como parámetro el nombre de un empleado y los importes de los últimos sueldos que percibió para
luego mostrar un listado que incluya el nombre recibido y el promedio de sus sueldos:
def procesar(nombre, *importes):
print('Nombre del empleado:', nombre)
p = 0
n = len(importes)
if n != 0:
s = 0
for imp in importes:
s += imp
p = s / n
print('Sueldo promedio:', p)
¿Cuáles de las siguientes invocaciones son correctas, en el sentido de ejecutarse sin problemas y mostrar los resultados pedidos sin provocar
una interrupción del programa? (Observación: más de una respuesta puede ser válida, por lo que marque todas las que considere oportunas).
c. procesar('Luis')
Pregunta 4
Correcta
Se puntúa 1 sobre 1
¿Cuál de las siguientes afirmaciones es incorrecta en relación al concepto de módulo en Python, y/o a elementos asociados al uso de módulos
en Python?
Seleccione una:
a. Un módulo en Python puede tener elementos docstring que documenten su uso y su contenido.
b. Un módulo pensado para ser ejecutado en forma directa debería contener un script de control de la forma if __name__ == '__main__'
para evitar que al ser importado se ejecute en forma inconveniente su posible script principal.
c. Un módulo siempre puede ser importado desde otro módulo, mediante instrucciones import o from import.
d. Cada vez que un módulo es importado en un programa, su contenido es vuelto a compilar por el intérprete.
e. Cuando se usa una instrucción import, Python busca primero si existe un módulo estándar cuyo nombre coincida con el del módulo
importado. Si no lo encuentra, busca entonces en la lista de carpetas indicada por la variable sys.path.
f. Un módulo en Python es cualquier archivo con extensión .py (código fuente que contenga funciones, definiciones generales, clases,
variables, etc.)
Pregunta 5
Correcta
Se puntúa 1 sobre 1
Suponga las siguientes instrucciones import en un programa (note que todos los módulos nombrados en esos import pertenecen a la librería
estándar de Python):
import math
from re import split
from random import random
¿Cuáles de las siguientes invocaciones a funciones son correctas, considerando los import que se acaban de mostrar? (Observación: más de
una respuesta puede ser válida. Marque todas las que considere oportunas)
Pregunta 6
Correcta
Se puntúa 1 sobre 1
En la columna de la izquierda, se nombran algunos de los módulos que existen en la librería estándar de Python. Seleccione el uso o
aplicación de cada uno de estos módulos.
re Reconocimiento de patrones
Correcta
Se puntúa 2 sobre 2
Suponga la definición del siguiente módulo en Python, tal como se muestra, y suponga también que este módulo se ha almacenado en el
archivo "cadenas.py":
def mensaje(m):
print('El mensaje es:', m)
def invertir(m):
print('El mensaje (invertido) es:')
n = len(m)
for i in range(n-1, -1, -1):
print(m[i], end='')
def test():
cadena = input('Ingrese un mensaje: ')
mensaje(cadena)
invertir(cadena)
test()
Suponga ahora que se define otro módulo (almacenado en el archivo "prueba.py" y en la misma carpeta que el módulo "cadenas.py") cuyo
contenido es el siguiente, tal como se muestra:
import cadenas
def principal():
cad1 = 'Universidad Tecnologica Nacional'
cadenas.mensaje(cad1)
cadenas.invertir(cad1)
if __name__ == '__main__':
principal()
¿Cuál de las siguientes afirmaciones describe correctamente lo que ocurrirá si se pide ejecutar el contenido del módulo "prueba.py"?
Seleccione una:
a. El módulo prueba.py está importando al módulo cadenas.py y como este último no incluye un chequeo de la forma if __name__ ==
"__main__", entonces al ejecutar prueba.py se ejecutará primero la función prueba.principal() y luego la función cadenas.test().
b. El módulo prueba.py está importando al módulo cadenas.py y como este último no incluye un chequeo de la forma if __name__ ==
"__main__", entonces al ejecutar prueba.py se producirá un error de intérprete cuando se intente cargar el módulo cadenas.py.
c. El módulo prueba.py está importando al módulo cadenas.py y como este último no incluye un chequeo de la forma if __name__
== '__main__', entonces al ejecutar prueba.py se ejecutará primero la función cadenas.test() y luego la función prueba.principal().
d. El módulo prueba.py está importando al módulo cadenas.py y como prueba.py incluye un chequeo de la forma if __name__ ==
'__main__', entonces al ejecutar prueba.py se ejecutará solamente la función prueba.principal().
Pregunta 8
Correcta
Se puntúa 1 sobre 1
Para cada una de las variables predefinidas de uso global de Python de la primera columna, seleccione la definición que le corresponde o que
mejor se le ajuste.
Pregunta 9
Correcta
Se puntúa 1 sobre 1
Suponga que se tiene un paquete en Python llamado soporte, y que ese paquete contiene cuatro módulos llamados respectivamente modelo,
persistencia, interfaz y excepciones. ¿Cuáles de las siguientes son correctas en relación al archivo __init__.py del paquete soporte? (Más de una
puede ser válida... marque todas las que considere apropiadas)
b. El archivo __init__.py del paquete soporte puede contener una asignación con los nombres de todos o algunos de los módulos
que posee, en la variable __all__.
c. El archivo __init__.py del paquete soporte no puede dejarse vacío. Debe asignar los nombres de los módulos que posee, en la variable
__all__.
d. El archivo __init__.py del paquete soporte debe estar presente en la carpeta de ese paquete, para que Python lo reconozca como
un paquete válido.
Pregunta 10
Correcta
Se puntúa 1 sobre 1
Suponga que se tiene un paquete llamado test en Python, y que ese paquete contiene tres subpaquetes llamados prueba1, prueba2 y prueba3.
Sunpoga además que archivo __init_.py del paquete test contiene solo el siguiente docstring (y ninguna otra asignación o script adicional):
"""El paquete contiene subpaquetes para operaciones de testing de un sistema.
Lista de subpaquetes incluidos:
:prueba1: Contiene un modulo con funciones para testear operaciones de input/output
:prueba2: Contiene dos modulos con funciones para testear manejo de excepciones
"""
¿Hay algún problema con este bloque, en relación al respeto de las convenciones de documentación docstring? (Marque la respuesta que
mejor describa la situación)
Seleccione una:
a. Hay un solo y único problema: debería haber una línea en blanco después de la primera línea del bloque (la descripción de los
subpaquetes debería aparecer luego de esa línea en blanco)
d. Hay un par de problemas: debería haber una línea en blanco después de la primera línea del bloque (la descripción de los
subpaquetes debería aparecer luego de esa línea en blanco); y además, faltaría la descripción del subpaquete prueba3.