Sei sulla pagina 1di 46

Introducción al lenguaje Python

Roberto Abalde
rabalde@economicas.uba.ar
Roberto Abalde
• Lic. en Ciencias de la
Computación (FCEN, UBA) +
MBA (ESADE, Barcelona) +
Mágister en Data Mining
(FCEN, UBA) + Doctorando
(FCE, UBA)
• Profesor regular adjunto (FCE,
UBA) y regular asociado (UADE)
• Consultor + emprendedor +
malcriador de perros
Python: Descripción
• Creado por Guido van Rossum en
1989. Nombre viene de Monty
Python
• Lenguaje de alto nivel,
interpretado, dinámico
• Soporta múltiples paradigmas
(imperativo, procedural, orientado
a objetos, funcional)
• Corre en todos los sistemas
operativos

Introducción al lenguaje Python 3


Python: Ranking IEEE

Fuente: The 2016 Top Programming Languages


http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages

Introducción al lenguaje Python 4


Python: Analítica/Ciencia de datos

Fuente: KDnuggets 2016 Software Poll Results


http://www.kdnuggets.com/2016/06/r-python-top-analytics-data-mining-data-
science-software.html

Introducción al lenguaje Python 5


Instalación
• Python 3: http://python.org
– Pueden usar la versión 2.7 con algunas
modificaciones en el código
• Notepad++: https://notepad-plus-plus.org
– O cualquier otro editor orientado a programación
– Geany, VisualStudio, Spyder…

Introducción al lenguaje Python 6


Intérprete interactivo
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for
more information.
>>> 3*(7+2)
27
>>> CTRL+D
$

Introducción al lenguaje Python 7


Editar y ejecutar programas
• Crear un programa en un archivo y ejecutarlo

F5

• O ejecutar “python3 test_1.py” en la línea de


comandos
Introducción al lenguaje Python 8
Ejercicio 1
1. Iniciar el intérprete interactivo
2. Escribir print(“hola mundo!”) + enter
3. Ver el resultado

4. Crear el archivo hola.py en el editor


5. Escribir print(“hola mundo!”) + enter
6. Ejecutarlo y ver el resultado

Introducción al lenguaje Python 9


Variables
>>> a = 2
>>> a
2
>>> c = 12.3
>>> c
12.3
>>> a + b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
>>>

Introducción al lenguaje Python 10


Comentarios
>>> a = 12
>>> a
12
>>> # Esta línea y la siguiente son ignoradas
>>> # a = 15
>>> a
12

Introducción al lenguaje Python 11


Números enteros
>>> e = 13 >>> e**2 # elevado al
>>> e+2 # suma cuadrado
15 169
>>> e%2 # módulo (resto)
>>> e-2 # resta 1
11 >>> e//2 # división entera
>>> e/2 # división 6
6.5
>>> e*2 # multiplicación
26

Introducción al lenguaje Python 12


Números flotantes
>>> f = 1421.98 >>> e**2 # elevado al
>>> f+2 # suma cuadrado
1423.98 2022027.1204000001
>>> e%2 # módulo (resto)
>>> f-2 # resta 1.9800000000000182
1419.98 >>> e//2 # división entera
>>> f/2 # división 710.0
710.99
>>> f*2 # multiplicación
>>> # OJO!
2843.96 >>> 3+2*8
19
>>> (3+2)*8
40

Introducción al lenguaje Python 13


Números complejos (!)
>>> c = 3+2j >>> e**2 # elevado al
>>> c+2 # suma cuadrado
(5+2j) (5+12j)
>>> c-2 # resta
(1+2j)
>>> c/2 # división
(1.5+1j)
>>> c*2 # multiplicación
(6+4j)

Introducción al lenguaje Python 14


Cadenas de caracteres
>>> h = "hola " >>> # longitud
>>> m = 'mundo!' >>> len(m)
6
>>> # operaciones >>> # mayúsculas
>>> h + m >>> h + m.upper()
'hola mundo!' 'hola MUNDO!'
>>> h*2 + m >>> # minúsculas
'hola hola mundo!' >>> 'CHAU MUNDO!'.lower()
'chau mundo!'
>>> # título
>>> h + m.title()
'hola Mundo!'

Introducción al lenguaje Python 15


Más funciones
>>> # formateo
>>> "La {0} de 1 + 2 es {1}".format("suma",1+2)
'La suma de 1 + 2 es 3‘
>>> # split
>>> '1 2 3'.split()
['1', '2', '3']
>>> '1;2;3'.split(';')
['1', '2', '3']
>>> # startswith, endswith
>>> 'homero'.startswith('hom')
True
>>> 'homero'.endswith('mer')
False

Introducción al lenguaje Python 16


Conversión entre tipos de datos
>>> 3*12.0, 3.0*12
(36.0, 36.0)
>>> str(3)
'3'
>>> str(3) + ' elefantes'
'3 elefantes'
>>> float('12.3')
12.3
>>> float('12.3') * 10
123.0
>>> int('-23') + (float('12.3') * 10)
100

