PDF de programación - Programación en Python

Imágen de pdf Programación en Python

Programación en Pythongráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
471 visualizaciones desde el 8 de Marzo del 2018
446,2 KB
55 paginas
Creado hace 18a (14/11/2005)
Programaci´on en Python

Jes´us Espino Garc´ıa

Grupo de usuarios de Linux

Universidad Carlos III de Madrid.

18 de Noviembre de 2004

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

2 / 1

Introducci´on.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

3 / 1

¿Qu´e es Python?

Es un lenguaje de programaci´on.
Fue creado en las navidades de 1989.

Su autor es Guido van Rossum.
En su origen era un lenguaje para la gesti´on de Amoeba.

Basado en ABC y Modula-3

En febrero de 1991 pasa a USENET
A partir de ah´ı el lenguaje no ha dejado de crecer.

Actualmente tenemos la versi´on 2.3.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

4 / 1

¿Por qu´e Python?

Python es f´acil de aprender.

Python es sencillo de usar.

Python es potente.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

5 / 1

¿Por qu´e es especial?

Es libre (y gratis).

Es f´acil de escribir.

Es f´acil de leer.

Es f´acil de mantener.

Es de prop´osito general.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

6 / 1

¿Por qu´e es especial?

Alto nivel.

Orientado a objetos.

Interpretado

Introspectivo

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

7 / 1

¿Por qu´e es especial?

Extensible.

Completo.

Din´amico.

Robusto.

M´ultiples plataformas.

Colaborativo.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

8 / 1

¿Por qu´e es especial?

Herencia m´ultiple.

Funciones sobre listas.

Funciones lambda

. . .

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

9 / 1

¿Qui´en lo usa?

Bea Systems
Walt Disney Company
GE Aircraft Engines
Google
Hewlett-Packard
IBM
Microsoft
NASA
Nacional Center for Atmosferic Research
Red Hat
U.S. National Weather Service
U.S. Navy
Xerox
Yahoo!
Zope Corporation
. . .

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

10 / 1

Python.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

11 / 1

El int´erprete

