0% encontró este documento útil (0 votos)
24 vistas13 páginas

Python TP CEIA 2024

Cargado por

Martin Buñes
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)
24 vistas13 páginas

Python TP CEIA 2024

Cargado por

Martin Buñes
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
Está en la página 1/ 13

INTRODUCCIÓN A PYTHON

CURSOS CEIA
Indice
Trabajo Práctico 01
• Identificadores válidos
• Precedencia de operadores
• Funciones Built-in (print, input y type)
• Tablas de verdad
Trabajo Práctico 02
• Palabras reservadas del lenguaje
• Imprimiendo con Formato
• Funciones Built-in (Constructores)
• Caracteres especiales en Strings
Trabajo Práctico 03
• Tipos Inmutables
• Sintaxis de la estructura de control: for
• Función Built-in (range())
Trabajo Práctico 04
• Tuplas
• Sintaxis de la estructura de control: if
• Métodos para Strings
Trabajo Práctico 05
• Secuencias
• Funciones Built-in
• Operaciones comunes de las secuencias
• Sintaxis de la estructura de control: while
Trabajo Práctico 06
• Funciones
• Parámetros y Argumentos
• Sintaxis para definir una función: def
• Asignación aumentada
Trabajo Práctico 07
• Listas y Diccionarios
• Importando módulos
• Funciones Built-in
• Números pseudoaleatorios
• Métodos de Listas
• Métodos de Diccionarios
• Archivos
• Modo
Trabajo Práctico 08
• Set
• Funciones Built-in
• Métodos de Conjuntos

Referencias
[1] Z. A. Shaw, Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful
World of Computers and Code. Addison-Wesley Professional, 1st ed., 2017.
[2] K. D. Lee, Python Programming Fundamentals. Springer, London, 2nd ed., 2014.
1
INTRODUCCIÓN A PYTHON
CURSOS CEIA
[3] J. Hunt, A Beginners Guide to Python 3 Programming. Springer, Cham, 1st ed., 2019.
[4] J. Hunt, Advanced Guide to Python 3 Programming. Springer Nature Switzerland, 2019.

2
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 1. Operadores y Expresiones
Identificadores válidos en Python: Un identificador es el nombre empleado en un programa
para identificar una variable, una función, etc. Cada lenguaje posee sus reglas para determinar si
un identificador en válido. En Python los identificadores comienzan con una letra (de la A a la Z
o de la a a la z) o con un guión bajo (_) seguido de cero o más letras, guiones bajos y números.
Además, Python diferencia mayúsculas de minúsculas (case sensitive) y NO admite signos de
puntuación ni símbolos como @, $ y % a excepción del guión bajo.

Tabla de operadores ordenados de mayor a menor prioridad [*].


Operador Descripción
∗∗ Exponenciación.
+x, -x positivo, negativo
∗, /, //, % Multiplicación, división, división entera y resto.
+, - Adición y sustracción.
in, not in, is, is not, <, <=, >, >=, !=, == Comparaciones, comprobaciones de membresía
y de identidad.
not x Booleano NOT.
and Booleano AND.
or Booleano OR.

1. Escriba un script en lenguaje Python para resolver las si- Documentación


guientes tareas. Tenga en cuenta las funciones que se listan
en la columna a su derecha [Built-in]. El intérprete de Python tie-
a) Muestre por pantalla la cadena ¡Hola Mundo!. ne una serie de funciones y
b) Almacene la cadena ¡Hola Mundo! en una variable y tipos incluidos en él que es-
luego muestre por pantalla el contenido de la variable. tán siempre disponibles.
c) Pregunte el nombre del usuario en la consola y después Entre ellas:
de que el usuario lo introduzca muestre por pantalla print()
la cadena ¡Hola <nombre>!, donde <nombre> es el input()
nombre que el usuario haya introducido. type()

2. Determine el resultado y el tipo de la variable a luego de la Funciones Built-in


asignación.

