Skip to content

Departamento de Matematica

Sections
Personal tools
You are here: Home » Enseñanza » Materias » Primer Cuatrimestre 2013 » Optimización » Manuales de Python » Apunte de Python
Views
  • State: visible

Apunte de Python

Click here to get the file

Size 5.4 kB - File type text/x-python

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.
Created by alexisj
Last modified 2013-04-03 10:25 AM
 
 

Powered by Plone