Vous êtes sur la page 1sur 28

Python teora

Programacin en Python

Variables
Crear aplicaciones web, juegos y motores de bsqueda incluye almacenar y trabajar
con diferentes tipos de datos. Eso se hace usando variables. Una variable almacena
un dato y le da un nombre especfico.

Por ejemplo:

spam = 5
La variable spam ahora almacena el nmero 5

Booleanos
Genial! Acabs de almacenar un nmero en una variable. Los nmeros son un tipo
de datos que usamos en programacin. Un segundo tipo de datos se llama booleano.

Un booleano es como un interruptor de luz. Slo puede tener dos valores, como un
interruptor solo puede estar encendido o apagado. Un booleanopuede
ser True (verdadero) o False(falso).

Podes usar variables para almacenar booleanos, as:

a = True
b = False

Fuiste reasignado
Ahora sabs cmo usar variables para almacenar valores.

Tomemos mi_ent = 7. Pods cambiar el valor de la variable "reasignndola" de esta


forma:

mi_ent = 3

Espacios en blanco
En Python, los espacios en blanco se usan para darle estructura al cdigo. Los
espacios en blanco son importantes as que tens que tener cuidado de cmo los
usas.

Pgina 1 de 28
Python teora

Comentarios de una sola lnea


Probablemente viste que usamos el signo # varias veces en ejercicios anteriores. El
signo # es para comentarios. Un comentario es una lnea de texto que Python no va a
tratar de ejecutar como cdigo. Es solamente para que las personas lo lean.

Los comentarios hacen que tu programa sea ms fcil de entender. Cuando volvs a
mirar tu cdigo u otras personas quieren colaborar con vos, ellos pueden leer tus
comentarios y fcilmente entender lo que hace tu cdigo.

Comentarios de varias lneas


El signo # nicamente funciona en una sola lnea; podras entonces escribir un
comentario de varias lneas y empezar cada una con #, pero eso es un plomo.

Para hacer comentarios en varias lneas pods incluir el bloque entero en un grupo de
tres comillas, as:

"""Aqu me pongo a cantar al comps de la vigela, que al hombre que lo desvela una pena
extraordinaria, como la ave solitaria con el cantar se consuela. Martn Fierro de Jos
Hernndez.
"""

Operaciones matemticas
Genial! Ahora hagamos algunas operaciones matemticas. Pods sumar, restar,
multiplicar y dividir nmeros as:

suma = 72 + 23
resta = 108 - 204
multiplicacin = 108 * 0,5
divisin = 108 / 9

Exponenciacin
Todas las operaciones matemticas se pueden hacer con una calculadora, entonces,
para qu usamos Python? Porque podemos combinar las operaciones matemticas
con otro tipo de datos (por ejemplo conbooleanos) y comandos para crear programas
tiles. Las calculadoras se limitan a los nmeros.

Ahora empecemos a trabajar con exponenciales.

ocho = 2 ** 3
En este ejemplo creamos una nueva variable que se llama ocho y la establecemos
en 8, o el resultado de 2 a la potencia de 3 (2^3).
Pgina 2 de 28
Python teora

Fijate que usamos ** en lugar de * o el operador de multiplicacin.

Mdulo
Nuestro ltimo operador aritmtico esmodulo. Mdulo da como resultado el resto que
queda de la divisin. Entonces, si escribs 3 % 2, el resultado ser 1 (ya que 2 entra
una vez en 3 y el resto es 1).

Strings (Cadenas)
Otro tipo de datos til en Python son las cadenas. Una cadena puede contener letras,
nmeros, y smbolos.

nombre = "Pedro"
edad = "19"
comida = "queso"
01. En el ejemplo anterior, creamos una variable nombre y la asociamos al valor de la
cadena "Pedro".

02. Tambin asociamos edad a "19" y comida a "queso".

Las cadenas tienen que estar entre comillas.

Secuencia de escape
Hay caracteres que causan problemas. Por ejemplo:

"Hola "amigo" "


Este cdigo se rompe porque Python cree que la comilla antes de "amigotermina la
cadena. Podemos usar la barra invertida para solucionar este problema, de este
modo:

"Hola \" amigo \" "

Acceso por ndice


Buen trabajo!

A cada caracter en una cadena se le asigna un nmero. Este nmero se llama ndice.
Mir el diagrama en el editor.

Pgina 3 de 28
Python teora

g = "gatos"[0]
r = "Pedro"[3]
01. En el ejemplo anterior, creamos una variable que se llama g y la ajustamos a "g",
el caracter en el ndice cero de la cadena "gatos".

02. Despus, creamos una nueva variable que se llama r y la ajustamos a "r", el
caracter en el ndice tres de la cadena "Pedro".

En Python, empezamos a contar el ndice desde cero en vez de desde uno.

Mtodos de cadenas
Buen trabajo! Ahora que sabemos como almacenar cadenas, veamos como podemos
cambiarlas usandomtodos de cadenas.

Los mtodos de cadenas te dejan realizar tareas especficas para las cadenas.

