APUNTES - Pensamiento-Computacional-Con-Python
APUNTES - Pensamiento-Computacional-Con-Python
Introducción al
Bagde
del curso
Pensamiento
Computacional
con Python
David Aroesti
Objetivos
● Aprender a resolver problemas de manera
computacional
Introducción a la serie
Introducción al
pensamiento
computacional
Módulo 1
Cómputo y computadoras
Módulo 1
¿Cómo dar instrucciones?
● Algoritmos (IMPERATIVOS)
Un algoritmo es una lista finita de
instrucciones que describen un
cómputo, que cuando se ejecuta con
ciertas entradas (inputs) ejecuta
pasos intermedios para llegar a un
resultado (output).
John V. Guttag
def main():
print('hello world!')
if __name__ == '__main__':
main()
Programación
● Turing completeness
● Sintaxis
Define la secuencia de símbolos que está bien
formada.
● Semántica estática
Define qué enunciados con sintaxis correcta
tienen significado
● Semántica
Define el significado. En los lenguajes de
programación sólo hay un significado.
Módulo 2
Introducción a Python
Elementos básicos
de Python
Módulo 2
Lenguajes de programación
>>> 1 + 2
>>> 1 3.0 # error sintáctico
>>> 5 / 'Platzi' # error semántico estático
>>> 5 * 'Platzi'
# statement o enunciado
>>> print('Hello, Platzi!)
>>> 2 + 2
4
>>> type(my_int)
>>> type(my_float)
>>> type(my_bool)
>>> type(my_none)
>>> 1 + 2
>>> 2 - 5
>>> 2.0 * 3
>>> 6 // 2
>>> 6 // 4
>>> 6 / 4
>>> 7 % 2
>>> 2**3
Asignación de variables
a = 2
x = 4
z = (a * x) / 2
base = 2
altura = 4
area = (base * altura) / 2
>>> my_var = 'Hello, Platzi'
>>> print(my_var)
Hello, Platzi
>>> my_var = 3
>>> print(my_var)
3
... ...
... ...
GARBAGE COLLECTOR
... ...
... ...
Módulo 2
Cadenas
>>> '123'
>>> '123' * 3
● len (longitud)
● Indexing (indexación)
● slicing (rebanadas)
○ my_str[comienzo:fin:pasos]
Cadenas (strings)
A B A and B A or B Not B
if 3 > 2:
print('3 es mayor que 2')
if <condition>:
<expresion>
else:
<expresion>
if 5 <= 10:
...
else:
print('5 no es mayor o igual que 10')
if <condition>:
<expresion>
elif <condition>:
<expresion>
else:
<expresion>
if 4 > 5:
...
elif 4 < 5:
print('4 es menor que 5')
else:
...
Iteraciones
Módulo 2
Iteraciones (loops)
Programas numéricos
Enumeración
exhaustiva
Módulo 3
Enumeración exhaustiva
Un algoritmo de fuerza bruta, ya que aprovecha
la velocidad de las computadoras para realizar todas las
verificaciones posibles hasta dar con el resultado.
Ejemplo del calculo de la raiz cuadrada de un numero
suma(2, 3)
Argumentos de
Keyword y valores
por defecto
def nombre_completo(nombre, apellido, inverso=False):
if inverso:
return f'{apellido} {nombre}'
else:
return f'{nombre} {apellido}'
nombre_completo('David', 'Aroesti')
nombre_completo('David', 'Aroesti', inverso=True)
nombre_completo(apellido='Aroesti', nombre='David')
Alcance
def func1(un_arg, una_func):
def func2(otro_arg):
return otro_arg * 2
valor = func2(un_arg)
return una_func(valor)
un_arg = 1
def cualquier_func(cualquier_arg):
return cualquier_arg + 5
func1(un_arg, cualquier_func)
Especificaciones
del código
Módulo 4
def suma(a, b):
"""Suma dos valores a y b.
Módulo 4
Recursividad
● Algorítmica
Una forma de crear soluciones utilizando el
principio de “divide y vencerás.”
● Programática
Una técnica programática mediante la cual una
función se llama a sí misma.
Factoriales
Factoriales
Números Fibonacci
Fibonacci
Módulo 5
Módulo 5
Tuplas
Módulo 5
Rangos
Módulo 5
Listas y mutabilidad
Módulo 5
Diccionarios
Pruebas y debugging
Pruebas de caja negra
Módulo 6
Pruebas de caja negra
Módulo 6
Primer BUGG de la historia
-Literalmente un bicho en una maquina-
Reglas generales
Reglas generales
● No te molestes con el debugger. Aprende a utilizar el print
statement.
● Vete a dormir.
Módulo 7
Excepciones y afirmaciones
Manejo de
excepciones
Módulo 7
Manejo de excepciones
Módulo 7
Afirmaciones
● Programación defensiva
def primera_letra(lista_de_palabras):
primeras_letras = []
primeras_letras.append(palabra[0])
return primeras_letras
Cierre del curso
Conclusiones