a) a = 20 − 5 h) a = (50 − 5 ∗ 6)/2 El capítulo 6 de la documen-


tación explica el significado
b) a = 20 − 10.5 i) a = 2 ∗ ∗3 ∗ ∗2
de los elementos de expre-
c) a = 14/7 j) a = 10 == 10.0 siones en Python.
d) a = 14//7 k) a = 10 ! = 10.1 Expresiones
e) a = −15//7 l) a = not True
f) a = −2 ∗ ∗4 m) a = 0 and True
g) a=2∗∗−1 n) a = 10 > 15
ñ) a = 1 − 0.2 − 0.2 − 0.2 − 0.2 − 0.2
Volver al índice...

3
INTRODUCCIÓN A PYTHON
CURSOS CEIA

3. Complete las tablas de verdad para las proposiciones dadas Documentación


[Tablas de verdad].
Las tablas de verdad sirven
A B C A or B and C A and notC para determinar las con-
V V V diciones de verdad de un
V V F enunciado. Es decir, su
V F V significado, en función de
las condiciones de verdad
V F F
de sus elementos atómicos.
F V V
F V F
F F V A B A and B
F F F
V V V
V F F
4. La desigualdad triangular o desigualdad de Minkowski F V F
establece que en todo triángulo, la suma de las longitudes F F F
de dos lados cualquiera es siempre mayor a la longitud
del lado restante. Utilice esta desigualdad y los conceptos A B A or B
de triángulo isósceles, equilátero y escaleno para escribir V V V
expresiones que permitan evaluar si tres longitudes de V F V
segmento dadas (L1, L2 y L3) cumplen con las siguientes F V V
proposiciones: F F F
A not A
a) Es posible formar un triángulo.
V F
b) Es un triángulo isósceles. F V
c) Es un triángulo equilátero.
d) Es un triángulo escaleno.
El operador lógico Xor
u or exclusivo no está
5. Escriba expresiones aritmético-lógicas que permitan definido en el lenguaje.
evaluar las siguientes propiedades en relación a un número Sin embargo, es posible
entero N: definirlo mediante el uso de
otros operadores. Su tabla
a) Tiene dos dígitos. de verdad es:
b) Pertenece al intervalo semiabierto [0,37).
c) Tiene al menos tres dígitos. A B A xor B
d) Es el predecesor del entero M. V V F
e) Es el sucesor o el predecesor del entero M. V F V
f) Es par. F V V
F F F
g) Es impar y positivo.
h) Es divisor de M y múltiplo de P (donde M y P también
Ejemplo:
son números enteros). xor = not (A == B).
i) No es múltiplo de 3 pero sí de 5.
j) Es múltiplo de 3 y no de 5 o es múltiplo de 5 y no de 3.

Volver al índice...

4
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 2. Bloques Secuenciales
Los siguientes identificadores se utilizan como palabras reservadas, o palabras clave del idioma,
y no pueden utilizarse como identificadores. Recuerde que el leguaje es sensible a mayúsculas y
minúsculas y, por lo tanto, deben escribirse tal cual fueron definidas. [Palabras clave]
Palabras reservadas del lenguaje:
False as await else try pass except raise global or finally if
None in lambda from def break import assert elif and nonlocal del
True is return yield for with while async class not continue
Palabras reservadas suaves (versión 3.10 o superior): match case _

Imprimiendo con Formato:


Un formatted string literal o f-string es un literal de cadena que se prefija con ‘f’ o ‘F’. Estas
cadenas pueden contener campos de reemplazo, que son expresiones delimitadas por llaves {}.
Mientras que otros literales de cadena siempre tienen un valor constante, las cadenas formateadas
son expresiones evaluadas en tiempo de ejecución [f-string].
Ejemplo: cadena = f“Un literal de string {idVariable}"
En Python también es posible dar formato a una cadena empleando el método format() de
la clase str [1, Pág.27]. La cadena de caracteres sobre la que se está ejecutando este método
puede contener texto literal y también marcas de reemplazo definidas mediante llaves {}.
Ejemplo: cadena = “Un literal de string {} bla bla {} bla"
cadena = cadena.format(idVariable, Expresión)

