Intoduccion Python

36
Lenguaje Python Características generales

description

Uploaded from Google Docs

Transcript of Intoduccion Python

Page 1: Intoduccion Python

Lenguaje Python

Características generales

Page 2: Intoduccion Python

Lenguaje Python

• Temario

• Características generales de Software Libre• Origen del lenguaje• El proceso de ejecución• Características del lenguaje

Page 3: Intoduccion Python

• Software Libre:– Se refiere a la libertad de los usuarios para ejecutar,

copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:

• La libertad de usar el programa, con cualquier propósito (libertad 0).

• La libertad de estudiar cómo funciona el programa, y adaptarlo a necesidades propias (libertad 1). El acceso al código fuente es una condición previa para esto.

• La libertad de distribuir copias (libertad 2).• La libertad de mejorar el programa y hacer públicas las

mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto.

Lenguaje Python

Page 4: Intoduccion Python

• Código Abierto (http://www.opensource.org)– No solo significa posibilidad de acceso al código. El

término se completa con los siguientes criterios:– Libre redistribución: el software debe poder ser regalado

o vendido libremente.– Código fuente: el código fuente debe estar incluido u

obtenerse libremente.– Trabajos derivados: la redistribución de modificaciones

debe estar permitida.– Integridad del código fuente del autor: las licencias

pueden requerir que las modificaciones sean redistribuidas sólo como parches.

– Sin discriminación de personas o grupos: nadie puede dejarse fuera.

– Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos

– Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa

Lenguaje Python

Page 5: Intoduccion Python

• Código Abierto (Cont.)− La licencia no debe ser específica de un producto: el

programa no puede licenciarse solo como parte de una distribución mayor.

− La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.

− La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.

La implementación de Python esta bajo la licencia de Open Source. Esto hace que sea de libre uso y

distribución, incluso para uso comercial. La licencia de Python es administrado por la “Python Software

Foundation” (PSF).

Lenguaje Python

Page 6: Intoduccion Python

Lenguaje Python

• Origen del lenguaje– Desarrollado por Guido Van Rossum a finales de los

años 80 en el centro de investigación en Matematicas CWI en Holanda.

– El nombre proviene del grupo de cómicos ingleses “Monty Python”.

– Fué creado para suceder al lenguaje de programación ABC.

– En la primera versión ya estaban presentes clases con herencia, manejo de excepciones, funciones, y los tipos medulares: list, dict, str. Además ya aparecía un sistema de módulos adoptado del lenguaje Modula-3

Page 7: Intoduccion Python

Lenguaje Python

• Usos del lenguaje– Se ha utilizado y se utiliza ampliamente para:

• Programar tareas de administración de sistemas. Ej. En distribuciones Linux

• Producción de efectos especiales de películas. Ej. empresa: Industrial Light & Magic

• En sistemas informáticos de la NASA• Gestión de grupos de discusión (ej. Yahoo lo utiliza)• Parte de componentes de rastreadores Web y motores de

búsqueda (ej. Google lo utiliza)• Realización de juegos de computadora• En la bioinformática• Enseñaza de la programación, etc.

Lenguaje que en los últimos años ha crecido de manera constante. El interés en su uso ha ido aumentado

notablemente

Page 8: Intoduccion Python

Lenguaje Python

• Proceso de ejecución– Existen dos formas de ejecutar código Python:

• Usando el modo interactivo y obtener una respuesta por cada línea. Sesión interactiva o

• Escribir el código de un programa en un archivo de texto y luego ejecutarlo.

– Modo interactivo:• Existen otros programas, tales como IDLE e IPython, que

añaden funcionalidades extra al modo interactivo, como el auto-completar código y el coloreado de la sintaxis del lenguaje.

• Al ejecutar Python se abrirá una ventana y aparecerá un prompt similar a:

Py thon 2.4 (# 1, De c 7 2004, 09:18:58) [GCC 3.4.1] on s unos 5 Ty pe " he lp" , " copy right" , " cre d its " or " lice ns e " for m ore info rm a tion.> > >

Indica el número de versión y da información de derechos de copia, antes de mostrar el primer indicador

Page 9: Intoduccion Python

Lenguaje Python

• IDLE (Python GUI)

Page 10: Intoduccion Python

Lenguaje Python

• Características del lenguaje– Lenguaje de alto nivel, fácil de aprender. Muy expresivo

y legible.– Python puede usarse como lenguaje imperativo

procedimental o como lenguaje orientado a objetos.– Interpretado.– Sintáxis elegante y Tipado dinámico y fuerte.– Tiene un eficiente manejo de estructura de datos de

alto nivel.– Lenguaje interpretado, ideal para crear scripts y rápido

desarrollo de aplicaciones en muchas áreas sobre la mayoría de las plataformas. Multiplataforma.

Page 11: Intoduccion Python

Lenguaje Python

Sintaxis Básica

Page 12: Intoduccion Python

Lenguaje Python

• Temario

– Variables y Tipos– Conversiones– Estructuras de Control– Esquema de una aplicación Python

Page 13: Intoduccion Python

Lenguaje Python

• Variables y Tipos de Datos

Page 14: Intoduccion Python

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, dígitos y “_” . Deben comenzar con letra. –Importante:

• Hay que asignarle un valor a una variable antes de poder utilizarla.

• Hace diferencia entre mayúsulas y minúsculas: variable x es distinto de variable X

Page 15: Intoduccion Python

Lenguaje Python

•Comentarios–Para insertar un comentario dentro del programa se utiliza el símbolo ‘#’.–Si el comentario ocupa varias líneas, debe repetirse ‘#’ en cada línea.

Page 16: Intoduccion Python

Lenguaje Python

• Tipos de datos– Básicos:

• Números:– Enteros– Flotantes– Complejos

• Booleanos• Cadenas de texto

– Colecciones (Estructuras de datos)

C

• Listas• Tuplas• Conjuntos• Dicciononarios

Page 17: Intoduccion Python

Lenguaje Python

•Tipos Básicos - Enteros–Se representan mediante los tipos int y long

• Long, permite almancenar número más grandes» Se almancenan en 64 bits y el rango de valores es de

-9.233.372.036.854.775.808 a 9.233.372.036.854.775.807

• Int (equivalen a los long de C)» Se almacenan en 32 bits y el rango de valores es de

-2.147.483.648 a 2.147.483.647Al asignar un número a una variable, le asociará un tipo “int” en caso que su valor entre en 32 bits, caso contrario reserva automáticamente

para un “long” (salvo con versiones Python menores a las 2.2)•>>> var_ent1= 32 •>>> var_ent2= 32L

Entero

Entero largo

Page 18: Intoduccion Python

Lenguaje Python

•Enteros (Cont.)–El literal que se asigna a la variable también 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 número 23 en base 10

Hexadecimal que representa al 23 en base 10

Page 19: Intoduccion Python

Lenguaje Python

•Tipos Básicos - Reales–Se representan mediante los tipos float

• Se almancenan en 64 bits• Son equivalentes a los double de C. • Sigue el estándar 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 más precisa, se cuenta con el tipo decimal, desde la versión 2.4 de Python

•>>> var_real1= 0.2703 •>>> var_real2= 0.1e-3

Notación científica. Equivale al número:0.1 x 10-3 =0.1x0.001=0.0001

Page 20: Intoduccion Python

Lenguaje Python

•Sobre conversiones–La división entre enteros redondea para abajo.

• Ej. >>> i= 7/2, da como resultado 3

–Una expresión con números 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

Page 21: Intoduccion Python

Lenguaje Python

•Tipos Básicos - Complejos–Son los tipos complex

• Contienen una parte real y una parte imaginaria. • Se almacenan usando punto flotante ya que son una

extensión 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

Page 22: Intoduccion Python

Lenguaje Python

•Complejos (Cont.)–Se pueden crear con la función “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)

•i.real da como resultado 2.0 e

• i.imag da como resultado 3.0

–NO se pueden aplicar conversiones explícitas a enteros o flotantes con las funciones float(), int() o long(). Se usa “abs()” para obtener el módulo de un complejo.

Page 23: Intoduccion Python

Lenguaje Python

•Operadores aritméticos y a nivel de bit–Operaciones que pueden hacerse sobre variables numéricas y números. (Para operaciones más complejas, usar “biblioteca math”)

Operador Descripción

Opera

dores

aritmé

ticos

+ Suma- Resta* Multiplicación/ División- Negación** Exponente// División entera% Resto de la división

Page 24: Intoduccion Python

Lenguaje Python

•Tipos Básicos - Booleanos–Contienen 2 únicos valores •Operadores lógicos

•Operadores relacionales

TrueFalse

N o a

Descripción Ejemplo¿S e cumple a y b? r = T rue and False # r es False¿S e cumple a o b? r = T rue or False # r es True

r = not T rue # r es False

==!=<><=>=

Operador Descripción Ejemplo¿S on iguales a y b? r = 5 == 3 # r es False¿S on dis tintos a y b? r = 5 != 3 # r es True¿Es a menor que b? r = 5 < 3 # r es False¿Es a mayor que b? r = 5 > 3 # r es True¿Es a menor o igual que b? r = 5 <= 5 # r es True¿Es a mayor o igual que b? r = 5 >= 3 # r es True

Page 25: Intoduccion Python

Lenguaje Python

•Tipos Básicos - Cadenas–Secuencia de caracteres (letras, números, marcas de puntuación, etc.).–Se encierran entre comillas simples ' ' o comillas dobles “ ”–Algunos operadores: –Ejemplos:•>>> nombre = 'pepe '•>>> apellido = “ perez”•>>> nombre + apellido•'pepe perez'•>>>'perez' * 5•'perezperezperezperezperez'

+ operador de concatenación entre dos cadenas

* operador de repetición de cadenas

+ (concatenación) * (repetición)

Page 26: Intoduccion Python

Lenguaje Python

•Cadenas (cont.)–Operadores de comparación: ==, !=, >, <, >=,<=–Ejemplos:•>>> 'pepe ' == 'pepe'•true•>>> “juan”<”ana”•false•Python utiliza un criterio de comparación de cadenas muy natural: el órden alfabético•Python utiliza los códigos ASCII de los caracteres para decidir su orden

Para saber el órden que ocupa un carácter se cuenta con las funciones predefinidas “ord()” y “chr()”, su función inversa.

Page 27: Intoduccion Python

Lenguaje Python•Cadenas (cont.)–Funciones predefinidas que manipulan cadenas:

Función Descripción EjemploConvierte la cadena numérica a entero

Convierte la cadena numérico a flotante

int()

float()

str() Convierte un número a string

ord() Devuelve el código ASCII (número entero) correspondiente del carácter

chr() Devuelve el carácter correspondiente al número

Page 28: Intoduccion Python

Lenguaje Python

•Cadenas (cont.)–Algunos métodos propios de las cadenas:

Métodos Descripción Ejemploa.lower() Convierte los caracteres de la cadena “a” a

minúscula

a.upper() Convierte los caracteres de la cadena “a” a mayúsucula

Page 29: Intoduccion Python

Lenguaje Python

•Cadenas (cont.): Scape–¿Cómo colocamos en una cadena de caractéres especiales y que Python no lo interprete en forma errónea?–Ej: error al querer colocar en una cadena el carácter especial de salto de línea

Error al intentar insertar un Enter en la cadenaUso de

“caracter de escape” para insertar caracteres especiales El carácter de escape “\” hace que lo que siga se tome como carácter especial.

Ej.: \n: salto de línea; \t: tabulación, etc.

Page 30: Intoduccion Python

Lenguaje Python

•Cadenas (cont.): Scape

Page 31: Intoduccion Python

Lenguaje Python

•Cadenas (cont.): Otros usos de \–El carácter de escape \ se utiliza también 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 'año\'10' , imprime año'10

Page 32: Intoduccion Python

Lenguaje Python

•Cadenas (cont.): –Longuitud de las cadenas• Uso de función predefinida len()

•len('') devuelve longuitud 0•len(' ') devuelve longuitud 1

Page 33: Intoduccion Python

Lenguaje Python

•Cadenas (cont.): –Accediendo a los caracteres de las cadenas• cadena = 'Hola que tal'

Indices negativos, recorren de derecha a izquierda la cadena

El operador : (slicing), nos permite obtener subcadenas.[:] devuelve toda la cadena

Page 34: Intoduccion Python

Lenguaje Python

•Tipos Estructurados - Listas–Colección 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 (posición 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 también []. El primero indica posición de la lista exterior, los otros indican posición de las listas interiores. Ej.: lis1[3][1], devuelve 7•Se pueden usar indices negativos. En ese caso se comienza a contar desde atrás. Ej.: lis1[-3], devuelve True

Page 35: Intoduccion Python

Lenguaje Python

•Listas (Cont.)–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]]

lis1= [22, True, 'una lista', [1,7]]

Page 36: Intoduccion Python

Lenguaje Python

•Listas (Cont.)•Se puede utilizar el mecanismo de Slicing para:– Modificar elementos de las listas•Ej.: lis1[0:2]=[1,2], la lista quedaría [1,2,'una lista',[1,7]]

– Agregar o quitar elementos a la lista cambiando su tamaño •Ej.:

•lis1[0:2]=[1,2,3], la lista quedaría [1,2,3,'una lista',[1,7]] Acá se cambió el tamaño de la lista, agregando un elemento más (el elemento 3)

•lis1[0:2]=[1], la lista quedaría [1,'una lista',[1,7]]

• Acá se cambió el tamaño de la lista, cambiando el primer elemento y quitando el segundo

lis1= [22, True, 'una lista', [1,7]]

Existen funciones predefinidas que permiten modificar listas