Vamos a enfocarnos en cuatro mtodos de cadenas:

01. len()
02. lower()
03. upper()
04. str()

Empecemos con len(), que obtiene el largo (la cantidad de caracteres) de una cadena.

lower() (minscula)
Bien hecho.
Pods usar el mtodo lower() para liberarte de todas las maysculas de tu cadena.
Vos llams a lower() de este modo:

"Pablo".lower()
que te va a devolver "pablo"

upper() (maysculas)
Ahora tu string est 100% en minsculas. Existe un mtodo similar para hacer que
una cadena est completamente en maysculas.

Pgina 4 de 28
Python teora

str()
Ahora vamos a ver el mtodo str(), que es menos directo. El mtodostr() convierte
en una cadena algo que no es una cadena. Por ejemplo:

str(2)
debe convertir 2 en "2".

Notacin de puntos
Ahora vamos a ver porqu usaslen(cadenas) y str(objetos), pero usas la notacin de
puntos (como por ejemplo, "Cadena".upper()) con el resto.

leon = "rugido"
len(leon)
leon.upper()
Los mtodos que usan la notacin de puntos solo funcionan con cadenas.

Por otro lado, len() y str() pueden funcionar con otros tipos de datos.

Mostrar en la pantalla cadenas


El rea donde estuvimos escribiendo nuestro cdigo se llama editor.

La ventana de Resultados (la ventana en la parte superior derecha) es dnde se


muestra el resultado de tu cdigo.

print solamente muestra en pantalla tu cdigo en la ventana de Resultados.

Concatenacin de strings
Sabes acerca de las cadenas, y sabes acerca de los operadores aritmticos. Ahora
vamos a combinar los dos.

print "Vida " + "de " + "Pedro"

Esto va a mostrar Vida de Pedro.

El operador + entre cadenas las 'sumar' juntas, una despus de otra. Observ que
hay espacios dentro de las comillas despus de Vida y de dede modo que podamos
hacer que la cadena combinada se vea como tres palabras.

Pgina 5 de 28
Python teora

La combinacin de cadenas juntas de este modo se llama concatenacin. Ahora


vamos a probar concatenar unas cuantas cadenas juntas.

Conversin explcita de cadenas


Algunas veces necesitas combinar una cadena con algo que no sea una cadena. Para
hacer eso, tens que convertir lo que no es una cadena en una cadena.

print "Tengo " + str(2) + " cocos"


Esto va a mostrar en pantalla Tengo 2 cocos.

El mtodo str() convierte elementos que no son cadenas en cadenas. En el ejemplo


anterior vos convertis el nmero 2 en una cadena y despus vos concatens las
cadenas juntas como en el ejercicio anterior.

Formateo de cadenas con %, parte 1


Cuando queres mostrar en pantalla una variable con una cadena, hay un mtodo
mejor que concatenar cadenas juntas.

nombre = "Miguel"
print "Hola %s" % (nombre)
El operador s despus de la cadena se usa para combinar una cadena con variables.
El operador s reemplazar un %s en la cadena con la variable de cadena que viene
despus.

A partir de Python 2.6 hay una nueva forma de formatear cadenas dinmicas. Ahora
hay un mtodo de cadena que se llama .formatque es ms avanzado que %. La razn
por la cual no nos enfocamos en este mtodo en Codecademy (por lo menos por
ahora) es que no va a funcionar en versiones ms antiguas de Python y por lo tanto
no recomendamos su uso en algunas configuraciones. Ac te damos una breve
explicacin.

.format permite que ajustes valores y despus los reemplaces en la cadena. Usa
corchetes {algun_nombre} con el nombre de una variable adentro. Despus el mtodo
ajusta esas variables como argumentos. Tambin soporta muchas ms caractersticas
que si usas %. Es ms fcil de explicar usando ejemplos:

"Yo soy {tipo}".format(type="cadena")

Pgina 6 de 28
Python teora

mi_nombre = "Miguel"
"Hola, mi nombre es {nombre}".format(nombre=mi_nombre)
Hay otros usos tiles y pods mirar los documentos de Python para ms informacin
ac [1], ac [2] y ac [3].

[1]
https://docs.python.org/2/library/stdtypes.html#str.format

[2]https://docs.python.org/3/library/string.html#string-formatting

[3]
http://legacy.python.org/dev/peps/pep-3101/

Formateo de cadenas con %, parte 1


Cuando queres mostrar en pantalla una variable con una cadena, hay un mtodo
mejor que concatenar cadenas juntas.

nombre = "Miguel"
print "Hola %s" % (nombre)
El operador s despus de la cadena se usa para combinar una cadena con variables.
El operador s reemplazar un %s en la cadena con la variable de cadena que viene
despus.

Formateo de cadenas con %, parte 2


Acordate, usamos el operador % para reemplazar el marcador de posicin%s con las
variables en parntesis.

nombre = "Miguel"
print "Hola %s" % (nombre)
Necesitas la misma cantidad de trminos %s en una cadena como la cantidad de
variables en el parntesis:

print "Los %s quien %s %s!" % ("Caballeros", "dicen", "Ni")


# Esto va a mostrar en pantalla "Los Caballeros dicen ni

Biblioteca de fecha y hora


Muchas veces queres mantener un registro de cundo sucedieron las cosas.
Podemos hacer eso en Python usando datetime (fecha y hora).

Ac vamos a usar datetime para mostrar la fecha y la hora con un lindo formato.

Pgina 7 de 28
Python teora

Obtener la fecha y hora actuales


Podemos usar una funcin que se llama datetime.now() para recuperar la fecha y
hora actual.

from datetime import datetime

print datetime.now()
La primera lnea importa la biblioteca de la fecha y la hora para poder usarla.

La segunda lnea mostrar la fecha y la hora actuales.

Extraer informacin
Observ ahora que la salida se ve as2013-11-25 23:45:14.317454. Qu pasa si vos
no quers la fecha y hora completas?

from datetime import datetime


ahora = datetime.now()

anio_actual = ahora.year
mes_actual = ahora.month
dia_actual = ahora.day
Ya tens las dos primeras lneas.

En la tercera lnea, tomamos el ao (y solo el ao) de la variable ahora y lo


almacenamos en anio_actual.

En la cuarta y quinta lnea, almacenamos el mes y el da desdeahora.

Fecha calurosa
Qu pasa si queremos mostrar la fecha de hoy con el siguiente formato?
mm/dd/yyyy. Usemos la sustitucin otra vez.

from datetime import datetime


ahora = datetime.now()

print '%s-%s-%s' % (ahora.year, ahora.month, ahora.day)


# mostrar: 2014-02-19
Acordate que el operador %completar los marcadores de posicin %s en la cadena de
la izquierda con las cadenas en el parntesis a la derecha.

En el ejemplo anterior, mostramos2014-02-19 (si hoy es el 19 de febrero de, 2014),


pero vos vas a mostrar02/19/2014.

Una linda hora


Pgina 8 de 28
Python teora

Bien hecho! Hagamos lo mismo para la hora, minuto y segundo.

from datetime import datetime


ahora = datetime.now()

print ahora.hour
print ahora.minute
print ahora.second
En el ejemplo anterior, solo mostramos la hora, el minuto y los segundos actuales.

Podemos nuevamente usar la variableahora para mostrar la hora.

Gran final
Pudimos mostrar la fecha y la hora en forma separada y con una linda forma. Ahora
combinemos las dos cosas.
`
from datetime import datetime
ahora = datetime.now()

print '%s/%s/%s' % (ahora.month, ahora.day, ahora.year)


print '%s:%s:%s' % (ahora.hour, ahora.minute, ahora.second)
`
El ejemplo anterior va a mostrar la fecha, despus en una lnea separada va a mostrar
la hora.

Vamos a mostrarlas todas en la misma lnea en una sentencia print.

Sigue el flujo
As como en la vida real, algunas veces querramos que nuestro cdigo pudiera tomar
decisiones.

Los programas Python que estuvimos escribiendo hasta ahora piensan de una sola
forma: pueden sumar dos nmeros o mostrar en pantalla conprint algo pero no tienen
la capacidad de elegir entre uno de esos resultados.

El control de flujo nos da esa capacidad de elegir entre resultados con base en lo
que est ocurriendo en el programa.

Compar de cerca!
Comencemos con el aspecto ms simple del control de flujo: los comparadores.
Existen seis comparadores:

Pgina 9 de 28
Python teora

1. Igual a (==) *
2. No es igual a (!=)
3. Menor que (<)
4. Menor o igual que (<=)
5. Mayor que (>)
6. Mayor o igual que (>=)

Los comparadores controlan si un valor es (o no es) igual a, mayor que (o igual a) o


menor que (o igual a) otro valor.

Fjate que == se usa para comparar si dos objetos con iguales, y que = se usa para
asignar un valor a una variable.

Cmo cambian las cosas


Las comparaciones generan uno de dos resultados: True o False, que son booleanos,
como aprendimos en este ejercicio 1.

# Haceme true!
bool_one = 3 < 5
Vamos a cambiar: te vamos a dar el booleano y vos vas a escribir la expresin, igual
que en el ejemplo de arriba.

Ser and/or No Ser


Los operadores booleanos (u operadores lgicos) compara sentencias y dan como
resultado valores booleanos. Existen tres operadores booleanos en Python:

01. and, que controla si ambas sentencias son True;


02. or, que controla si por lo menos una de las sentencias es True;
03. not, que da el opuesto de la sentencia.

Vamos a ver los tres operadores uno por uno.

Operadores booleanos

---------------------------

True and True es True

True and False es False

Pgina 10 de 28
Python teora

False and True es False

False and False es False

True or True es True

True or False es True

False or True es True

False or False es False

Not True es False

Not False es True

And
El operador booleano and solamente da como resultado True cuando las
expresiones en ambos lados de andson verdaderas (True). Por ejemplo:

1 < 2 and 2 < 3 es True

1 < 2 and 2 > 3 es False

Or
El operador booleano or da como resultado True cuando por lo menos una de las
expresiones en cada lado de or es True (verdadera). Por ejemplo:

1 < 2 or 2 > 3 es True;


1 > 2 or 2 > 3 es False.

Not
El operador booleano not da como resultado True para sentencias False yFalse para
sentencias True.

Por ejemplo:

Pgina 11 de 28
Python teora

not False dar como resultado True, al igual que not 40 > 41 dar como
resultado True.

Esto y aquello (o esto, pero no aquello!)


Los operadores booleanos no siempre son calculados directamente de izquierda a
derecha; al igual que con los operadores aritmticos, existe un orden de operations
para los operadores booleanos.

01. primero se calcula not;


02. despus se calcula and;
03. por ltimo se calcula or.

Por ejemplo: True or not False andFalse retornar True. Si no te queda claro, mir
el Consejo.

Los parntesis (()) te aseguran que tus expresiones sern calculadas en el orden que
quers.Cualquier elemento que est entre parntesis es calculado como su propia
unidad.

Consejo

01. True or not False and False. primero se calcula not, as que tenemos
02. True or True and False. a continuacin es calculado and, as que tenemos
03. True or False. Y, como hemos visto, True or False es igual aTrue, as que el
resultado final es True!

Sintaxis de sentencias condicionales


if es una sentencia condicional que ejecuta un cdigo especfico despus de
controlar si la expresin en True(verdadera).

Aqu hay un ejemplo de una sentenciaif en Python:

if 8 < 9:
print "Ocho es menor que nueve!"
En este ejemplo, 8 < 9 es la expresin controlada y print "Ocho es menor que
nueve!" es el cdigo especfico

Si tens, entonces...
Pgina 12 de 28
Python teora

Vamos a practicar un poco con las sentencias if. Acordate, la sintaxis se ve as:

if some_function():
primera linea del bloque
segunda linea del bloque
etcetera
Mirando el ejemplo anterior en el caso de que some_function()muestra returns True,
entonces el bloque de cdigo indentado despus de l se ejecutar. En el caso de
que muestreFalse, entonces el bloque indentado se saltear.

Tambin, asegurate de ver los dos puntos al final de la sentencia if. Los agregamos
pero son importantes.

Problemas con else? Qu pena me da...


La sentencia else complementa la sentencia if. Un par if/else le indica a Python lo
siguiente: "Si esta expresin es True, ejecuta este bloque de cdigo indentado; de lo
contrario, ejecuta este cdigo despus de la sentencia else."

Al contrario de if, else no depende de una expresin. Por ejemplo:

if 8 > 9:
print "No me muestro!"
else:
print "Me muestro!"

El gran If
Qu buen trabajo! Ac est lo que aprendiste en esta unidad:

Comparadores

3 < 4
5 >= 5
10 == 10
12 != 13
Operadores booleanos

True or False
(3 < 4) and (5 >= 5)
this() and not that()
Sentencias condicionales

if this_might_be_true():
print "Esto es realmente verdadero."
elif that_might_be_true():
print "Eso es verdadero."
else:
print "Ninguno de los anteriores.

Pgina 13 de 28
Python teora

x = "J123"
x.isalpha() # False

Isalpha

x = "J123"
x.isalpha() # False

En la primera lnea creamos una cadena con letras y nmeros.

La segunda lnea ejecuta la funcin isalpha() que muestra False dado que la cadena
contiene caracteres que no son letras.

Vamos a asegurarnos que la palabra que ingrese el usuario contenga solo caracteres
alfabticos. Pods usar isalpha() para controlar eso

Consejo

El primer caracter en una cadena est en el ndice 0.

Acordate de que cortar una cadena es como acceder a un solo caracter.

# un solo caracter
s[3]

# cort desde 3 hasta 6


s[3:6]
Consejo importante Cuando corts hasta el final de la cadena, en vez de
proporcionar
len(nueva_palabra), tambin podesno proporcionar el segundo ndice:

my_string = "Python"
my_string[1:] # "ython"

Consejo

Acordate Cmo usamos %s para mostrar cadenas? Podemos usar%f para mostrar
floats. (Es decir, nmeros con decimales en ellos.)

Pgina 14 de 28
Python teora

Cruce de funciones
Las funciones se definen con tres partes:

01. El encabezado, que incluye la instruccin def, el nombre de la funcin, y los


*parmetros que la funcin requiera. Ac va un ejemplo:

def hola_mundo(): // No hay parmetros


```
**02.** Un **comentario** opcional, que explica lo que hace la funcin:

```python
"""Muestra con print 'Hola Mundo!' en la ventana de Resultados."""
```
**03.** Y el **cuerpo**, que describe los procedimientos que la funcin lleva a cabo. El
cuerpo est *indentado*, igual que las sentencias condicionales.

```python
print "Hola Mundo!"
```
Ac te mostramos un ejemplo de la funcin toda junta:

```python
def hola_mundo():
"""Muestra con print 'Hola Mundo!' en la ventana de Resultados."""
print "Hola Mundo!"