Documentación
1. Sabiendo que una empresa posee 100 autos con capacidad
para 4 personas cada uno, y que en el día de la fecha se El intérprete de Python tie-
encuentran disponibles 30 choferes, determine la siguiente ne una serie de funciones y
información para una lista de espera de 50 pasajeros: La tipos incluidos en él que es-
cantidad de autos disponibles para el traslado de pasaje- tán siempre disponibles.
ros. ¿Cuántos pasajeros más se podrían sumar durante el bool()
día? ¿Cuál es la capacidad de pasajeros ociosa por falta de int()
choferes? float()
2. Se desea implementar un simulador de plazo fijo. Realice un complex()
programa que pregunte al usuario una cantidad a invertir, str()
el interés mensual, el período en meses a depositar y calcule
Funciones Built-in
el capital obtenido al finalizar la inversión.
3. Una juguetería tiene mucho éxito con la venta de baldes
de ladrillitos en sus presentaciones de 350 y 500 gr. El En un literal de string, la ba-
correo los obliga a armar bultos de no más de 10 unidades rra invertida (\) se utiliza
para escapar de los caracte-
cuyo costo final se calcula en función de su peso. Escriba un
res que de otra manera tie-
programa que lea el número de baldes de cada presentación
nen un significado especial.
de un pedido y determine en forma automática el costo \" Comillas dobles
total del envío sabiendo que cada bulto tiene un costo fijo \’ Comilla simple
de 350$ más un proporcional de 125$ por kilo. \\ Barra invertida
4. Dado un entero positivo de cinco cifras n, escriba el bloque \n Enter
de sentencias necesarias para determinar si es capicúa. \t Tab
¿Qué sucedería si no conoce la cantidad de cifras de “n”?
Volver al índice...

5
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 3. Ciclo Definido
Los tipos inmutables del lenguaje son los tipos de datos: numéricos, booleanos, cadenas de
caracteres y Tuplas. Como su propio nombre lo indica, un objeto inmutable una vez creado nunca
cambia su valor. Si bien en apariencia es posible modificar la información de una variable string
o numérica, en realidad durante la asignación estamos cambiando de objeto. [Inmutable]
Para mayor claridad, se sugiere leer el tema “The Reference Types and Assignment Statements” del
libro [2, Pág.20]. [Jerarquía de tipos estándar]

La función range(): Es una función Built-in que produce una secuencia de números enteros.
range(tope): intervalo entre 0 y tope-1 (incremento = 1, tope>0)
range(inicio, tope): intervalo entre inicio y tope-1 (incremento = 1, inicio<tope)
range(inicio, tope, paso): intervalo entre inicio y tope-1 con incremento igual al paso.
Si paso>0 entonces inicio<tope pero si paso<0 entonces inicio>tope.

Documentación
1. Imprima en pantalla la siguiente serie de enteros:
a) 0, 1, 2,..., 20 La sentencia for se usa pa-
b) 0, 3, 6, 9,..., 30 ra iterar sobre los elemen-
c) 1, 4, 9, 16....10000 tos de una secuencia (como
d) 25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25 strings, tuplas, etc) u otro
e) 100, 95, 90, ...., 0 objeto iterable. El número
de iteraciones se conoce an-
2. Dado n un entero positivo, determine el resultado:
tes de ejecutar la instruc-
Pn (−1)i
a) i=0 1+i
ción.
Pn −i
b) for<x>in<secuencia>:
i=1 i
Bloque A

3. Escriba un algoritmo para calcular el valor aproximado de El Bloque A de tareas se


ex empleando la serie de Maclaurin. ejecuta una vez para cada
elemento x proporcionado
ı́nf por la <secuencia>, en el
x
X xi
e = orden establecido en ella.
i=0
i!

