Lenguajes de Scripting
Lenguajes de Scripting
Lenguajes de Scripting
Scripting Python
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Caractersticas generales
Manejo de strings y expresiones regulares Sin tipos, variables no se declaran Administracion automatica de memoria
Algunos lenguajes
Python: Por Monty Python Perl: Ocialmente, abreviatura de Practical Extraction and Report Language PHP: Abreviatura de PHP: Hypertext Processor Ruby: La piedra preciosa (si hay perlas. . . ) TCL: Es Tool Control Language, creado con la idea de ser un lenguaje de extension/conguracion expect: Una extension de TCL, orientada a controlar programas interactivos AWK: Lenguaje inventado por Aho, Weinberger, Kernighan.
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Python
Lenguaje de Programacion Dinamico Pensado como Lenguaje Multiparadigma Disenado para ser usado Intuitivamente Python incluye bateras!
Biblioteca estandar muy completa
Ocialmente...
Guido van Rossum arma que Python es: Simple, facil de aprender, libre y open source De alto nivel, portable e interpretado Orientado a objetos, extensible y embebible Ademas aclara que Python: NO es un animal que estrangula su presa hasta matarla NO es un lenguaje que ofrece libertad NO es un lenguaje de solo escritura
Modo Interactivo
maray@foobar # python >>> print "Hello World" Hello World >>> 3 * 5 + 10/2 20 >>> la_respuesta_universal=42 >>> if la_respuesta_universal==42: ... print "Conoces el significado de la vida" ... else: ... print "Aun te falta mucho por aprender" ... Conoces el significado de la vida
Aca -c indica que el argumento siguiente ha de considerarse como una lnea del script a ser procesado por Python. Para evitar que el shell interprete el contenido del script (que comunmente contendra caracteres que son especiales para el) el script mismo se encierra entre apostrofes. As, Python es embebible en la shell del sistema, y puede ocuparse para tareas tpicas del sistema.
Modo Script
Al igual que otros lenguajes de scripting se ocupa el sha-bang (#!) para hacer el script ejecutable.
# ! / u s r / b i n / env python l a r e s p u e s t a u n i v e r s a l =42 i f l a r e s p u e s t a u n i v e r s a l ==42: p r i n t Conoces e l s i g n i f i c a d o de l a v i d a else : p r i n t Aun t e f a l t a mucho por aprender
Y despues... maray@foobar # python script.py Conoces el significado de la vida maray@foobar # chmod +x script.py maray@foobar # ./script.py Conoces el significado de la vida
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Ejemplo ODBC
Python asegura ser intuitivo, veamos que dice el publico.
def b u i l d C o n n e c t i o n S t r i n g ( params ) : B u i l d a c o n n e c t i o n s t r i n g from a d i c t i o n a r y o f parameters . Returns s t r i n g . r e t u r n ; . j o i n ( [ % %s % ( k , v ) f o r k , v i n params . i t e m s ( ) ] ) s= if name == m a i n : myParams = { s e r v e r : m p i l g r i m , \ database : master , \ u i d : sa , \ pwd : s e c r e t \ } p r i n t b u i l d C o n n e c t i o n S t r i n g ( myParams )
Ejemplo Simple
Iteraciones Simples
s t r = f o o ; l s t = [ monty , 42 , python ] f o r char i n s t r : p r i n t char f o r elem i n l s t : p r i n t elem
Ejemplo Simple 2
Funciones e Iteraciones
def i t e r q u a d ( ) : f o r i i n range ( 5 ) : yield ( i i ) for j in iterquad ( ) : print j
Ejemplo Simple 3
Conclusion
Python es intuitivo para ejemplos simples Se torna desordenado para aplicaciones complejas (ODBC) No es la cura a todos los males, es solo otro paradigma Ideal para prototipos y aplicaciones pequenas No recomendable para aplicaciones demasiado complejas (SIGA) No recomendable para trabajo a bajo nivel (Driver)
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Literales
Numeros:
enteros (42) punto otante (1.66) notacion cientca (1.2E10) complejos (-2.1 + 0.9j)
Strings:
entre apostrofes (Hola Mundo) entre comillas ("marays bar") multilinea (triple comilla o apostrofe) Una linea de texto Aqui no se interpreta la indentacion Los Strings son inmutables Python no tiene tipo char
Identicadores
Nombres de identicadores se componen igual que en C Variables: cualquier identicador es una variable a no ser que se demuestre lo contrario Tipos de Datos: clases, strings y numeros Funciones: los subprogramas denidos por el operador def Objetos: todo lo anterior son objetos, incluyendo strings y numeros!
Indentacion
En Python la indentacion es parte de la sintaxis y semantica del programa, a diferencia de C o Java Los bloques estan denidos por la indentacion No existen literales de bloque como begin/end o { } Es muy importante ser consistente en la indentacion Un error en la indentacion genera un error en el programa
i = 5 p r i n t E l v a l o r es , i # ERROR p r i n t Repito , e l v a l o r es , i
maray@foobar # python indent.py File "indent.py", line 2 print El valor es, i # ERROR SyntaxError: invalid syntax
Operadores
Operadores matematicos, bit-a-bit y relacionales: igual que C y Java Tiene operadores matematicos extendidos a strings (i.e. a + b --> ab o a * 3 --> aaa) Nuevos operadores matematicos: power (**) y oor divition (//) Operadores logicos: not, and y or
Operadores
Operador funcional: lambda Operadores de membresa e identidad: in, not in, is not is Operadores de subndice, rango, tupla, lista, diccionario, etc: x[], x[:], (e1,e2...), [e1,e2...], {key:dat,...}, etc Precedencia: lambda, logicos, membresa/identidad, relacionales, bit-a-bit, matematicos, subndice, rango, tupla, lista, diccionario, etc.
Control de Flujo
Sacados del paradigma imperativo Denidos por el bloque de indentacion y el operador : if se puede utilizar con elif y else while se puede utilizar con else for funciona sobre sequencias, como listas, strings, diccionarios, etc. Es similar a un foreach. Tambien existen los saltos incondicionales implcitos mediante break y continue
Ejemplo while, e if
number = 23 r u n n i n g = True while r u n n i n g : guess = i n t ( r a w i n p u t ( I n g r e s e un numero :
))
i f guess == number : print Correcto ! r u n n i n g = False # t h i s causes t h e w h i l e e l i f guess < number : p r i n t I n c o r r e c t o , es mayor else : p r i n t I n c o r r e c t o , es menor else : p r i n t Termino e l Loop . # Do a n y t h i n g e l s e you want t o do here p r i n t Termino e l programa
while True : s = raw input ( Ingrese S t r i n g : ) i f s == q u i t : break i f len ( s ) > 3: continue p r i n t Tiene que s e r mas l a r g o
Ejemplo for
f o r i i n range ( 1 , 5 ) : print i else : p r i n t Se t e r m i n o f o r i i n [ pato , peto , p i t o , 1 . 3 E04 ] : print i else : p r i n t NEXT ! complex = { uno : 10.23+2 j , dos :1.32+43 j } f o r i , j i n complex . i t e m s ( ) : print i , = , j
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Funciones def
Una denicion de funcion es una sentencia ejecutable. Objetos de primera clase que se ligan en el espacio de nombres del archivo Denidos por el bloque de indentacion y el operador : Los parametros son variables y pueden tener valores por defecto
<funcdef> ::= def <funcname> ( [<par_list>] ) : <staments> <par_list> :== <parameter>[=<value>]| <par_list>,<par_list>
Ejemplo de Funciones
def f i b ( n ) : # w r i t e F i b o n a c c i s e r i e s up t o n P r i n t a F i b o n a c c i s e r i e s up t o n . a, b = 0, 1 while b < n : print b , a , b = b , a+b # Now c a l l t h e f u n c t i o n we j u s t d e f i n e d : f i b (2000) #1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
Funciones Anonimas
Python soporta funciones anonimas usando lambda Pueden ser ligadas a nombres de forma dinamica Se pueden ocupar como funciones parametrizables Simulan paradigma funcional
# ! / u s r / b i n / env python g = lambda x : x 2 print g(8) # 64 def crear sumador ( n ) : r e t u r n lambda x : x + n f = crear sumador ( 2 ) g = crear sumador ( 6 ) print f (42) , g(42) #44 48 p r i n t crear sumador ( 2 2 ) ( 3 3 ) #55
Documentacion de Funciones
Despues del def se utiliza un string multilinea La primer linea es la descripcion corta Despues viene una linea en blanco Por ultimo la descripcion larga
# ! / u s r / b i n / env python def m i f u n c i o n ( ) : Funcion i n u t i l . De verdad e s t a f u n c i o n no hace nada pass help ( mi funcion )
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Listas
Listas son estructuras de datos compuestas Se pueden ocupar como arreglos No son inmutables, y son anidables
# ! / u s r / b i n / env python a = [ j o h n , l o c k e , 42 , 101] b = [ a , b , c ,a ] b # [ a , b , c , [ j o h n , l o c k e , 42 , 1 0 1 ] ] a [ 0 ] # john a [ 1 : 3 ] + [ Boo ! ] # [ l o c k e , 42 , Boo ! ] 2a [ : 3 ] # [ j o h n , l o c k e , 42 , j o h n , l o c k e , 4 2 ] a[2]=a [2] + 1
len ( l i s t ) del l i s t [ x : y ] l i s t . extend ( l ) l i s t . insert ( i ,x) l i s t . remove ( x ) l i s t . count ( x ) l i s t . sort () l i s t . reverse ( ) l i s t . append ( x ) # P i l a y Cola l i s t . pop ( ) # Pila l i s t . pop ( 0 ) # Cola
Tuplas
Como Python es multiparadigma incluye tuplas Muy similares a las listas, pero inmutables Se utilizan con parentesis, en vez de corchetes Muy utilizadas para retornos multiples
# ! / u s r / b i n / env python t = 12345 , 54321 , h e l l o ! t [ 0 ] # 12345 t # (12345 , 54321 , h e l l o ! ) u = t , (1 , 2 , 3 , 4 , 5) u # ( ( 1 2 3 4 5 , 54321 , h e l l o ! ) , ( 1 , 2 , 3 , 4 , 5 ) ) def f u n c ( ) : r e t u r n 3 ,4 x , y = func ( ) print x , y # 3 4
Conjuntos
Colleccion no ordenada de elementos sin duplicados Un Conjunto es un objeto que soporta operaciones matematicas Operadores: Code A=set( list ) obj in A A| B A&B AB A B Descripcion Crea conjunto Membresia Union Conjuncion En A pero no en B En A o B pero no en ambos Formula A = {l1 , l2 , ..., ln } obj A AB AB A (A B) (A B) (A B)
Diccionarios
Tambien llamados arreglos asociativos Coleccion indexada por llaves (keys) Las keys son de cualquier tipo inmutable Se denen como {k1 : v1 , k2 : v2 , ..., kn : vn } No tienen orden implcito, se puede ordenar con sort () . Operador var[key] permite recuperar y/o asignar dict () crea diccionarios desde otras estructuras de datos del hace lo suyo!
Ejemplo de diccionarios
# ! / u s r / b i n / env python t e l = { j a c k : 4098 , sape : 4139} t e l [ guido ] = 4127 t e l # { sape : 4139 , guido : 4127 , j a c k : 4098} t e l [ j a c k ] #4098 del t e l [ sape ] t e l [ i r v ] = 4127 t e l # { guido : 4127 , i r v : 4127 , j a c k : 4098} t e l . keys ( ) # [ guido , i r v , j a c k ] t e l . has key ( guido ) #True guido i n t e l # True d i c t ( [ ( sape , 4139) , ( guido , 4127) , ( j a c k , 4 0 9 8 ) ] ) # { sape : 4139 , j a c k : 4098 , guido : 4127} d i c t ( [ ( x , x 2) f o r x i n ( 2 , 4 , 6 ) ] ) # { 2 : 4 , 4 : 16 , 6 : 36}
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Expresiones Regulares
Patrones de busqueda y reemplazo para strings Forma simple y resumida de tratar con texto Pequeno lenguaje embebido en Python El uso indiscriminado puede llevar a poca legibilidad Una expresion regular se compone de:
Caracteres: se representan a s mismos Metaracteres: representan reglas
Expresiones Regulares
Cada construccion calza con un patron dado, en una posicion especca. A las construcciones que solo registran una posicion (no calzan con caracteres) les llaman anchor. Las construcciones en general son voraces: Calzan lo mas que pueden. Pero tambien son poco previsoras: Calzan en la primera oportunidad, aunque hayan calces mejores mas adelante.
Metacaracteres
. \$ + ? ?,+?,?? {m} {m,n} \ [] | () calza cualquier caracter menos \n calza el principio del string calza el nal del string calza 0 o mas repeticiones de un caracter/regla calza 1 o mas repeticiones de un caracter/regla calza 0 o 1 caracteres calces no voraces (i.e. <h1>title</h1>) calza m veces la ER anterior calza m a n veces (no voraz con ?) escapa los metacaracteres (i.e. \*) conjunto de caracteres. Caracter - para rangos. A|B calza A o B calza la expresion entre parentesis completa (agrupa)
Otros Modicadores
\number \A \b \B \d \D \s \S \w \W} \Z calza number veces lo que le precede calza solo al inicio del string calza el string vacio al principio/nal de una palabra calza el string vacio no al principio/nal de una palabra calza caracteres decimales ([0-9]) calza todo caracter no decimal ([0-9]) calza todo caracter blank ([ \t\n\r\f\v]) calza todo caracter no blank ([ \t\n\r\f\v]) calza todo caracter alfanumerico ([a-zA-Z0-9_]) calza todo caracter no alfanumerico ([a-zA-Z0-9_]) calza solo al nal del string
Algunas ER
(.*)blog(.*)\.com$ # dominios .com que contengan blog pagina\s{1,8}(\d+) # palabra pagina, multiples espacios y un numero 0x[0-9ABCDEF]* # numero hexadecimal linux+ # linu y muchas x begin (.*) end$ # linea que parta con begin y termine con end
Ejemplo de uso de ER
import r e def checkMatch ( myMatch ) : i f myMatch : p r i n t S i c a l z a ! else : p r i n t No c a l z a ! match1= r e . search ( From , From John Lock : ) match2= r e . compile ( From ) . search ( To Jacob ) match3= r e . search ( From , Desde From From ) match4= r e . match ( From , Desde From From ) checkMatch ( match1 ) ; checkMatch ( match2 ) checkMatch ( match3 ) ; checkMatch ( match4 ) s t r 1 = r e . s p l i t ( \W+ , 4 8 15 16 23 42 ) s t r 2 , n= r e . subn ( , , Archivodeprueba2 ) p r i n t s t r 1 , \n , s t r 2 , ( , n , subs )
MatchObject
Objeto que representa un calce. Usado para tratamiento avanzado de calces. Algunos Metodos: m.start() # donde empieza el calce m.end() # donde termina m.span() # tupla (m.start(),m.end()) Algunos Atributos: .re .string .pos .endpos # # # # objeto ER string original posicion inicial de busqueda posicion final de busqueda
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Problema: cuando cierras el interprete se pierde todo el codigo escrito. Solucion: Escribir archivos de codigo fuente, AKA scripts (guiones). Problemas: que pasa si yo quiero reutilizar solo las funciones denidas en un guion? como hago para dividir un guion en multiples archivos? Solucion: Modulos.
Modulos
Basicamente, un modulo es un archivo de codigo fuente Python. El nombre de este archivo debe ser nombre modulo.py. Dentro del codigo de un modulo, el nombre de este puede accederse por medio de la variable name . Un archivo usado como programa siempre lleva el nombre de modulo main . Cualquier modulo puede hacer uso de las deniciones en otro modulo mediante import.
Ejemplo basico
# modulos . py print name ;
Ejemplo: Fibonacci
# modulo de numeros F i b o n a c c i def f i b ( n ) : # e s c r i b e l a s e r i e de F i b o n a c c i hasta n a, b = 0, 1 while b < n : print b , a , b = b , a+b print def f i b 2 ( n ) : # r e t o r n a l a s e r i e de F i b o n a c c i hasta n result = [] a, b = 0, 1 while b < n : r e s u l t . append ( b ) a , b = b , a+b return r e s u l t if name == m a i n : f i b (100) serie = f i b 2 (100) f o r numero i n s e r i e : p r i n t numero
Ejemplo: Fibonacci
jorjazo@bodoque:$ python fibo.py 1 1 2 3 5 8 13 21 34 55 89 1 1 2 3 5 8 13 21 34 55 89
Ejemplo: Fibonacci
jorjazo@bodoque:$ python >>> import fibo >>> fibo.fib(100) 1 1 2 3 5 8 13 21 34 55 89 >>> fib2(100) NameError: name fib2 is not defined >>> from fibo import fib2 >>> fib2(100) [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] >>> fib(100) NameError: name fib is not defined >>> from fibo import * >>> fib(100) 1 1 2 3 5 8 13 21 34 55 89
1. variable sys.path, automaticamente inicializada al directorio actual (no es lo mismo que el directorio del script!) 2. en las ubicaciones descritas en la variable de entorno PYTHONPATH 3. ubicacion dependiente de la instalacion del interprete (en sistemas operativos Unix esta es, usualmente, .:/usr/local/lib/python)
Paquetes
Son espacios de nombres para modulos. Los modulos deben organizarse en una estructura de directorios que represente la estructura de paquetes (similar a Java) Cada directorio a ser tratado como paquete debe contener un archivo llamado init .py. Este archivo puede estar en blanco o tener codigo de inicializacion del paquete. En el se puede denir una variable especial all con los nombres de los modulos que contiene el paquete.
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Errores y excepciones
Se identican dos cursos excepcionales de ejecucion en Python: Errores de sintaxis y excepciones. Los errores de sintaxis ocurren (de modo obvio) cuando el interprete detecta problemas en la sintaxis del codigo. Las excepciones ocurren debido a algun problema generado por la ejecucion del codigo. Ejemplos tpicos: division por cero (ZeroDivisionError), nombres no denidos (NameError), errores de conversion de tipos (TypeError), etc. Se tratan de un modo similar a Java.
Excepciones
Se pueden generar con raise NombreDeError. Sintacticamente se tratan con clausulas try. Se capturan con bloques except. Acepta una clausula nal else para especicar un bloque de codigo que deba ejecutarse despues del try, con o sin excepciones.
Clausulas except
except NombreDeError: para especicar que hacer en caso de un error tipo TipoDeError. except NombreDeError, (errno, strerror): igual que la anterior, pero dentro del bloque se puede utilizar las variables errno y strerror que contienen un numero de error y un mensaje de error, respectivamente. except (ErrorUno, ErrorDos, ErrorTres): permite camputrar error de tipo ErrorUno, ErrorDos y ErrorTres en un mismo bloque. except: solo se puede usar como ultima clausula except en una sentencia try, y sirve de comodn la excepciones no capturadas anteriormente.
Ejemplo
import sys try : f = open ( m y f i l e . t x t ) s = f . readline () i = int (s. strip ()) except I O E r r o r , ( errno , s t r e r r o r ) : s p r i n t I /O e r r o r( %s ) : % % ( errno , s t r e r r o r ) except V a l u e E r r o r : p r i n t Could n o t c o n v e r t data t o an i n t e g e r . except : p r i n t Unexpected e r r o r : , sys . e x c i n f o ( ) [ 0 ] raise
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Sintaxis basica
Sintaxis basica
No requieren estar en un archivo en especial. Su denicion debe ser ejecutada antes de su uso. Se pueden denir en cualquier parte: dentro de un if, funcion, etc.
Caractersticas de Clases
Para Python, estas son basicamente un espacio de nombres. En su denicion se incluyen, mas que nada, deniciones de funciones (metodos). Luego de ejecutarse la denicion de una clase, el lenguaje crea un objeto de clase.
Metodos
Los metodos de una clase son considerados atributos cuyo tipo es metodo. Metodos son una especie particular de funcion: son funciones que reciben, como primer argumento, una referencia al objeto a tratar. A la hora de invocacion no es necesario pasar este argumento, pues Python entiende que subyace en llamadas como obj.metodo(). Sin embargo, este argumento s se debe incluir en la del metodo. declaracion
Tanto MyClass.i como MyClass.f son atributos validos. MyClass. doc tambien lo es, y contiene la documentacion de la clase f es de tipo metodo... MyClass.f() es una invocacion valida, aunque parezca que le falta un parametro. Metodos con nombre init corresponden a constructores.
Objetos
Como es sabido, un objeto es una instancia de una clase. Ademas de los objetos instaciados comunmente, existen objetos de clase, que son los que representan a una clase en particular (e.g. MyClass). Instanciacion se realiza mediante notacion de funciones (i.e. NombreDeClase([args])).
Objetos: ejemplo
> > class Complex : > ... Representa numeros complejos . ... def init ( s e l f , r e a l p a r t , imagpart ) : ... self . r = realpart ... s e l f . i = imagpart ... ... def r e a l ( s e l f ) : ... return s e l f . r ... > > x = Complex ( 3 . 0 , 4.5) > > > x.r , x. i > ( 3 . 0 , 4.5) > > realx = x . real > > > realx () > 3.0 > > x. r = 1 > > > realx () > 1 > > Complex . d o c > Representa numeros complejos > > x . doc > Representa numeros complejos
Herencia
Python permite herencia simple: class DerivedClassName(BaseClassName) ...y herencia multiple class DerivedClassName(Base1, Base2, Base3)
Herencia multiple
Agenda
Lenguajes de Scripting Introduccion al lenguaje Python Una mordida de Python Lenguaje Python Componentes Basicos Subprogramas Estructuras de Datos Expresiones Regulares Python en Serio Modulos Excepciones Clases y Objetos Entrada/Salida
Funciones simples
print () : Imprime tuplas y las separa por espacios le . write () : Funcion para imprimir sobre un descriptor.
import sys p r i n t h o l a + mundo p r i n t h o l a , mundo p r i n t ( h o l a , mundo ) p r i n t [ h o l a , mundo ] p r i n t sys . s t d o u t sys . s t d o u t . w r i t e ( h o l a mundo\n )
Formateo de Salida
Formateo de Strings
Operadores de String (como +,*,etc) Funciones Adicionales
str () : Genera strings en formato humano repr () : Genera strings en formato maquina
Funciones Adicionales
import math s = Hello world . s t r ( s ) # Hello world . repr ( s ) # Hello world . str (0.1) # 0.1 r e p r ( 0 . 1 ) # 0.10000000000000001 f o r x i n range ( 1 , 1 1 ) : p r i n t r e p r ( x ) . r j u s t ( 2 ) , r e p r ( xx ) . r j u s t ( 3 ) , p r i n t r e p r ( x x x ) . r j u s t ( 4 ) 12 . z f i l l ( 5 ) f o r x i n range ( 1 , 1 1 ) : 3d % % ( x , x x , xx x ) 4d print % 2d % p r i n t PI es app %5.3 f . % math . p i t a b l e = { S j o e r d : 4127 , Jack : 4098 , Dcab : 86378} p r i n t %(Jack ) d ; %(S j o e r d ) d ; %(Dcab ) d % t a b l e
Tratamiento de archivos
Objeto le se crea con la funcion f=open(lename,mode) f .read() lee el archivo completo f . readline () y f .readlines () leen lineas f . write (s) escribe el string s en el archivo f .seek(bytes) cambia la posicion en el archivo f .close() cierra el descriptor Nota: el modulo pickle se utiliza para la serializacion de objetos (objetos persistentes).
EOF