Introducción al lenguaje Python 17


Booleanos
>>> 20 < 30 >>> True and False
True False
>>> 20 > 30 >>> True or False
True
False >>> not False
>>> 20 == 30 True
False
>>> 20 != 30 >>> 3 == True
True True
>>> 3 == False
>>> a = False False
>>> >>> 0 == False
True
>>> 0 == True
False

Introducción al lenguaje Python 18


Ejercicio 2
• Definir las variables
– “cantidad” con el valor 10
– “precio” con el valor 21.5
– “producto” con el valor “vasos”
• Usando las variables imprimir
“10 VASOS de $ 21.5 cada uno suma un total
de $215”

Introducción al lenguaje Python 19


Listas (1)
>>> # lista vacía
>>> simpson = []
>>> # agregar un ítem
>>> simpson.append('homero')
>>> simpson
['homero']
>>> # agregar una lista
>>> simpson.extend(['marge', 'bart', 'lisa',
'maggie'])
>>> simpson
['homero', 'marge', 'bart', 'lisa', 'maggie']
>>> # cantidad de ítems
>>> len(simpson)
5

Introducción al lenguaje Python 20


Listas (2)
>>> simpson = ['homero', 'marge', 'bart', 'lisa',
'maggie']
>>> # acceso a los ítems de a uno
>>> simpson[0], simpson[1], simpson[-1]
>>> ('homero', 'marge', 'maggie')
>>> # acceso a los ítems por rango
>>> simpson[1:3]
>>> ['marge', 'bart']
>>> simpson[2:]
>>> ['bart', 'lisa', 'maggie']
>>> simpson[:-2]
>>> ['homero', 'marge', 'bart']

Introducción al lenguaje Python 21


Listas (3)
>>> # asignación de ítem
>>> simpson[0] = 'Homero'
>>> simpson
['Homero', 'marge', 'bart', 'lisa', 'maggie']
>>> # ver si un ítem está en la lista
>>> 'ayudante de santa' in simpson
False
>>> 'bart' in simpson
True
>>> # en qué posición está lisa?
>>> simpson.index('lisa')
2

Introducción al lenguaje Python 22


Listas (4)
>>> # ordenar ítems
>>> simpson.sort()
>>> simpson
['Homero', 'ayudante de santa', 'bart', 'lisa',
'maggie', 'marge']
>>> # dar vuelta lista
>>> simpson.reverse()
>>> simpson
['marge', 'maggie', 'lisa', 'bart', 'ayudante de
santa', 'Homero']

Introducción al lenguaje Python 23


Listas (5)
>>> # borrar ítem por índice
>>> del simpson[-1]
>>> simpson
['marge', 'maggie', 'lisa', 'bart', 'ayudante de
santa']
>>> # borrar ítem por contenido
>>> simpson.remove('ayudante de santa')
>>> simpson
['marge', 'maggie', 'lisa', 'bart']
>>> # insertar ítem en un índice
>>> simpson.insert(1, 'homero')
>>> simpson
['marge', 'homero', 'maggie', 'lisa', 'bart']

Introducción al lenguaje Python 24


Listas (6)
>>> uno_a_siete = [1,2,3,4,5,6,7]
>>> # funciones numéricas
>>> sum(uno_a_siete), max(uno_a_siete),
min(uno_a_siete)
28, 7, 1
>>> # cadenas de caracteres como listas
>>> hm = "hola mundo!"
>>> hm[1]
'o'
>>> "hola" in hm
True

Introducción al lenguaje Python 25


Ejercicio 3
• Crear una lista vacía
• Agregarle las materias del CBC (para la
exactas)
• Modificarla para que sean las materias de
económicas
• Ordenarla

Introducción al lenguaje Python 26


Tuplas
>>> colores = ('rojo', 'verde', 'azul')
>>> colores[0]
'rojo‘
>>> # las tuplas no se pueden modificar
>>> colores.append('violeta')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute
'append'

Introducción al lenguaje Python 27


Conjuntos
>>> frutas = {'pera', 'manzana', 'naranja'}
>>> 'manzana' in frutas
True
>>> # no tienen valores repetidos
>>> frutas.add('pera')
>>> frutas
{'manzana', 'naranja', 'pera'}
>>> # operaciones
>>> frutas | {'uva'} # unión
{'pera', 'uva', 'manzana', 'naranja'}
>>> frutas & {'pera', 'uva'} # intersección
{'pera'}

Introducción al lenguaje Python 28


Diccionarios
>>> telefonos = {'ana': 2541, 'pedro': 3323, 'raul':
8323}
>>> telefonos['pedro']
3323
>>> 'ana' in telefonos
True
>>> telefonos.keys()
dict_keys(['raul', 'ana', 'pedro'])
>>> telefonos.items()
dict_items([('ana', 2541), ('raul', 8323), ('pedro',
3323)])

Introducción al lenguaje Python 29


Ejercicio 4
• Crear un diccionario vacío
• Agregarle cuatro ciudades
– Clave: nombre
– Valor: tupla con (latitud, longitud)
• Buscar una ciudad que esté en el diccionario y
una que no esté

Introducción al lenguaje Python 30


if
>>> x = int(input("Ingrese un número entero: "))
Ingrese un número entero: 42
>>> if x == 0:
... print('Cero')
... elif x%2 == 0: # else + if
... print('Es par')
... else:
... print('Es impar')
...
Es par

Introducción al lenguaje Python 31


for (1)
>>> simpson = ['homero', 'marge', 'bart', 'lisa',
'maggie']
>>> for s in simpson:
... print(s, len(s))
...
homero 6
marge 5
bart 4
lisa 4
maggie 6

Introducción al lenguaje Python 32


for (2)
>>> for i in range(5): >>> for i in range(2, 7):
... print(i) ... print(i)
... ...
0 2
1 3
2 4
3 5
4 6
7

Introducción al lenguaje Python 33


for (3)
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, 'es igual a', x, '*', n//x)
... break
... else:
... # se terminó el ciclo sin encontrar un factor
... print(n, 'es primo')
...
2 es primo
3 es primo
4 es igual a 2 * 2
5 es primo
6 es igual a 2 * 3
7 es primo
8 es igual a 2 * 4
9 es igual a 3 * 3

Introducción al lenguaje Python 34


for (4)
>>> for num in range(2, 9):
... if num % 2 == 0:
... print(num, "es un número par")
... continue
... print(num, "es otro número")
2 es un número par
3 es otro número
4 es un número par
5 es otro número
6 es un número par
7 es otro número
8 es un número par

Introducción al lenguaje Python 35


while
>>> x = 77
>>> while x > 0:
... print(x)
... x = x // 2
...
77
38
19
9
4
2
1

Introducción al lenguaje Python 36


Ejercicio 5
• Definir…
– Una lista con los nombres de 5 amigos
– Un diccionario con los teléfonos de 3 amigos
• Imprimir…
– El nombre y teléfono de los amigos de los que
tengo el teléfono
– El mensaje “pedir el telófono a” + el nombre del
amigo

Introducción al lenguaje Python 37


Funciones
# calcula la serie de Fibonacci hasta n
>>> def fib(n):
... a = 0
... b = 1
... serie = []
... while b < n:
... serie.append(b)
... a = b
... b = a+b
... return(serie)
>>> fib(10)
[1, 2, 4, 8]

Introducción al lenguaje Python 38


Módulos
>>> # si la función fib está en el archivo
>>> # fibo.py en el mismo directorio
>>> import fibo
>>> fibo.fib(1000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

>>> # si la función fib está en el archivo


>>> # fibo.py en el directorio fibonacci
>>> from fibonacci import fibo
>>> fibo.fib(10)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

Introducción al lenguaje Python 39


Módulos estándar
>>> # muchísimos módulos vienen con python
>>> # https://docs.python.org/3/library/index.html
>>> import math
>>> math.pi
3.141592653589793
>>> math.cos(math.pi)
-1.0

>>> import random


>>> random.random()
0.05294065656030844
>>> random.random()
0.6326583487999123

Introducción al lenguaje Python 40


Archivos, lectura
>>> f = open('entrada.txt', 'r')
>>> f.read()
'Me verás volar\nPor la ciudad de la furia\nDonde
nadie sabe de mí\nY yo soy parte de todos\n\nNada
cambiará\nCon un aviso de curva\n...' # sigue

>>> f = open('entrada.txt', 'r')


>>> f.readline()
'Me verás volar\n'
>>> f.readline().strip()
'Por la ciudad de la furia‘
>>> f.close()

Introducción al lenguaje Python 41


Archivos, escritura
>>> f = open('salida.txt', 'w')
>>> # devuelve la cantidad de caracteres escritos
>>> f.write('La espera me agotó\n')
18
>>> f.write('no sé nada de vos\n')
17
>>> f.close()

Introducción al lenguaje Python 42


Ejercicio 6
• Leer el archivo “entrada.txt”
• Poner en mayúsculas las palabras con menos
de 3 caracteres y en minúsculas el resto
• Escribir todo en “salida.txt”

Introducción al lenguaje Python 43


Extra: Objetos (1)
class Perro:
def __init__(self, nombre):
self.nombre = nombre
self.trucos = []

def agregar_truco(self, truco):


self.trucos.append(truco)

def ladrar(self):
print('guau! guau!')

Introducción al lenguaje Python 44


Extra: Objetos (2)
>>> d = Dog('Fido')
>>> d.agregar_truco('vueltita')
>>> d.trucos
['vueltita']
>>> d.ladrar()
'guau! guau!'

Introducción al lenguaje Python 45


¿Preguntas?

Introducción al lenguaje Python 46

Potrebbero piacerti anche