Llamada y respuesta
Despus de definir una funcin se la debe llamar para que se implemente. En el
ejercicio anterior spam(), en la ltima lnea le dijo al programa que busque la funcin
llamada spam y que la ejecute en la ventana de Resultados

Parmetros y argumentos
Examinemos la primera lnea que defini cuadrado en el ejercicio anterior:

python
def cuadrado(n):
n es un parmetro de cuadrado. Un parmetro acta como el nombre de una variable
para pasar unargumento. Con el ejemplo anterior, llamamos cuadrado con el
argumento10. En esta instancia la funcin se llam, n tiene el valor 10.

Una funcin puede requerir todos los parmetros que quieras, pero cuando llams a la
funcin, por lo general tens que pasar una cantidad de argumentos que coincidan.

Funciones que llaman funciones

Pgina 15 de 28
Python teora

Hasta ahora hemos visto funciones que pueden mostrar texto en la ventana de
Resultados o hacer aritmtica simple, pero las funciones pueden ser mucho ms
poderosas. Por ejemplo, est completamente permitido que una funcin llame a otra.

def fun_one(n):
return n * 5

def fun_two(m):
return fun_one(m) + 7

Vamos a crear unas cuantas funciones ms por si fuera poco.

def gritar(frase):
if frase == frase.upper():
return "ESTAS GRITANDO!"
else:
return "Pods hablar ms fuerte?"

gritar("ESTOY INTERESADO EN GRITAR")


El ejemplo anterior est ahi para ayudarte a recordar cmo se estructuran las
funciones.

No te olvides de los dos puntos al final de la definicin de la funcin.

Ya s Kung Fu
Te acords la instruccin import this en el primer ejercicio de este curso? Ese era
un ejemplo de cmo importarun mdulo. Un mdulo es un archivo que contiene
definiciones que pods usar una vez que est importado, incluyendo variables y
funciones.

Antes de intentar hacer una importacin de verdad, vamos a ver qu es lo que Python
sabe sobre las races cuadradas. En la lnea 3 del editor, escrib

print sqrt(25)
cuyo resultado esperamos que sea 5.

Importaciones genricas
Viste eso? Python mostr un mensaje: "NameError: name 'sqrt' is not defined".
Python (todava) no sabe que son las races cuadradas.

Python tiene un mdulo llamado mathque incluye una cantidad de variables y


funciones tiles y sqrt() es una de esas funciones. Para poder obtener la funcin,

Pgina 16 de 28
Python teora

todo lo que debes hacer es usar la instruccin import. Cuando importas un mdulo de
esta manera, se le llama una importacin genrica.

Importacin de funcin
Buen trabajo! Ahora Python sabe cmo calcular la raz cuadrada de un nmero.

Sin embargo, solo necesitbamos la funcin sqrt; y puede ser muy frustrante tener
que seguir escribiendo math.sqrt() .

Afortunadamente es posible importar solo ciertas variables o funciones desde un


mdulo determinado. Extraer una sola funcin desde un mdulo se llama importacin
de funcin, y se hace con la instruccinfrom, as:

from module import function


Ahora solamente tienes que escribirsqrt() para saber la raz cuadrada de un nmero:
ya no ms math.sqrt()!

Importaciones universales
Genial! Encontramos una manera de escoger las variables y funciones que queremos
de los mdulos que las contienen.

Qu tal si queremos todas las variables y funciones que estn disponibles en un


mdulo pero no queremos tener que escribir constantemente math?

importacin universal puede ocuparse de eso. La sintaxis es as:

from module import *

Ac hay dragones
Las importaciones universales pueden parecer geniales por fuera, pero no son buena
idea por una razn muy importante: pueden llenar tu programa con una tonelada de
nombres de variables y de funciones, pero sin garantizar que sos nombres sigan
asociados a el(los) mdulo(s) de origen.

Si tienes una funcin propia y se llamasqrt, y usas import math, tu funcin estar a
salvo: existe tu sqrt y existemath.sqrt, y las dos jams se cruzarn. Sin embargo, si
usas frommath import *, tendrs un problema: dos funciones diferentes con el mismo
nombre exacto.

Pgina 17 de 28
Python teora

Aunque tus definiciones propias no entren directamente en conflicto con los nombres
de los mdulos importados, si usas import * en varios mdulos al mismo tiempo, no
vas a tener forma de diferenciar cul variable o funcin vino de qu parte.

Por estas razones, lo mejor es usar siempre import mdulo y escribirmdulo.nombre, o


simplemente usarimport para importar variables y funciones especificas desde varios
mdulos, segn sea necesario.

De algo ms que strings


Ahora que entiendes qu son las funciones y cmo importar mdulos, vale la pena
mostrarte algunas de las funciones geniales que Python tiene incorporadas (no se
requieren mdulos!).

