mooc de introducción a sage. cadenas de caracteres, listas ... · mooc de introducci on a sage....
TRANSCRIPT
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
MOOC de Introduccion a sage.Cadenas de caracteres, listas y ciclos for
Leandro Marın
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
1 Cadenas de Caracteres
2 Listas
3 Lazos for
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Definicion
Podemo definir una cadena de caracteres poniendo el textoentre comillas de tres formas distintas:
a = ’Hola Mundo ’
b = "Hola Mundo"
c = """ Hola Mundo """
print a==b and b==c
Nos respondera True porque las tres son la misma cadena.
La forma con triples comillas permite introducir cadenas decaracteres formadas por varias lıneas.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Definicion
Podemo definir una cadena de caracteres poniendo el textoentre comillas de tres formas distintas:
a = ’Hola Mundo ’
b = "Hola Mundo"
c = """ Hola Mundo """
print a==b and b==c
Nos respondera True porque las tres son la misma cadena.
La forma con triples comillas permite introducir cadenas decaracteres formadas por varias lıneas.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Caracteres Especiales I
Cuando tenemos que poner comillas simples o dobles en unacadena de caracteres, podemos optar por usar el otro tipo decomillas para definir la cadena, ası por ejemplo:
cad1 = ’Le llamaban Juan "el caradura"’
cad2 = "This is my friend ’s book"
El sımbolo \ se utiliza como sımbolo de escape, si queremosintroducirlo en alguna cadena de caracteres como otro sımbolocualquiera, podemos poner r delante de la cadena como sigue:
txt = r"Tenemos $\alpha = 3\pi/2$"
Esto nos resultara muy util para el ultimo tema, cuandoqueramos integrar sage con LATEX.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Caracteres Especiales II
Si queremos introducir sımbolos UNICODE podemos poner ual inicio de la cadena, por ejemplo
nombre = u"Leandro Marın Mu~noz"
aunque para que no nos de errores en el caso de programasescritos en archivos independientes, debemos poner al iniciodel fichero que el texto esta codificado en UNICODE comosigue:
# -*- coding: utf-8 -*-
nombre = u"Leandro Marın Mu~noz"
print nombre
En general, los caracteres UNICODE suelen dar algunosproblemas y si se pueden evitar, es mejor evitarlos. Porejemplo para generar texto LATEXyo prefiero utilizar \’i que ı.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Operaciones con Cadenas de Caracteres
Dadas dos cadenas de caracteres, podemos unirlas con laoperacion + . Tambien podemos utilizar el producto de unacadena de caracteres por un numero n que realizara n copiasde la cadena original.
print "Hola "+"Mundo"
print "Hola "*3
Nos dara
Hola Mundo
Hola Hola Hola
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Introduciendo Valores en Cadenas de Caracteres I
Para introducir valores en cadenas de caracteres podemosutilizar format como sigue:
a = 4
b = "cuerda"
txt = "La {0} mide {1} metros.".format(b,a)
print txt
Nos escribira
La cuerda mide 4 metros
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Cadenas de Caracteres
Introduciendo Valores en Cadenas de Caracteres II
Las variables que aparecen como parametros de format sevan introduciendo en las posiciones marcadas como {0}, {1},etc. No es preciso que sea en el mismo orden y podemosutilizar los valores las veces que queramos.
t = r"\item <{0}-> ${2}+{2}={1}$.".format(1,4,2)
print t
Nos da
\item<1-> $2+2=4$.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Definicion
Una lista es una coleccion ordenada de objetos (que puedentener tipos diferentes). Se define escribiendo los objetos entrecorchetes y separados por comas.
L = [1,2,"Hola","Mundo"]
Podemos acceder a cada uno de los elementos de la lista consu ındice, que ira desde 0 hasta n − 1 siendo n la longitud dela lista.
print L[0]
print L[3]
Nos dara respectivamente 1 y Mundo.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Definicion
Una lista es una coleccion ordenada de objetos (que puedentener tipos diferentes). Se define escribiendo los objetos entrecorchetes y separados por comas.
L = [1,2,"Hola","Mundo"]
Podemos acceder a cada uno de los elementos de la lista consu ındice, que ira desde 0 hasta n − 1 siendo n la longitud dela lista.
print L[0]
print L[3]
Nos dara respectivamente 1 y Mundo.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Operaciones con Listas I
Dadas dos listas, podemos unirlas con el comando + y hacervarias copias de una lista multiplicandola por un numeroentero.
L = [1,3,4]+[2,4,6]
N = [1,2]*3
print L+N
Nos dara
[1, 3, 4, 2, 4, 6, 1, 2, 1, 2, 1, 2]
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Operaciones con Listas II
Tambien podemos anadir elementos al final de la lista conappend, por ejemplo
L = []
L.append("Hola")
L.append("Mundo")
print L
Nos dara
[’Hola’, ’Mundo ’]
La lista [ ] es la lista vacıa.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Operaciones con Listas II
Tambien podemos anadir elementos al final de la lista conappend, por ejemplo
L = []
L.append("Hola")
L.append("Mundo")
print L
Nos dara
[’Hola’, ’Mundo ’]
La lista [ ] es la lista vacıa.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Particiones de Listas
Supongamos que tenemos una lista L con n elementos.
L [ i : j ] denota la lista formada por los elementos[ L [ i ] ,L[ i + 1 ] ,...,L[j - 1 ] ] .
Si no ponemos alguno de los dos valores i o j se entenderaque vamos hasta el extremo (inicial o final), es decir,L [ i : ] sera la lista [ L [ i ] ,L[ i + 1 ] ,...,L[n - 1 ] ] yL [ : j ] sera [ L [ 0 ] ,L[ 1 ] ,...,L[j - 1 ] ] .
L [ : ] sera una copia de toda la lista L.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Particiones de Listas
Supongamos que tenemos una lista L con n elementos.
L [ i : j ] denota la lista formada por los elementos[ L [ i ] ,L[ i + 1 ] ,...,L[j - 1 ] ] .
Si no ponemos alguno de los dos valores i o j se entenderaque vamos hasta el extremo (inicial o final), es decir,L [ i : ] sera la lista [ L [ i ] ,L[ i + 1 ] ,...,L[n - 1 ] ] yL [ : j ] sera [ L [ 0 ] ,L[ 1 ] ,...,L[j - 1 ] ] .
L [ : ] sera una copia de toda la lista L.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Particiones de Listas
Supongamos que tenemos una lista L con n elementos.
L [ i : j ] denota la lista formada por los elementos[ L [ i ] ,L[ i + 1 ] ,...,L[j - 1 ] ] .
Si no ponemos alguno de los dos valores i o j se entenderaque vamos hasta el extremo (inicial o final), es decir,L [ i : ] sera la lista [ L [ i ] ,L[ i + 1 ] ,...,L[n - 1 ] ] yL [ : j ] sera [ L [ 0 ] ,L[ 1 ] ,...,L[j - 1 ] ] .
L [ : ] sera una copia de toda la lista L.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Particiones de Listas
Supongamos que tenemos una lista L con n elementos.
L [ i : j ] denota la lista formada por los elementos[ L [ i ] ,L[ i + 1 ] ,...,L[j - 1 ] ] .
Si no ponemos alguno de los dos valores i o j se entenderaque vamos hasta el extremo (inicial o final), es decir,L [ i : ] sera la lista [ L [ i ] ,L[ i + 1 ] ,...,L[n - 1 ] ] yL [ : j ] sera [ L [ 0 ] ,L[ 1 ] ,...,L[j - 1 ] ] .
L [ : ] sera una copia de toda la lista L.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Algunas otras funciones sobre listas
len(L) es la longitud de la lista L.
shuffle(L) reordena los elementos de forma aleatoria.
L.sort() ordena la lista.
x in L es True o False dependiendo de si x esta en la listaL o no.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Algunas otras funciones sobre listas
len(L) es la longitud de la lista L.
shuffle(L) reordena los elementos de forma aleatoria.
L.sort() ordena la lista.
x in L es True o False dependiendo de si x esta en la listaL o no.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Algunas otras funciones sobre listas
len(L) es la longitud de la lista L.
shuffle(L) reordena los elementos de forma aleatoria.
L.sort() ordena la lista.
x in L es True o False dependiendo de si x esta en la listaL o no.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Algunas otras funciones sobre listas
len(L) es la longitud de la lista L.
shuffle(L) reordena los elementos de forma aleatoria.
L.sort() ordena la lista.
x in L es True o False dependiendo de si x esta en la listaL o no.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
La funcion range
La lista [ 0,1,2,...,n-1] se puede escribir comorange(n).
Si en lugar de empezar por 0 queremos empezar por otrovalor, podemos hacerlo poniendo range(i,j) que nos dara lalista [ i,i+1,...,j-1 ] .
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
La funcion range
La lista [ 0,1,2,...,n-1] se puede escribir comorange(n).
Si en lugar de empezar por 0 queremos empezar por otrovalor, podemos hacerlo poniendo range(i,j) que nos dara lalista [ i,i+1,...,j-1 ] .
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Listas
Uniendo Listas de Cadenas de Caracteres
Una lista de cadenas de caracteres se puede unir en una unicacadena utilizando join. Por ejemplo
L = ["Enero","Febrero","Marzo"]
print ",".join(L)
print " + ".join(L)
print "\n".join(L)
Nos da
Enero ,Febrero ,Marzo
Enero + Febrero + Marzo
Enero
Febrero
Marzo
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Lazos for
Definicion
Un lazo for nos permite realizar una serie de operacionessobre cada uno de los elementos de una lista. Por ejemplo
for i in [0,1,2]:
print i^6
Nos dara
0
1
64
La lista que hemos puesto, [ 0,1,2] se puede reemplazar poruna variable que contenga una lista o por una funcion quedevuelva una lista como por ejemplo range(3).Tal y como sucedıa en los ciclos while hay que poner : alfinal de la lınea e indentar el codigo del bloque que se deberepetir para cada elemento de la lista.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Lazos for
Definicion
Un lazo for nos permite realizar una serie de operacionessobre cada uno de los elementos de una lista. Por ejemplo
for i in [0,1,2]:
print i^6
Nos dara
0
1
64
La lista que hemos puesto, [ 0,1,2] se puede reemplazar poruna variable que contenga una lista o por una funcion quedevuelva una lista como por ejemplo range(3).
Tal y como sucedıa en los ciclos while hay que poner : alfinal de la lınea e indentar el codigo del bloque que se deberepetir para cada elemento de la lista.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Lazos for
Definicion
Un lazo for nos permite realizar una serie de operacionessobre cada uno de los elementos de una lista. Por ejemplo
for i in [0,1,2]:
print i^6
Nos dara
0
1
64
La lista que hemos puesto, [ 0,1,2] se puede reemplazar poruna variable que contenga una lista o por una funcion quedevuelva una lista como por ejemplo range(3).Tal y como sucedıa en los ciclos while hay que poner : alfinal de la lınea e indentar el codigo del bloque que se deberepetir para cada elemento de la lista.
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Lazos for
Transformaciones de Listas I
Sea L una lista de n elementos y supongamos que queremosgenerar la lista [ f(L[0 ] ),f(L[1 ] ),...,f(L[n- 1 ] ) ]
para alguna funcion f, lo podemos hacer como[ f(x) for x in L].
Por ejemplo
L = range(5)
M = [x^2+2 for x in L]
print M
Nos dara la lista
[2, 3, 6, 11, 18]
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Lazos for
Transformaciones de Listas I
Sea L una lista de n elementos y supongamos que queremosgenerar la lista [ f(L[0 ] ),f(L[1 ] ),...,f(L[n- 1 ] ) ]
para alguna funcion f, lo podemos hacer como[ f(x) for x in L].
Por ejemplo
L = range(5)
M = [x^2+2 for x in L]
print M
Nos dara la lista
[2, 3, 6, 11, 18]
MOOC de Introduccion a sage. Cadenas de caracteres, listas y ciclos for
Lazos for
Transformaciones de Listas II
Estas transformaciones de listas las podemos combinar conotras operaciones como por ejemplo join para obtenerexpresiones complejas:
S="+".join(["{0}".format(x^2) for x in range(7)])
print S
nos da
0+1+4+9+16+25+36