4. Implemente un algoritmo que solicite al usuario un entero


positivo n mayor que dos y calcule el enésimo término de
la Sucesión de Fibonacci,
5. Escribir un script que pida al usuario un número entero y
muestre por pantalla un pino de asteriscos cuya altura es el
dato introducido. Ejemplo con altura = 3:
*
***
*****

6. Escriba un bloque de sentencias que permita generar todos Volver al índice...


los números de la forma ABAB con 1 ≤ A ≤ 9 y 9 ≥ B > 0.

6
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 4. Condicionales y Tuplas
Las tuplas son secuencias inmutables, usadas normalmente para almacenar colecciones de datos
heterogéneos [tuple]. Las tuplas se pueden construir de diferentes maneras:
Vacía: Usando un par de paréntesis () o el constructor tuple()
Único elemento: Usando una coma al final a, o (a,)
General: Separando los valores con comas a,b,c o (a,b,c)
Con iterables conocidos: tuple(’hola’) o tuple(range(3))

1. Implemente un script que lea desde la consola el valor


Documentación
del entero N y verifique si cumple con las condiciones del
ejercicio 5 del Trabajo Práctico 1.
La sentencia if se usa para
2. Empleando dos dígitos distintos, A y B, escriba un script la ejecución condicional de
para inicializar al entero M siguiendo las siguientes reglas: código y su sintaxis es:

a) El mayor número entero de dos cifras. if <condición>:


Bloque A
b) El menor número de 4 dígitos intercalando los mismos.
[else:
c) El menor número capicúa de tres cifras. Bloque B]
d) El mayor número capicúa de 5 dígitos. Es decir, se ejecuta el bloque
3. Implemente nuevamente el ejercicio 4 del Trabajo Práctico A de tareas solo si la con-
1 empleando condicionales. dición de cumple, caso con-
tario, se ejecuta el bloque
4. Determine el cuadrante al cuál pertenece un punto en el B. Recuerde que la cláusula
plano representado por una tupla de reales de la forma else es opcional.
(x,y). ¿Qué resultado se obtendría si el punto se encuen-
tra sobre alguno de los ejes cartesianos o ambos? Además del método
format(), los strings
5. Implemente un script que a partir de una tupla de la forma
poseen otros métodos muy
(día,mes,año) determine si corresponde a una fecha váli- útiles:
da. Recuerde que los meses de abril, junio, septiembre y
noviembre tienen 30 días; el mes de febrero puede tener upper()
29 o 28 días dependiendo de si se trata de un año bisiesto lower()
split()
o no; y los meses restantes poseen 31 días. Nota: Un año
replace()
es bisiesto si verifica las siguientes condiciones: es divisible
por 4 pero no por 100 o, es múltiplo de 400. En el siguiente link se pre-
senta la lista completa de
6. Dada la tupla t=(True,False), escriba un bloque de métodos con su explicación
código que le permita verificar los resultados obtenidos en y ejemplos:
el ejercicio 3 del Trabajo Práctico 1. [Métodos para strings]

7. Dada una tupla de enteros (-2,14,5,-7,25,18,30) El string es un tipo inmu-


a) Determine la cantidad de enteros positivos. table. Sus métodos retornan
b) El mínimo valor alamacenado sin usar la función valores nuevos. Es decir, no
modifican el string original.
min().
Volver al índice...

7
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 5. Bucles Condicionados
En muchas aplicaciones es necesario ser capaces de almacenar en memoria, un grupo de datos no
necesariamente heterogéneos denominados secuencias. Las secuencias son contenedores donde
los elementos se almacenan siguiendo un orden. Previamente, se han introducido los tipos
simples (booleanos, enteros, reales, etc) que conceptualmente poseen un único valor asociado y,
las secuencias de datos inmutables range, strings y tuples [Secuencia].
Secuencias inmutables:
Strings: Secuencia de caracteres.
Rangos: Secuencia de enteros.
Tuplas: Secuencia heterogénea de datos inmutables.

