Lenguaje Python
Caractersticas generales
Lenguaje Python
Temario Caractersticas generales de Software Libre Origen del lenguaje El proceso de ejecucin Caractersticas del lenguaje
Lenguaje Python
Software Libre:
Se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo ms preciso, se refiere a cuatro libertades de los usuarios del software:
La libertad de usar el programa, con cualquier propsito (libertad 0). La libertad de estudiar cmo funciona el programa, y adaptarlo a necesidades propias (libertad 1). El acceso al cdigo fuente es una condicin previa para esto. La libertad de distribuir copias (libertad 2). La libertad de mejorar el programa y hacer pblicas las mejoras a los dems, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al cdigo fuente es un requisito previo para esto.
Lenguaje Python
Cdigo Abierto ([Link]
No solo significa posibilidad de acceso al cdigo. El trmino se completa con los siguientes criterios:
Libre redistribucin: el software debe poder ser regalado o vendido libremente. Cdigo fuente: el cdigo fuente debe estar incluido u obtenerse libremente. Trabajos derivados: la redistribucin de modificaciones debe estar permitida. Integridad del cdigo fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas slo como parches. Sin discriminacin de personas o grupos: nadie puede dejarse fuera. Sin discriminacin de reas de iniciativa: los usuarios comerciales no pueden ser excluidos Distribucin de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa
Lenguaje Python
Cdigo Abierto (Cont.)
La licencia no debe ser especfica de un producto: el programa no puede licenciarse solo como parte de una distribucin mayor. La licencia no debe restringir otro software: la licencia no puede obligar a que algn otro software que sea distribuido con el software abierto deba tambin ser de cdigo abierto. La licencia debe ser tecnolgicamente neutral: no debe requerirse la aceptacin de la licencia por medio de un acceso por clic de ratn o de otra forma especfica del medio de soporte del software.
La implementacin de Python esta bajo la licencia de Open Source. Esto hace que sea de libre uso y distribucin, incluso para uso comercial. La licencia de Python es administrado por la Python Software
Lenguaje Python
Origen del lenguaje
Desarrollado por Guido Van Rossum a finales de los aos 80 en el centro de investigacin en Matematicas CWI en Holanda. El nombre proviene del grupo de cmicos ingleses Monty Python. Fu creado para suceder al lenguaje de programacin ABC. En la primera versin ya estaban presentes clases con herencia, manejo de excepciones, funciones, y los tipos medulares: list, dict, str. Adems ya apareca un sistema de mdulos adoptado del lenguaje Modula-3
Lenguaje Python
Usos del lenguaje
Se ha utilizado y se utiliza ampliamente para:
Programar tareas de administracin de sistemas. Ej. En distribuciones Linux Produccin de efectos especiales de pelculas. Ej. empresa: Industrial Light & Magic En sistemas informticos de la NASA Gestin de grupos de discusin (ej. Yahoo lo utiliza) Parte de componentes de rastreadores Web y motores de bsqueda (ej. Google lo utiliza) Realizacin de juegos de computadora En la bioinformtica Enseaza de la programacin, etc. Lenguaje que en los ltimos aos ha crecido de manera constante. El inters en su uso ha ido aumentado
Lenguaje Python
Proceso de ejecucin
Existen dos formas de ejecutar cdigo Python:
Usando el modo interactivo y obtener una respuesta por cada lnea. Sesin interactiva o Escribir el cdigo de un programa en un archivo de texto y luego ejecutarlo.
Modo interactivo:
Existen otros programas, tales como IDLE e IPython, que aaden funcionalidades extra al modo interactivo, como el auto-completar cdigo y el coloreado de la sintaxis del lenguaje. Al ejecutar Python se abrir una ventana y aparecer un Indica el nmero de prompt similar a:
P y tho n 2.4 (# 1, De c 7 2004, [Link]) [G CC 3.4.1] o n s uno s 5 Ty p e " he lp" , " c o py right" , " c re d its " o r " lic e ns e " fo r m o re info rm a tio n.
versin y da informacin de derechos de copia, antes de mostrar el primer indicador
Lenguaje Python
IDLE (Python GUI)
Lenguaje Python
Caractersticas del lenguaje
Lenguaje de alto nivel, fcil de aprender. Muy expresivo y legible. Python puede usarse como lenguaje imperativo procedimental o como lenguaje orientado a objetos. Interpretado. Sintxis elegante y Tipado dinmico y fuerte. Tiene un eficiente manejo de estructura de datos de alto nivel. Lenguaje interpretado, ideal para crear scripts y rpido desarrollo de aplicaciones en muchas reas sobre la mayora de las plataformas. Multiplataforma.
Lenguaje Python
Sintaxis Bsica
Lenguaje Python
Temario
Variables y Tipos Conversiones Estructuras de Control Esquema de una aplicacin Python
Lenguaje Python
Variables y Tipos de Datos
Lenguaje Python
Variables
Una variable es un nombre que representa o refiere a un valor. Ejemplo:
>>> x = 3 El nombre x, representa el valor 3
En Python las variables no se declaran. El nombre de las variables pueden contener letras, dgitos y _ . Deben comenzar con letra. Importante:
Hay que asignarle un valor a una variable antes de poder utilizarla. Hace diferencia entre maysulas y minsculas: variable x es distinto de variable X
Lenguaje Python
Comentarios
Para insertar un comentario dentro del programa se utiliza el smbolo #. Si el comentario ocupa varias lneas, debe repetirse # en cada lnea.
Lenguaje Python
Tipos de datos
Bsicos:
Nmeros:
Enteros Flotantes Complejos
Booleanos Cadenas de texto
Colecciones (Estructuras de datos)
Listas Tuplas Conjuntos Dicciononarios
Lenguaje Python
Tipos Bsicos - Enteros
Se representan mediante los tipos int y long
Long, permite almancenar nmero ms grandes
Se almancenan en 64 bits y el rango de valores es de -[Link].854.775.808 a [Link].854.775.807
Int (equivalen a los long de C)
Se almacenan en 32 bits y el rango de valores es de -[Link] a [Link] Al asignar un nmero a una variable, le asociar un tipo int en caso que su valor entre en 32 bits, caso contrario reserva automticamente para un long (salvo con versiones Python menores a las 2.2)
>>> var_ent1= 32 >>> var_ent2= 32L
Entero Entero largo
Lenguaje Python
Enteros (Cont.)
El literal que se asigna a la variable tambin se puede expresar como un:
Un octal, anteponiendo un 0 (cero) o un Un hexadecimal, anteponiendo un 0x:
>>> var_ent3 = 027 >>> var_ent4= 0x17
Octal que representa al nmero 23 en base 10 Hexadecimal que representa al 23 en base 10
Lenguaje Python
Tipos Bsicos - Reales
Se representan mediante los tipos float
Se almancenan en 64 bits Son equivalentes a los double de C. Sigue el estndar IEEE 754: utiliza 1 bit para el signo, 11 para el exponente y 52 para la mantisa. El rango de valores es de 22250738585072020 x 10-308 a 17976931348623157 x 10308
Para el caso de necesitar representar fracciones de forma ms precisa, se cuenta con el tipo decimal, desde la versin 2.4 de Python
>>> var_real1= 0.2703 >>> var_real2= 0.1e-3
Notacin cientfica. Equivale al nmero: 0.1 x 10-3 =0.1x0.001=0.0001
Lenguaje Python
Sobre conversiones
La divisin entre enteros redondea para abajo.
Ej. >>> i= 7/2, da como resultado 3
Una expresin con nmeros mixtos se convierte a flotante.
Ej. >>> i= 7.5/2, da como resultado 3.75
Existen funciones que realizan conversiones explicitas, como ser float(), int() y long().
Ej. >>> i= int(7.5)/2, da como resultado 3
Lenguaje Python
Tipos Bsicos - Complejos
Son los tipos complex
Contienen una parte real y una parte imaginaria. Se almacenan usando punto flotante ya que son una extensin de los float.
En concreto se almancenan en una estructura de C, compuesta por dos variables de tipo double. Una parte almacena la parte real y la otra la parte imaginaria.
>>> var_comple= 2.1 + 7.8j
Parte real Parte imaginaria
Lenguaje Python
Complejos (Cont.)
Se pueden crear con la funcin complex.
Ej. >>> i=complex(2,3), da como resultado (2+3j)
Para extraer la parte imaginaria o real de un complejo se utlizan .real o .imag
Ej. >>> i=complex(2,3)
[Link] da como resultado 2.0 e
[Link] da como resultado 3.0
NO se pueden aplicar conversiones explcitas a enteros o flotantes con las funciones float(), int() o long(). Se usa abs() para obtener el mdulo de un complejo.
Lenguaje Python
Operadores aritmticos y a nivel de bit
Operaciones que pueden hacerse sobre variables numricas y nmeros. (Para operaciones ms complejas, usar biblioteca math)
Operador + * / ** // % Descripcin Suma Resta Multiplicacin Divisin Negacin Exponente Divisin entera Resto de la divisin
Operadores aritmticos
Lenguaje Python
Tipos Bsicos - Booleanos
Contienen 2 nicos valores Operadores lgicos
D escripcin S e cu mp le a y b ? S e cu mp le a o b ? No a
True False
Ejemplo r = T ru e an d F als e # r es False r = T ru e o r F als e # r es True r = n o t T ru e # r es False
Operadores relacionales
Operador == != < > <= >= Descripcin S on ig uales a y b? S on dis tintos a y b? Es a menor que b? Es a may or que b? Es a menor o ig ual que b? Es a may or o ig ual que b? Ejemplo r = 5 == 3 # r es False r = 5 != 3 # r es True r = 5 < 3 # r es False r = 5 > 3 # r es True r = 5 <= 5 # r es True r = 5 >= 3 # r es True
Lenguaje Python
Tipos Bsicos - Cadenas
Secuencia de caracteres (letras, nmeros, marcas de puntuacin, etc.). Se encierran entre comillas simples ' ' o comillas dobles + (concatenacin) Algunos operadores: * (repeticin) Ejemplos:
>>> nombre = 'pepe ' >>> apellido = perez >>> nombre + apellido 'pepe perez' >>>'perez' * 5
+ operador de concatenacin entre dos cadenas * operador de repeticin de cadenas
Lenguaje Python
Cadenas (cont.)
Operadores de comparacin: ==, !=, >, <, >=,<= Ejemplos:
>>> 'pepe ' == 'pepe' true >>> juan<ana false Python utiliza un criterio de comparacin de cadenas muy natural: el rden alfabtico Python utiliza los cdigos ASCII de los caracteres para decidir su orden
Para saber el rden que ocupa un carcter se cuenta con las funciones predefinidas ord() y chr(), su funcin inversa.
Lenguaje Python
Cadenas (cont.)
Funciones predefinidas que manipulan cadenas:
Funcin int() float() str() ord() chr()
Descripcin
Convierte la cadena numrica a entero Convierte la cadena numrico a flotante Convierte un nmero a string Devuelve el cdigo ASCII (nmero entero) correspondiente del carcter Devuelve el carcter correspondiente al nmero
Ejemplo
Lenguaje Python
Cadenas (cont.) Algunos mtodos propios de las cadenas:
Mtodos [Link]() [Link]() Descripcin
Convierte los caracteres de la cadena a a minscula Convierte los caracteres de la cadena a a maysucula
Ejemplo
Lenguaje Python
Cadenas (cont.): Scape
Cmo colocamos en una cadena de caractres especiales y que Python no lo interprete en forma errnea? Ej: error al querer colocar en una cadena el carcter especial de salto de lnea
Error al intentar insertar un Enter en la cadena
Ej.: \n: salto de lnea; \t: tabulacin, etc.
Uso de caracter de escape para insertar El carcter de escape \ hace que lo que caracteres como carcter especial. siga se tome especiales
Lenguaje Python
Cadenas (cont.): Scape
Lenguaje Python
Cadenas (cont.): Otros usos de \
El carcter de escape \ se utiliza tambin para representar otros caracteres que no se pueden representar directamente en una cadena. Ej.: \, '', Para representarlas en una cadena deben estar antecedidas por \. Ej: >>>print 'ao\'10' , imprime ao'10
Lenguaje Python
Cadenas (cont.):
Longuitud de las cadenas Uso de funcin predefinida len()
len('') devuelve longuitud 0 len(' ') devuelve longuitud 1
Lenguaje Python
Cadenas (cont.):
Accediendo a los caracteres de las cadenas cadena = 'Hola que tal'
El operador : (slicing), nos permite obtener subcadenas. [:] devuelve toda la cadena Indices negativos, recorren de derecha a izquierda la cadena
Lenguaje Python
Tipos Estructurados - Listas
Coleccin ordenada, equivalente a Arrays o Vectores Puede contener cualquier tipo de datos, inclusive listas. Ej.: lis1= [22, True, 'una lista', [1,7]] Forma de acceder a sus elementos: Indicar el ndice del elemento (posicin dentro de la lista), entre corchetes []. IMPORTANTE: los ndices comienzan en 0.
Ej.: lis1[1] = False, esto provoca que el 2do elemento de la lista se
cambie
Para acceder a elementos listas, se debe usar tambin []. El primero indica posicin de la lista exterior, los otros indican posicin de las listas interiores. Ej.: lis1[3][1], devuelve 7 Se pueden usar indices negativos. En ese caso se comienza a contar desde atrs. Ej.: lis1[-3], devuelve True
Lenguaje Python
Listas (Cont.)
lis1= [22, True, 'una lista', [1,7]]
Seleccionando porciones de listas (Slicing): Para seleccionar parte de una lista se debe colocar inicio:fin. Indica que queremos la parte de la lista que comprende desde el elemento inicio hasta el elemento anterior a fin. NO incluye al elemento cuyo ndice es fin. Ej.: lis1[1:3], devuelve la lista [True,'una lista']
Si no se pone inicio o fin, se toma por defecto las posiciones de inicio y fin de la lista. Ej.: lis1[ :2], devuelve la lista [22,True,'una lista']
lis1[2:], devuelve la lista ['una lista',[1,7]]
Lenguaje Python
Listas (Cont.)
lis1= [22, True, 'una lista', [1,7]]
Se puede utilizar el mecanismo de Slicing para: Modificar elementos de las listas
Ej.: lis1[0:2]=[1,2], la lista quedara [1,2,'una lista',[1,7]]
Agregar o quitar elementos a la lista cambiando su tamao
Ej.:
lis1[0:2]=[1,2,3], la lista quedara [1,2,3,'una lista',[1,7]] Ac se cambi
el tamao de la lista, agregando un elemento ms (el elemento 3)
lis1[0:2]=[1], la lista quedara [1,'una lista',[1,7]]
Ac se cambi el tamao de la lista, cambiando el primer
elemento y quitando el segundo
Existen funciones predefinidas que permiten modificar listas