Está en la página 1de 33

CURSO PROPEDÉUTICO

INTRODUCCIÓN A LA PROGRAMACIÓN
CON PYTHON - CLASE #2
2

OBJETIVO GENERAL
▸ Utilizar las estructuras repetitivas y de control, en conjunto con las estructuras
de datos, en la solución de problemas.
3

CONTENIDO
▸ Identación

▸ Estructuras de control: If-elif-else

▸ Listas, tuplas y diccionarios

▸ Estructuras repetitivas (Bucles)

▸ Trabajo con cadenas de caracteres


4

IDENTACIÓN
▸ En el lenguaje formal escrito, identación es lo que comúnmente conocemos
como sangría.

▸ No todos los lenguajes de programación. necesitan de una identación. Se


implementa con el objetivo de otorgar mayor legibilidad al código fuente.

▸ En el caso de Python, la identación es obligatoria y de ella depende la


estructura del código.
5

ESTRUCTURA DE CONTROL: IF-ELIF-ELSE


if condición1:

bloque código

elif condición2:

bloque código

...

else:

bloque código
6

ACTIVIDAD #1
▸ Escribir un programa que pida al usuario dos números y muestre por pantalla
su división. Si el divisor es cero el programa debe mostrar un error.

▸ Escribir un programa que pida al usuario un número entero y muestre por


pantalla si es par o impar.

5 minutos
7

LISTAS
▸ Conjuntos ordenados de elementos, encerrados por
corchetes y separados por comas

▸ El orden comienza con el índice 0 para el primer lugar


de la lista

▸ Para acceder a un elemento de la lista se usa el índice


del elemento dentro de los corchetes
8

LISTAS: NOTACIÓN SLICE


▸ Podemos acceder una sub-lista a través de la notación
slice:

variable[inicio:fin:incremento]
9

LISTAS: RANGOS
▸ El tipo range es una lista inmutable de
números enteros en sucesión aritmética

▸ Los rangos se crean mediante:

▸ range(fin)

▸ range(inicio, fin, salto)

▸ Si se quisiera generar una lista a partir de un


rango se hace typecast con el tipo list:
10

LISTAS: FUNCIONES ÚTILES


▸ len(s) Retorna el tamaño (el número de elementos) de la
lista s

▸ min(s) Retorna el elemento más pequeño de la lista s

▸ sum(s) Retorna la suma de todos los números de la lista s

▸ max(s) Retorna el elemento más grande de la lista s


11

LISTAS: FUNCIONES ÚTILES


▸ append(x) Añade un elemento x al final de la lista

▸ count(x) Retorna el número de veces que el elemento x aparece en la lista

▸ extend(lista) Añade todos los elementos de una lista a la lista actual

▸ index(x) Retorna el índice de la primera aparición de elemento x en la lista

▸ insert(indice, x) Inserta un elemento x en el índice especificado.

▸ pop(i) Retorna en la variable z el elemento de la lista de índice i, y elimina el


elemento de la lista. El parámetro i es opcional, si no se especifica, z =
List.pop() remueve y retorna el último elemento.

▸ reverse() Invierte el orden de los elementos de la lista

▸ remove(x) Remueve la primer aparición del elemento x en la lista

▸ sort() Da orden ascendente a los elementos de la lista


12

ACTIVIDAD #2
Dada la siguiente lista anidada:

lista = [[['naranja', 'pera', 'manzana'], ‘limón', ‘pepino', ['habanero', 'jalapeño']], 'enchiladas', ‘pozole’]

Accede a los elementos mencionados.

1. pera

2. habanero

3. pozole

4. [limón, pepino]

5. [habanero, jalapeño]

6. Último elemento de la colección de frutas

7. Último elemento de la colección de chiles

▸ Modifica el elemento pepino por [calabaza, zanahoria]

5 minutos
13

TUPLAS
▸ Son objetos de tipo secuencia. Específicamente es un
tipo de lista inmutable. Esta no puede modificarse de
ningún modo después de su creación.

▸ Podemos usar Tuplas para empaquetar valores con


diferentes tipos de datos

▸ El uso de un guión bajo (_) en el desempaquetado omite


la asignación del valor en una posición dada
14

DICCIONARIOS
▸ El diccionario, define una relación uno a uno
entre clave y valor

▸ Los diccionarios se crean colocando una lista


separada por coma de pares clave:valor entre
llaves {}
15

DICCIONARIOS (CONTINUACIÓN)
▸ Es posible iterar sobre objetos del tipo diccionario usando
3 métodos auxiliares:

▸ items()

▸ keys()

▸ values()

▸ Para evitar errores, al tratar de acceder elementos


inexistentes en un diccionario, se debe verificar que el
elemento existe.
16

DICCIONARIOS: MÉTODOS ÚTILES


▸ clear() Elimina todos los ítems del diccionario dejándolo
vacío

▸ pop(clave) Recibe como parámetro una clave, elimina esta


y devuelve su valor. Si no lo encuentra, devuelve error

▸ update(diccionario) Recibe como parámetro otro


diccionario. Si se tienen claves iguales, actualiza el valor
de la clave repetida; si no hay claves iguales, este par
clave-valor es agregado al diccionario

▸ del diccionario[clave] Sirve para borrar un elemento del


diccionario
17

ACTIVIDAD #3
Escribir un programa que cree un diccionario de traducción español-inglés. Las
traducciones se guardarán de manera que la clave sea la palabra en español y su
valor la traducción al inglés:

Ej: diccionario = { ‘hola’: ‘hello’ }

El programa pedirá al usuario una palabra en español y utilizará el diccionario


para traducirla dicha palabra y mostrar el resultado al usuario.

Si la palabra no existe en el diccionario mostraremos un mensaje de que no


encontramos la traducción

5 minutos
18

ESTRUCTURAS REPETITIVAS (BUCLES)


▸ Bucle condicional while

▸ Bucle iterativo for


19

ESTRUCTURAS REPETITIVAS: WHILE


▸ Repite la ejecución del bloque de código mientras la
expresión lógica condición sea cierta

▸ Sintaxis:

while condición:
bloque código
20

ESTRUCTURAS REPETITIVAS: FOR-IN


▸ Repite la ejecución del bloque de código para cada
elemento de la secuencia, asignado dicho elemento a
la variable de iteración (i) en cada repetición.

▸ Sintaxis:

for i in secuencia:
bloque código

▸ Se utiliza fundamentalmente para recorrer colecciones


de objetos como cadenas, listas, tuplas o diccionarios.
21

ESTRUCTURAS REPETITIVAS: CARACTERÍSTICAS


▸ Se utilizan para repetir un bloque de código una
determinada cantidad de veces.

▸ Las estructuras repetitivas pueden anidarse dentro de


otras.

▸ La palabra reservada break detiene el bucle.

▸ La palabra reservada continue salta a la siguiente


iteración.
22

ESTRUCTURAS REPETITIVAS: INSTRUCCIONES ÚTILES


▸ range(fin): Genera una secuencia de números enteros desde 0 hasta fin - 1:

▸ Ejemplo: range(5) genera la secuencia: 0, 1, 2, 3, 4

▸ range(inicio, fin, salto): Genera una secuencia de números enteros desde inicio
hasta fin-1 con un incremento de salto

▸ Ejemplo: range(1, 15, 3) genera la secuencia: 1, 4, 7, 10, 13

▸ Si se quisiera generar una lista a partir de un rango se hace typecast con el tipo list:

▸ list(range(1, 15, 3)) -> [1, 4, 7, 10, 13]


23

ESTRUCTURAS REPETITIVAS: INSTRUCCIONES


ÚTILES (CONTINUACIÓN)
▸ enumerate(objeto) permite enumerar un objeto
iterable

▸ Opera recibiendo como argumento cualquier objeto


iterable y retornando uno nuevo cuyos elementos son
tuplas de dos elementos:

1. Un índice (posición a partir del cero)

2. Valor del elemento que se encuentra en esa


posición en el objeto iterable original
24

ACTIVIDAD #4
▸ Escribir un programa que pida al usuario un número entero positivo y muestre
por pantalla si es primo o no

▸ Escribir un programa que muestre por pantalla la tabla de multiplicar del 1 al


10

10 minutos
25

LAS CADENAS DE CARACTERES


▸ Las cadenas cortas son se componen de caracteres
encerrado entre comillas simples (') o dobles (")

▸ Las cadenas largas se componen de caracteres


encerrados entre grupo comillas triples simples (''') o
dobles (""")
26

CADENAS DE CARACTERES: PREFIJOS


▸ f/F, indica que se trata de una cadena con formato

▸ r/R, indica que se trata de una cadena raw (del inglés,


cruda). Las cadenas raw se distinguen de las normales
en que los caracteres escapados mediante la barra
invertida (\) no se sustituyen

▸ u/U, el cual indica, que se trata de una cadena que


utiliza codificación unicode
27

CADENAS DE CARACTERES: CONCATENACIÓN


▸ Concatenar dos cadenas significa unirlas, se realiza
mediante el operador de suma (+). Se debe tener en
cuenta que debes marcar explícitamente dónde
quieres los espacios en blanco y colocarlos entre
comillas
28

CADENAS DE CARACTERES: MULTIPLICACIÓN


▸ Se utiliza el operador de multiplicación (*) para crear
múltiples copias de una cadena
29

CADENAS DE CARACTERES: SUB-CADENAS


▸ Podemos utilizar la funcionalidad slice de las listas para
acceder y retornar una sub-cadena

▸ La sintaxis de define a continuación, donde el valor de


fin nunca se toca

cadena[inicio:fin:salto]
30

CADENAS DE CARACTERES: FORMATO


▸ Es possible modificar el formato de cualquier cadena
de caracteres.

▸ Para hacerlo usamos cualquiera de los métodos:

▸ Mediante el prefijo f

▸ Mediante la utilidad format al cual pasamos los


valores a ser remplazados
31

CADENAS DE CARACTERES: MÉTODOS ÚTILES


▸ lower() Convierte todos las letras a minúsculas

▸ upper() Convierte todos las letras a mayúsculas

▸ capitalize() Convierte el primer caracter a mayúscula

▸ swapcase() Convierte todos las letras a mayúsculas o minúsculas

▸ title() Convierte el primer caracter de cada palabra a mayúscula

▸ replace(ref, valor) Retorna una nueva cadena reemplazando las apariciones de ref
por valor

▸ count(character) Retorna el número de veces que el caracter aparece en la cadena

▸ split(token) Devuelve una lista de sub-cadenas cortando en cada aparición de


token.

▸ find(x) Retorna el índice de la primera aparición de elemento x en la cadena


32

CADENAS DE CARACTERES: MÉTODOS ÚTILES


▸ isdigit() devuelve True si la cadena representa un
número entero

▸ isalnum() devuelve True si la cadena contiene


solamente números y letras.

▸ startswith(x) devuelve True o False si la cadena inicia


con la sub-cadena x

▸ endswith(x) devuelve True o False si la cadena termina


con la sub-cadena x
33

ACTIVIDAD #5
▸ Escribir un programa que pregunte al usuario la fecha de su nacimiento en el
formato dd/mm/aaaa y muestra por pantalla, el mensaje “Nació el día X del
mes Y del año Z”. Adaptar el programa anterior para que también funcione
cuando el día o el mes se introduzcan con un solo carácter ej: 3/8/1990.

10 minutos

También podría gustarte