Ya conoces algunas de las funciones incorporadas que hemos usado en (o para


crear) los strings, tales como.upper(), .lower(), str() y (ms recientemente) len().
Son grandiosas para trabajar con strings, pero... qu hay de algo un poco ms
analtico?

max()
La funcin max() toma cualquier cantidad de argumentos y devuelve el mayor de ellos.
(Ac, "el mayor" puede tener significados variados, as que es mejor usar max() en
enteros y reales (floats), en donde los resultados son concretos, y no en otros objetos,
como las cadenas.)

Por ejemplo, max(1,2,3) dar como resultado 3 (el nmero mayor en el conjunto de
argumentos).

min()
min() devuelve de una serie de argumentos, el menor de ellos.

abs()
La funcin abs() devuelve el valor absoluto del nmero que toma como argumento;
es decir, la distancia desde0 hasta ese nmero en una lnea imaginaria de nmeros,
sin importar si es positivo o negativo. Por ejemplo, 3y -3 los dos tienen el mismo valor
absoluto: 3. La funcin abs()siempre devuelve un valor positivo, y a diferencia
de max() y min(), solamente puede tomar un solo nmero.

type()

Pgina 18 de 28
Python teora

Por ltimo, la funcin type() devuelve el tipo de los datos que recibe como
argumento. Si le pides a Python que haga lo siguiente:

print type(42)
print type(4.2)
print type('spam')
Python dar como resultado:

<type 'int'>
<type 'float'>
<type 'str'>

Introduccin a las listas


Las listas son un tipo de datos que pods usar para almacenar una coleccin de
diferentes fragmentos de informacin en forma de secuencia, con un solo nombre de
variable. (Entre los tipos de datos que ya aprendiste estn las cadenas, nmeros, y
booleanos.)

Pods asignar elementos a una lista con una expresin de esta forma:

nombre_de_lista= [elemento_1, elemento_2]


con los elementos entre corchetes. Una lista tambin puede estar vaca: lista_vacia
= [].

Las listas son muy parecidas a las cadenas pero tienen algunas diferencias claves.

Acceso mediante ndice


Pods acceder a un elemento individual de la lista mediante sundice. Un ndice es
como una direccin que identifica la posicin de un elemento en una lista. El ndice
aparece directamente despus del nombre de la lista, entre corchetes,
as: nombre_de_lista[ndice]

Los ndices de las listas empiezan con 0, no con 1! Pods acceder al primer
elemento de una lista as:nombre_de_lista[0]. El segundo elemento de una lista est
en el ndice 1: nombre_de_lista[1]. A los expertos en informtica les encanta empezar
a contar desde cero.

Nuevos vecinos
El ndice de una lista funciona como cualquier otro nombre de variable! Puede usarse
para acceder a y asignar valores.

Pgina 19 de 28
Python teora

Ya viste cmo acceder a un ndice de lista, as:

animales_zoo[0]
#recupera el valor "mono"

En la lnea 5 pods ver cmo funciona la asignacin:

```python
animales_zoo[2] = "jirafa"
#cambia "tigre" por "jirafa"

Retrasos y longitud de listas


Una lista no tiene que tener una longitud fija: pods agregar elementos al final de una
lista todas las veces que quieras!

letras = ['a', 'b', 'c']


letras.append('d')
print len(letras)
print letras
1. En el ejemplo anterior primero creamos una lista que se llamaletras.

2. Despus, agregamos una cadena 'd'al final de la lista letras.

3. Luego mostramos en pantalla 4, el largo de la lista letras.

4. Por ltimo mostramos en pantalla['a', 'b', 'c', 'd'].

Particionado de listas
A veces solo quers acceder a una parte de una lista.

letras = ['a', 'b', 'c', 'd', 'e']


slice = letras[1:3]
print slice
print letras

1. En el ejemplo anterior, primero creamos una lista que se llamaletras.


2. Despus tomamos una subseccin y ah guardamos la porcin de la lista.
Empezamos con el ndice antes de los dos puntos y seguimos hasta el ndice despus
de los dos puntos, sin incluirlo.
3. Luego mostramos en pantalla['b', 'c']. Acordate de que empezamos a contar los
ndices desde 0 y que paramos antes del ndice 3.

Pgina 20 de 28
Python teora

4. Finalmente mostramos en pantalla['a', 'b', 'c', 'd', 'e'], solo para mostrar que
no modificamos la listaletras original.

Mantener el orden
Algunas veces tens que buscar un tem en una lista.

animales = ["hormiga", "murcielago", "gato"]


print animales.index("murcielago")

1. Primero creamos una lista que se llame animales con tres cadenas.
2. Despus mostramos en pantalla el primer ndice que contenga la cadena"murcielago",
que mostrar en pantalla 1.

Tambin podemos insertar tems en una lista.

animales.insert(1, "perro")
print animales

1. Insertamos "perro" en el ndice 1, que corre todo de a 1.


2. Mostramos ["hormiga", "perro", "murcilago", "gato"]

Para uno y para todos


Si quers hacer algo con cada elemento de la lista, pods usar un bucle for. Prest
mucha atencin si aprendiste sobre los bucles for en JavaScript! Son diferentes en
Python.

for variable in nombre_lista:


# Hacer algo!
El nombre de una variable sigue a la instruccin for; a su vez se le asignar el valor
de cada elemento de la lista.

in nombre_lista designa anombre_lista como la lista en la que el bucle funcionar. La


lnea termina con un signo de dos puntos (:) y el cdigo indentado que la sigue ser
ejecutado una vez por cada elemento de la lista.

Instrucciones
Escrib una sentencia en la parte indentada del bucle for que muestre un nmero
igual a 2 * numero por cada elemento de la lista.

Pgina 21 de 28
Python teora

Consejo

Cada elemento de la lista es asignado a la variable numerodefinida por el usuario.


Todo lo que debs hacer es usar print para mostrar numero dos veces en el cuerpo
del bucle (la parte indentada).

El bucle for ejecutar automticamente tu cdigo tantas veces como elementos haya
en mi_lista!

mi_lista = [1,9,3,8,5,7]

for numero in mi_lista:

print 2 * numero

2
18
6
16
10
14

Ms con 'for'
Si tu lista es un revoltijo, tal vez necesites ordenarla con ayuda de sort().

animales = ["gato", "hormiga", "murcielago"]


animales.sort()

for animal in animales:


print animal

1. Primero creamos una lista que se llame animales con tres cadenas. Las cadenas no
estn en orden alfabtico.
2. Despus ponemos animales en orden alfabtico. Fijate que .sort()modifica la lista en
lugar de retornar una nueva lista.

Pgina 22 de 28
Python teora

3. Luego, para cada tem de animales, mostramos en pantalla ese tem como "hormiga",
"murcielago", "gato", cada uno en su propia lnea.

4. Escrib un ciclo for que itere sobre lista_inicial y agreg (.append()) cada
nmero al cuadrado (x ** 2) para lista_cuadrado.
5. Despus orden lista_cuadrado.
lista_inicial = [5, 3, 1, 2, 4]

lista_cuadrado = []

for numeros in lista_inicial:

lista_cuadrado.append(numeros ** 2)

lista_cuadrado.sort()

print lista_cuadrado

[1, 4, 9, 16, 25]

Esta parte que sigue es clave


Un diccionario es parecido a una lista, pero acceds a los valores buscando
una clave en vez de un ndice. Una clave puede ser cualquier cadena o nmero. Los
diccionarios van entre llaves, as:

d = {'clave1' : 1, 'clave2' : 2, 'clave3' : 3}


Este es un diccionario llamado d con tres pares clave-valor. La 'clave1'apunta al
valor 1, la 'clave2' a 2, y as sucesivamente.

Los diccionarios son grandiosos para cosas como guas telefnicas (asociar un
nombre a un nmero telefnico), pginas de inicio de sesin (asociar una direccin de
correo electrnico a un un nombre de usuario), y mucho ms!

Nuevas entradas
Como las listas, los Diccionarios son "mutables". Esto significa que pueden cambiar
despus de ser creados. Una ventaja de esto es que podemos agregar nuevos pares
clave/valor al diccionario despus de creado, as:

nombre_diccionario[clave_nueva] = valor_nuevo

Pgina 23 de 28
Python teora

Un par de llaves vaco {} es un diccionario vaco, igual que un par de corchetes


vaco [] es una lista vaca.

La longitud len() de un diccionario es la cantidad de pares clave-valor que contiene.


Cada par se cuenta solo una vez, incluso si el valor es una lista. (Es as: pods
colocar listas dentro de los diccionarios!)

Cambiar de idea
Como los diccionarios son mutables, pueden modificarse de varias maneras. Pueden
eliminarse tems de un diccionario con el comando del:

del nombre_diccionario[nombre_clave]
eliminar la clave nombre_clave y su valor asociado del diccionario.

Puede asociarse un nuevo valor con una clave asignando un valor a la clave, as:

nombre_diccionario[clave] = nuevo_valor

Elimin algunas cosas


Algunas veces necesitamos eliminar algunas cosas de una lista.

beatles = ["john","paul","george","ringo","stuart"]
beatles.remove("stuart")
print beatles
>> ["john","paul","george","ringo"]

1. Creamos una lista llamada beatlescon 5 cadenas.


2. Despus eliminamos el primer tem de beatles que vaya con la cadena "stuart".
Ten en cuenta que.remove(item) no retorna nada.
3. Finalmente mostramos en pantalla esa lista solo para ver que "stuart"realmente se
elimin.

Instrucciones

1. Agreg una clave a inventario que se llame 'bolsillo'


2. Establec el valor de 'bolsillo'como una lista que consista de las
cadenas 'caracol', 'mora', y 'lanas'
3. Clasific (.sort()) los tems de la lista guardada con la clave 'mochila'
4. Despus .remove('cuchillo') de la lista de tems guardados en la clave'mochila'

Pgina 24 de 28
Python teora

5. Agreg 50 al nmero guardado en la clave 'oro'

inventario = {
'oro' : 500,
'morral' : ['piedra', 'soga', 'piedra preciosa'],
'mochila' : ['xilofon','cuchillo', 'bolsa de dormir','pan flauta']
}
inventario['bolsa de arpillera'] = ['manzana', 'rubi chiquito', 'osito panda']
inventario['morral'].sort()
inventario["bolsillo"] = ["caracol", "mora", "lanas"]
inventario['mochila'].sort()
inventario['mochila'].remove('cuchillo')
inventario['oro'] = 500 + 50

Antes de empezar
Antes de empezar nuestro ejercicio vamos a repasar una vez ms los ciclos for de
Python. Por ahora solamente vamos a repasar el ciclofor en trminos de cmo se
relaciona con las listas y diccionarios. En los cursos siguientes vamos a explicar ms
usos de los ciclos for.

Los ciclos fornos permiten iterar por los elementos de una lista, desde el que est en
el extremo izquierdo (el elemento cero) hasta el que est en el extremo derecho. Un
ciclo de ejemplo estara estructurado de la siguiente forma:

a = ["Una lista de algun tipo]


for x in a:
# hace algo para cada x
Este ciclo ejecutar todo el cdigo del bloque indentado debajo de la
sentencia for x in a:. x ser el tem de la lista que se est calculando en este
momento. As que, si ejecutamos:

for item in [1, 3, 21]:


print item
mostrar en pantalla 1, despus 3, y despus 21. La variable entre for ein puede
tener cualquier nombre de variable (ahora se llama tem), pero tens que tener

Pgina 25 de 28
Python teora

cuidado de evitar usar la palabra list como variable, ya que esa es una palabra
reservada (es decir, significa algo especial) en el lenguaje de Python.

Esto es CLAVE!
Tambin pods usar un ciclo for en un diccionario para iterar por sus claves, con lo
siguiente:

# Un simple diccionario
d = {"foo" : "bar"}

for key in d:
print d[key] # muestra "bar"
Ten en cuenta que los diccionarios estn desordenados, es decir, que cada vez que
hagas un ciclo travs de un diccionario, vas a pasar por cadaclave, pero no vas a
tener la seguridad de poder verlas en un orden particular.

Control de flujo y ciclos


Los bloques de cdigo en un ciclo forpueden ser tan grandes o tan pequeos como
sea necesario. Cuando hacs ciclos, tal vez quers realizar diferentes acciones
dependiendo del tem especfico de esa lista.

numeros = [1, 3, 4, 7]
for numero in numeros:
if numero > 6:
print numero
print "Mostramos 7."
01. En el ejemplo anterior, creamos una lista con 4 nmeros.
02. Despus recorremos los numerosde la lista y almacenamos cada tem en la lista en
la variable numero.
03. En cada ciclo, si el numero es mayor que 6, lo mostramos con print. Entonces
mostramos 7.
04. Finalmente, mostramos una sentencia.

Asegurate de prestar atencin a tu indentacin para no confundirte.

Listas + Funciones
Las funciones tambin pueden tomar listas como datos de entrada y realizar varias
operaciones en ellas.

def contar_bajos(numeros):
total = 0
for n in numeros:
if n < 10:

Pgina 26 de 28
Python teora

total = total + 1
return total

lost = [4, 8, 15, 16, 23, 42]


bajo = contar_bajos(perdido)
print bajo
01. En el ejemplo anterior, definimos una funcin contar_bajos que tiene un
argumento, numeros.
02. Inicializamos una variable totalque podemos usar en el ciclo for.
03. Para cada tem n en numeros, si nes menor que 10, aumentamos
eltotal.
04. Despus del ciclo for devolvemos con return total.
05. Despus de la definicin de funcin, creamos un array de numeros
que se llame perdido.
06. Llamamos a la funcin contar_bajo, pasamos perdido, y
almacenamos el resultado obtenido en bajo.
07. Finalmente, mostramos el resultado obtenido que es 2 ya que
solo 4 y 8 son menores que 10.

4. Instrucciones
5. Escrib una funcin que cuente cuntas veces la cadena burbujas aparece en
una lista.
6. 01. Escrib una funcin que se llamecontar_burbujas que toma una lista xcomo
datos de entrada.
02. Cre una variable contar para que tenga la cuenta en curso. Inicializala a
cero.
03. Por (for) cada item en x:, si (if) ese tem es igual a la
cadena"burbujas" aument la variablecontar.
04. Despus del ciclo, devolv conreturn la variable contar.
7. Por ejemplo,contar_burbujas(["burbujas","gato","burbujas"]) debe devolver
con return 2.

def contar_burbujas(x):

contar = 0

for burbuja in x:

if burbuja == "burbujas":

contar += 1

return contar

Pgina 27 de 28
Python teora

x = ["burbujas","gato","burbujas"]

Pgina 28 de 28

Vous aimerez peut-être aussi