1. Implemente nuevamente el ejercicio 1 del Trabajo Práctico Documentación


3 empleando la estructura de control while.
2. Determine el valor aproximado de ex con un error menor El intérprete de Python tie-
a un valor ingresado por el usuario (rever ejercicio 3 del ne una serie de funciones y
Trabajo Práctico 3). Imprima en pantalla la cantidad de tipos incluidos en él que es-
tán siempre disponibles.
términos necesarios para alcanzar la precisión deseada.
Entre ellas:
3. Escriba bloques de sentencias en un script que a partir de
len()
un entero positivo n ingresado por el usuario calcule:
min()
a) Sus dígitos más y menos significativos. max()
b) La cantidad de dígitos del número. any()
c) La cantidad de dígitos pares e impares. all()
d) Un entero con sus dígitos en orden inverso.
Funciones Built-in
e) Un entero solo con los dígitos pares.
4. Implemente un script para determinar: Operadores como el + o el
a) Si un número entero positivo es primo. ∗ poseen otra función si se
b) El máximo divisor entero de un número. los emplea con secuencias.
Consulte las operaciones vá-
5. Implemente un script para determinar si:
lidas, su funcionamiento y
a) Un número entero positivo es capicúa. su prioridad en la siguiente
b) Una cadena de caracteres cumple la condición de ser [Tabla]
un palíndromo.
6. Dada una tupla con valores enteros, determine: La sentencia while se usa
a) Si los valores se encuentran ordenados de mayor a para la ejecución repetida
menor. de una tarea siempre que la
b) Si un elemento n ingresado por el usuario pertenece a condición sea verdadera:
la secuencia. while <condición>:
c) Si contiene los primeros términos de la serie de fibo- Bloque A
nacci. Es decir, se ejecuta el blo-
que A de tareas tantas
veces mientras la <condi-
ción>sea verdadera.
Nota: En los incisos cuya información de entrada es un
valor entero complete la tarea trabajando siempre con
datos numéricos. Volver al índice...

8
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 6. Funciones
Un método para resolver un problema complejo consiste en subdividirlo en subproblemas más
sencillos que, a su vez, pueden resolverse aplicando la misma metodología. Siguiendo esta estra-
tegia, la resolución comienza con una descomposición modular y luego nuevas descomposiciones
de cada módulo en un proceso de refinamiento sucesivo o stepwise. Esta técnica se denomina
diseño descendente o top-down debido a que se comienza en la parte superior con el problema
general y se diseñan soluciones específicas para cada subproblema. Una forma de modularizar el
código es implementando funciones para resolver tareas específicas. [Definición de funciones ]

En el momento de la definición de una función es posible declarar parámetros como información


de entrada a la subrutina. Los identificadores de los parámetros que se utilizan en el momento
de la declaración se denominan parámetros formales y son los identificadores empleados dentro
del cuerpo de ejecución del módulo. Luego, durante la invocación del subprograma los datos
literales, las expresiones o las variables con los cuales son llamados se denominan argumentos o,
parámetros actuales, reales o efectivos. [Parámetros versus Argumentos]
Para mayor claridad, se sugiere leer los temas del capítulo “Functions in Python” del libro [3,
Sección 11.5, pág.119 y Sección 11.8, pág.124; respectivamente].

1. Realice una función para convertir un valor en kilómetros Documentación


por hora [km/h] a metros por segundo [m/s] y otra con la
operación inversa que convierta de [m/s] a [km/h]. Sintaxis para definir una
2. Implemente funciones para modelar las operaciones lógicas función:
xor, nand y nor. Consulte las tablas de verdad de cada def idFuncion(*):
una de ellas en: [Operaciones lógicas] [return]

3. Transforme los bloques de sentencias pedidos en los ejerci- •Una función puede recibir
o no parámetros (*).
cios 3 y 6 del Trabajo Práctico 5 en funciones.
•La sentencia return es op-
4. Implemente el ejercicio 3 del Trabajo Práctico 4 utilizando
cional y permite que la fun-
las funciones esTriangulo y tipoDeTriangulo. Esta ción retorne al menos un re-
última deberá invocarse solo si las longitudes de los seg- sultado.
mentos ingresados por el usuario conforman un triángulo.
5. Escriba una función que dada la altura y un caracter dibuje [Asignación aumentada]
un pinito de dicho caracter siguiendo las especificaciones
del ejercicio 5 del Trabajo Práctico 3. En caso de que el usua- Operador Descripción
rio no especifique un caracter al momento de la invocación x += a x = x+a
x -= a x = x-a
utilice * por defecto.
x *= a x = x*a
6. Implemente una función fecha_valida. Rever el ejerci- x /= a x = x/a
cio 5 del Trabajo Práctico 4. x %= a x = x %a
x //= a x = x//a
7. Escriba una función que realice la operación CamelCase
x **= a x = x**a
de una cadena de caracteres. Su función deberá retornar
una nueva cadena de caracteres sin espacios y con las pala-
bras de la cadena original formateada con la primera letra
en mayúscula y todas las restantes en minúscula. Ejemplo: Volver al índice...
Entrada = "hola mundO" Salida = "HolaMundo"

9
INTRODUCCIÓN A PYTHON
CURSOS CEIA
8. Realice funciones apropiadas para realizar cada una de Documentación
las siguientes consultas a partir de una tupla de fechas de
nacimientos que contiene las fechas de nacimiento de [Parámetros]
un grupo de personas con el formato (dia, mes, año). En el momento de la decla-
Ayuda: Es posible identificar unívocamente a una fecha ración es posible asignar va-
a partir de un número entero de la forma Año*10000+ lores por defecto o predeter-
Mes*100+ Día. minados a los parámetros de
a) ¿Existe algún mes sin cumpleaños? De no existir retor- las funciones. Los paráme-
ne None. tros por defecto se declaran
b) Todos los meses sin cumpleaños. luego de los parámetros fi-
c) El promedio de edad del grupo. jos. En consecuencia, la fun-
d) El último y el primer cumpleaños del año. ción podrá recibir menor nú-
mero de argumentos. Los va-
9. Dada una tupla con información de círculos en el plano, im- lores de los parámetros pre-
plemetente funciones para realizar las siguientes consultas determinados se evalúan de
de interés: izquierda a derecha cuando
a) Determinar cuál es el círculo cuyo centro se encuentra se ejecuta la definición de la
más cercano a un (x,y) dado y a qué cuadrante función.
pertenece.
b) Determinar cuántos círculos dentro de la estructura se [Cardinalidad]
encuentran centrados sobre los ejes de coordenadas. Si una función espera re-
circulos = (c1 , c2 , . . . , cn ), donde cada ci = (ri , (xi , yi )) cibir un número arbitrario
(desconocido) de argumen-
es otra tupla con la magnitud del radio y las coordenadas
tos, estos argumentos llega-
del centro del círculo en el plano XY.
rán en forma de tupla. Pa-
10. Analice los siguientes bloques de código, verifique la salida ra definir un argumento de
en pantalla y determine a qué variable a hace referencia en longitud arbitraria en una
cada caso: función, se antecede al pa-
rámetro formal con un aste-
a) def subrutina(): risco (*). También es posible
a = 2 obtener parámetros arbitra-
print(a) rios como pares del tipo cla-
a = 5 ve=valor. En estos casos, los
subrutina() argumentos llegan en forma
print(a) de diccionario y, al nombre
del parámetro deben prece-
derlo dos astericos (**).
b) def subrutina():
print(a) [Argumentos]
subrutina() El lenguaje permite la
a = 5 invocación de subrutinas
print(a) empleando dos tipos de
argumentos, argumentos
por posición o por nombre.

Volver al índice...

10
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 7. Listas y Dicccionarios
Las listas y los diccionarios son estructuras de datos nativas del lenguaje con la capacidad de
ser heterogéneas y mutables. Es decir, admiten almacenar elementos de distinto tipo y una vez
creadas su contenido se puede modificar sin cambiar de objeto. [Estructuras de Datos].
Una propiedad sorprendente de estas estructuras es su capacidad de crear nuevas listas o
diccionarios basados en listas o diccionarios pre-existentes de forma inteligente, intuitiva y
concisa en una única sentencia. Consultar: [Comprensión Listas] y [Diccionarios].

Importando módulos:
Un módulo es un archivo .py que alberga un conjunto de funciones, variables o clases que pueden
ser usados por otros módulos. Importar un módulo requiere de la palabra reservada import y
su sintaxis es:
import <idModulo>
Para mayor claridad se sugiere leer el tema “Importing Python Modules” del libro [3, Sección 25.4,
pág.284].

1. Implemente funciones que retornen las siguientes listas de Documentación


enteros:
El intérprete de Python tie-
a) Los primeros n términos de la sucesión de Fibonacci. ne una serie de funciones y
b) Todos los números primos comprendidos entre 1 y un tipos incluidos en él que es-
valor n. tán siempre disponibles.
c) Todos los divisores de n comprendidos en el intervalo Entre ellas:
cerrado [1, n].
list()
2. Implemente funciones que retornen listas de enteros de n dict()
elementos de la forma: sorted()
zip()
a) Valores aleatorios entre [0, 100].
Funciones Built-in
b) Valores aleatorios entre [-x, x].
c) Los primeros n números impares ordenados de mayor
a menor. El módulo random imple-
3. Implemente funciones que dada una lista de la forma del menta generadores de nú-
meros pseudoaleatorios pa-
ejercicio 2.b, determine o retorne:
ra varias distribuciones. En
a) Si todos sus elementos son impares.
particular, para números en-
b) Si los valores negativos de la lista solo se encuentran teros existe una selección
en posiciones pares. uniforme dentro de un ran-
c) Una nueva lista que contenga sólo los valores positivos go. [Random]
ordenados de menor a mayor.
d) Si el contenido de la lista es monótono creciente.
4. Dada una lista de números enteros con repeticiones orde-
nado en forma descendente, se desea generar otra lista con
pares (número, frecuencia) con la información de la fre-
cuencia de aparición de cada uno. Por ejemplo, si l tiene los
números [9,7,7,6,5,3,3,3,1,1,1] la lista frecuencia debe
Volver al índice...
contener los pares [(9,1),(7,2) ,(6,1) ,(5,1) ,(3,3) ,(1,3)].

11
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Documentación
5. Realice funciones apropiadas para realizar cada una de
las siguientes operaciones a partir de una lista de fechas Métodos de las listas:
nacimientos que contiene las fechas de nacimiento de append()
un grupo de personas (dia, mes, año). count()
a) Extraer de la lista el cumpleaños de la persona más insert()
joven. remove()
b) Ordenar la lista por orden cronológico. Implemente su
[Métodos de Listas]
propio algoritmo de ordenamiento.
6. Implemente los siguientes diccionarios que a cada clave
Métodos de los diccionarios:
entera le asocie los siguiente valores:
a) El máximo divisor entero distinto de si mismo. get()
b) La lista completa de divisores del número. items()
keys()
7. Dado un diccionario del tipo (dato: máximo divisor entero values()
distinto de si mismo) construya un nuevo diccionario que
[Métodos de Diccionarios]
no contenga a los números primos.
8. Construya un diccionario a partir de la información Métodos compartidos:
contenida en la tupla del ejercicio del ejercicio 8 del
pop()
Trabajo Práctico 6. Su diccionario será de la forma clear()
nacimientos={‘enero’: [(dia, año),..], ‘febrero’:. . . .}. copy()
Vuelva a implementar las funciones teniendo en cuenta
la nueva estructura.
Volver al índice...

Python nos permite trabajar con el sistema de archivos y directorios brindando una opción de
entrada y salida de información de un programa. Un método simple es trabajar con archivos
manipulando su lectura y escritura a nivel de la aplicación. Los archivos en Python son objetos de
tipo file creados mediante la función open(). Esta función toma como parámetros una cadena
con el path o ruta al archivo a abrir, que puede ser relativa o absoluta, una cadena opcional
indicando el modo de acceso, entre otros parámetros opcionales [open()].
Ejemplo:
archivo = open(‘miarchivo.txt’, mode =‘x’, encoding =‘utf-8’)
Consultar [Text I/O] y, para mayor claridad, se sugiere leer el tema en el capítulo 18 “Reading
and Writing Files” del libro [4, pág.215].
Parámetro mode: es una cadena de caracteres opcional que especifica el modo en el cual el
archivo es abierto. Por defecto, su valor es ‘rt’.
•‘r’: abierto para lectura (por defecto)
•‘w’: abierto para escritura
•‘x’: crea el archivo y falla si existe otro con el mismo nombre
•‘a’: abierto para escritura, añadiendo al final del archivo si este fue creado previamente
•‘b’: modo binario
•‘t’: modo texto (por defecto)
•‘+’: abierto para su actualización

12
INTRODUCCIÓN A PYTHON
CURSOS CEIA
Trabajo Práctico 8. Conjuntos
En Python un objeto del tipo conjunto o set es una colección no ordenada de objetos diferentes
entre sí. En la actualidad hay dos tipos básicos de conjuntos: set y frozenset. La clase set es
mutable, es decir, el contenido del conjunto puede ser modificado a través de sus métodos. En
cambio, la clase frozenset es inmutable y, por tanto, sus datos pueden ser utilizados como claves
de diccionario o como elementos de otro conjunto.
Consultar [Sets] y, para mayor claridad, se sugiere leer el tema en el capítulo 32 “Sets” del
libro [3, pág.379].

Documentación
1. Dados dos sets con nombres de estudiantes, uno con los
anotados para rendir el siguiente examen y el otro con
los inscriptos para rendir el proyecto final, implemente El intérprete de Python tie-
funciones para responder las siguientes consultas: ne una serie de funciones y
tipos incluidos en él que es-
a) ¿Cuáles son los estudiantes anotados en el examen y tán siempre disponibles.
en el proyecto final? Entre ellas:
b) ¿Cuáles son los estudiantes que solo se presentan a set()
una de las instancias de evaluación?
c) ¿Cuántos son los estudiantes anotados en total? Funciones Built-in
d) ¿Cuáles son los estudiantes que solo presentan el pro-
yecto final? Los conjuntos poseen méto-
dos muy útiles:
2. Escriba funciones para retornar el conjunto de:
add()
a) Palabras que aparecen en dos archivos de texto distin- remove()
tos. clear()
b) Todas las posiciones en las que un caracter dado apa- pop()
rece en una cadena. update()
c) Las letras que aparecen en todas las líneas de un ar- Y con operaciones matemá-
chivo de texto. ticas de conjuntos típicas a
disposición:
3. La Criba de Eratóstenes es un algoritmo que permite ha-
llar todos los números primos menores que un número difference()
natural dado. A partir del conjunto de números naturales intersection()
comprendidos entre 2 y n escriba una función que retorne union()
el conjunto de números primos menores que n empleando En el siguiente link se pre-
dicho algoritmo. senta la lista completa de
métodos con su explicación
4. Se desea representar un mapa con algunas de las principales y ejemplos:
ciudades del país y la comunicación entre las mismas. A
partir de una lista de ciudades y un diccionario con una [Métodos de Conjuntos]
ciudad como clave y un conjunto de cuidades aledañas a
ella como valor, implemente una función para determinar
todas las ciudades que se pueden alcanzar desde una ciudad
dada.

Volver al índice...

13

También podría gustarte