$ python
Python 2.3.4 (#2, Sep 24 2004, 08:39:09)
[GCC 3.3.4 (Debian 1:3.3.4-12)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

12 / 1

Definici´on de variables

No hace falta definir variables.

Los tipos de datos son din´amicos.

Es sensible may´usculas y min´usculas.

>>> a=1
>>> b=1.0
>>> c="1.0"
>>> d=’hola’
>>> e=5j

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

13 / 1

Tipos de datos b´asicos

Enteros.

Coma flotante.

N´umeros complejos.

N´umeros de precisi´on arbitraria.

Cadenas de caracteres.

Tuplas.

Listas.

Diccionarios.

Son din´amicos.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

14 / 1

Listas

Se identifica por []
Lista vac´ıa: []
Elementos separados por comas

[1,2,3,4]

Elementos heterog´eneos

[1,(2,4),"avi´on",["gul","linux","python"]]

Acceso a un elemento
lista[posici´on]
Listas dentro de listas

lista[indice1][indice2]..[indiceN]

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

15 / 1

Listas

Los ´ındices pueden contar tambi´en desde el final

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

16 / 1

0-54-13-22-31-4 Listas

Tambi´en se pueden seleccionar fragmentos
>>> lista = range(5)
>>> lista
[0, 1, 2, 3, 4]
>>> lista[1:-2]
[1, 2]

Devuelve una lista.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

17 / 1

Tuplas

Similares a las estructuras de C.

No hace falta definirlas.
Se crean usando ().
Sus elementos pueden ser heterog´eneos.

Se accede a sus elementos igual que una lista.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

18 / 1

Ejemplos con tuplas

>>> tupla1=(1,2,3)
>>> tupla1
(1, 2, 3)
>>> tupla2=(tupla1,["gul","linux"])
>>> tupla2
((1, 2, 3), [’gul’, ’linux’])
>>> tupla1[2]
3
>>> tupla2[1]
[’gul’, ’linux’]

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

19 / 1

Diccionarios

Como las tablas hash en Java.
Se identifican con {}.
Sus elementos est´an asociados a una clave.
Para acceder a un elemento:

diccionario[clave]

Las claves deben ser ´unicas.

Los elementos complejos no pueden ser claves.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

20 / 1

Diccionarios

Algunos m´etodos:

has_key(clave): Devuelve 1 si existe la clave.
items(): Devuelve una lista con el contenido.
iteritems(): Itera sobre la tupla (clave:elemento)
iterkeys(): Itera sobre las claves.
keys(): Devuelve una lista con las claves.

M´as informaci´on help(dict).

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

21 / 1

Buceando dentro de Python

Lenguaje introspectivo.
dir() muestra los objetos que hay en la memoria.
Los m´etodos tambi´en son objetos.

>>> dir()
[’__builtins__’, ’__doc__’, ’__name__’, ’a’, ’b’, ’c’, ’d’, ’e’]

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

22 / 1

Buceando dentro de Python

Es muy ´util cuando tienes mala memoria.

>>> dir([])
[’__add__’, ’__class__’, ’__contains__’, ’__delattr__’, ’__delitem__’,’
__delslice__’, ’__doc__’, ’__eq__’, ’__ge__’, ’__getattribute__’, ’__ge
titem__’, ’__getslice__’, ’__gt__’, ’__hash__’, ’__iadd__’, ’__imul__’,
’__init__’, ’__iter__’, ’__le__’, ’__len__’, ’__lt__’, ’__mul__’, ’__ne
__’, ’__new__’, ’__reduce__’, ’__reduce_ex__’, ’__repr__’, ’__rmul__’,
’__setattr__’, ’__setitem__’, ’__setslice__’, ’__str__’, ’append’, ’cou
nt’, ’extend’, ’index’, ’insert’, ’pop’, ’remove’, ’reverse’, ’sort’]

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

23 / 1

Un poquito de ayuda

>>> help([].append)
Help on built-in function append:

append(...)

L.append(object) -- append object to end

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

24 / 1

Indentado

El lenguaje es sensible al indentado.

Despu´es de : hay un bloque.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

25 / 1

Bloque 1Bloque 1Bloque 2 Condiciones

if condicion1:

bloque si se cumple la condici´on

elif condicion2:

bloque si no se cumple la condici´on 1 y si la 2

else:

bloque si no se cumple ninguna condici´on anterior.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

26 / 1

Bucles

while condicion:

Lo que se hace en el bucle

break sale del bucle.

continue pasa a la siguiente iteraci´on.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

27 / 1

Iteraciones

for variable in lista:

Lo que est´a dentro de la iteraci´on

Se basa en las listas.

Funci´on range().

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

28 / 1

Rangos

range(x) devuelve una lista con un intervalo

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(5,7)
[5, 6]

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

29 / 1

Definici´on de funciones

def funcion(argumento1,argumento2...):

’Documentaci´on de la funci´on’
Contenido de la funci´on
[Opci´on: return salida]

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

30 / 1

Par´ametros de las funciones

Puede tener cero, uno o varios.

Puedo llamarla con menos par´ametros.

Puedo indicar los par´ametros con los que llamo.

Puedo poner valores por defecto.

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

31 / 1

Veamos un ejemplo

def diHolaMundo(mensaje="Hola Mundo!",numVeces=1):

’Mi funci´on hola mundo pesado de ejemplo.’
for i in range(numVeces):

print mensaje

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

32 / 1

Usando mi funci´on de ejemplo

>>> diHolaMundo()
Hola Mundo!
>>> diHolaMundo("Hola a todos")
Hola a todos
>>> diHolaMundo("Hola a todos",3)
Hola a todos
Hola a todos
Hola a todos
>>> diHolaMundo(3)
3
>>> diHolaMundo(numVeces=3)
Hola Mundo!
Hola Mundo!
Hola Mundo!

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

33 / 1

Creando nuestra propia ayuda

>>> help(diHolaMundo)
Help on function diHolaMundo in module __main__:

diHolaMundo(mensaje=’Hola Mundo!’, numVeces=1)

Mi funci´on hola mundo pesado de ejemplo.

>>> diHolaMundo.__doc__
’Mi funci´on hola mundo pesado de ejemplo.’

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

34 / 1

Escribiendo programas

En archivos .py.
Primera linea de un script de Unix.

#!/usr/bin/python

Ficheros .pyc son bibliotecas precompiladas.
Podemos llamarlo desde la linea de comandos.

python programa.py
./programa.py

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

35 / 1

Entrada por teclado

input("cadena"): Muestra la cadena y obtiene un entero.
>>> x=input("Obtener valor: ")
Obtener valor: 5
>>> x
5

raw_input("cadena"): Muestra la cadena y obtiene una cadena.
>>> y=raw_input("Obtener valor: ")
Obtener valor: 5
>>> y
’5’

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

36 / 1

Par´ametros de entrada

sys.argv es una lista con los par´ametros.

Utilizaci´on:

import sys
nombre = sys.argv[0]
primer_parametro = sys.argv[1]
...

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre de 2004

37 / 1

Consejos para los programas

Es bueno dividir el c´odigo en funciones.

Podemos incluir c´odigo de prueba en un archivo.

Se ejecuta muy f´acil con:

if __name__==’__main__’:

testme()

Jes´us Espino Garc´ıa (GUL UC3M)

Programaci´on en Python

18 de Noviembre
  • Links de descarga
http://lwp-l.com/pdf9344

Comentarios de: Programación en Python (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad