File contents
#### PRIMEROS COMANDOS
>>> 5 + 76
# Ojo, la indentación inicial IMPORTA.
>>> 5 + 76
# TIRA ERRROR! CUIDADO CON LA INDENTACIÓN
# Potencias
>>> 2 ** 3
8
# División entera
>>> 13 // 3
4
# Variables:
>>> a = 56
>>> a
56
>>> print(a)
56
# Cadenas de caracteres.
>>> mensaje1 = "hola "
>>> mensaje2 = " mundo!"
>>> mensajeFinal = mensaje1 + mensaje2
>>> mensajeFinal
'hola mundo!'
>>> mensajeFinal[2]
'l'
>>> mensajeFinal[0]
'h'
# Se indexa desde el 0.
>>> mensajeFinal[2:4]
'la'
>>> mensajeFinal[2:-1]
>>> mensajeFinal[2:-3]
# Los tipos de datos NO se mezlcan.
45 + "hola"
70 + "10"
# Estas cosas generan un ERROR.
# 45 y "45" son dos cosas distintas.
# Hay funciones para convertir los tipos:
str(45) + "hola"
90 + int("10")
float("30.12") # Para números en punto flotante.
### LISTAS
>>> lista = ["Buenos Aires", "Rosario", "Mar del Plata", "Mendoza"]
>>> lista
['Buenos Aires', 'Rosario', 'Mar del Plata', 'Mendoza']
>>> [0]*10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> [[0]*10]*10
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
>>> lista[2]
'Mar del Plata'
>>> lista[1:3]
['Rosario', 'Mar del Plata']
# Se pueden hacer listas con tipos de datos mezclados...
>>> lista2 = ["Jorge", "Alberto", 45, "Pedro"]
### EJERCICIO. ¿Cómo accedo a la tercera letra del segundo elemento de la lista?
Forma 1
>>> elem = lista[1]
>>> elem[2]
's'
Forma 2
>>> lista[1][2]
's'
####
# Un ciclo.
>>> a = 1
>>> suma = 0
>>> while a <=10:
print(suma)
suma = suma + a
a = a + 1 # Observar que en la consola también hay que incluir todos los 'tabs' para tener una correcta indentación.
#### PASAR A PROGRAMAS EN SCRIPT.
# Cómo comentar código en Python:
# con el caracter '#'
# Para comentar bloques de código se pueden usar cadenas <<triplemente comilladas>>.
# Ejemplo:
"""
esta es una cadena
con comillas triples.
"""
# Ciclos
# ATENCIÓN CON LA INDENTACION!
a = 1
suma = 0
while a <=10:
suma = suma + a
a = a + 1
print(suma)
# Otra manera de hacer lo mismo, usando el for.
suma = 0
for n in range(11):
suma = suma + n
print(suma)
# Qué da range(n)?
# Vectores para usar como índices de manera rápida.
>>> range(3,16)
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
>>> range(3,16,3)
[3, 6, 9, 12, 15]
# Concatenar todos los elementos de una lista de caracteres.
lista = ["hola ", "estimado ", "mundo!"]
cadena = ""
for c in lista:
cadena = cadena + c
print(cadena)
# Funciones sobre una lista.
len(lista) # Longitud
lista.append("Saludos")
lista.remove("mundo!")
lista.remove("adios") # Tira error si el elemento no se encuentra.
lista.pop() # Funcionalidad de una pila, devuelve y saca el ultimo elemento.
# Qué hacen lista.pop(0), lista.pop(1), lista.pop(2)?
# Matrices == lista de listas.
mat = [ [1,5,9], [4,-1,4]]
mat[0][2]
mat2 = [ [[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10,11,12], [13,14,15], [16,17,18]], [[19,20,21], [22,23,24], [25,26,27]] ]
mat2[1][0][0]
## Para usar los archivos desde la consola
>>> import miArchivoEnPython
>>> miArchivoEnPython.funcion1(argumentos)
##### FUNCIONES
# Sumar todos los números de 1 hasta n.
# Atención con lo dos puntos ':' !
#INDENTACION: 1 tab != 4 espacios
def sumador(n):
sum = 0
for i in range(0, n + 1):
sum = sum + i
return(sum)
# Sumar todos los números de una lista.
# Fijarse en la "manera novedosa" en que se hace el ciclo.
def sumarLista(l):
sum = 0
for elem in l:
sum = sum + elem
return(sum)
# Notar que sumador(10) == sumarLista(range(11))
# PASAJE DE FUNCIONES COMO PARAMETROS Y ESTRUCTURAS FUNCIONALES CLASICAS
def elevarCuadrado(x):
return(x*x)
def aplicar(l, f):
l2 = []
for e in l:
l2.append(f(e))
return(l2)
aplicar(range(10), elevarCuadrado)
# El filtro.
def filtrar(l,f):
l2 = []
for e in l:
if f(e):
l2.append(e)
return(l2)
def esPositivo(x):
return(x>0)
filtrar([3,-2,4,19,-1,-10,11], esPositivo)
# El "fold" (plegar). Generalización de sumatoria y productoria.
def fold(l, operador, neutro):
if l == []:
return(neutro)
e = l.pop(0)
return(operador(e, fold(l,operador,neutro)))
def suma(x,y):
return(x+y)
def producto(x,y):
return(x*y)
fold([1,6,2],suma,0)
fold([1,6,2], producto,1)
###### OTROS TIPOS DE DATOS
# LA TUPLA (es igual que la lista pero inmutable, no se puede modificar.)
a = (4,10)
a = ("hola", 10, -5)
#Datos separados por comas
>>> a = 1,34,45
>>> a
(1, 34, 45)
>>> a[1]
34
# CONJUNTO (lista desordenada sin duplicados.)
a = set([1,5,5,-2]) # Precondición: set( objeto_iterable ), recibe un objeto iterable!
# Por ejemplo:
r = set(4) # No funciona
r = set([4]) # Sí funciona
aa = set((3,5)) # la t-upla también es iterable.
print(a)
print(aa)
b = set([1,10,13])
# Operaciones entre conjuntos
u = a | b # La unión
print(u)
d = a - b # La diferencia
i = a & b # La intersección.
# DICCIONARIO
telefonos = {"Pablo":410, "Cecilia":100, "emergencias":911}
telefonos["Pablo"] # devuelve 410
telefonos.keys() # Devuelve una lista con las claves.
telefonos.values() # Devuelve una lista con los valores, etc.
# En la documentación encontrarán miles de métodos más de cada clase.