PDF de programación - Programación en Python

Imágen de pdf Programación en Python

Programación en Pythongráfica de visualizaciones

Publicado el 23 de Junio del 2018
933 visualizaciones desde el 23 de Junio del 2018
297,6 KB
84 paginas
Creado hace 13a (11/01/2011)
Programación en Python

Departamento de Sistemas Telemáticos y Computación (GSyC)

gsyc-profes (arroba) gsyc.es

Marzo de 2010

GSyC - 2010

Programación en Python

1

c2010 GSyC
Algunos derechos reservados.
Este trabajo se distribuye bajo la licencia

Creative Commons Attribution Share-Alike 3.0

GSyC - 2010

Programación en Python

2

Contenidos

1 El Lenguaje Python
2 Programación en Python

Tipos de objeto
Cadenas
Listas
Diccionarios
Tuplas
Cadenas Unicode
Sentencias de control
Funciones
Ficheros
Cadenas de documentación
Excepciones

3 Librerías

Librería commands
Librería sys
Librerías os, shutil
Librerías pickle: Persistencia

GSyC - 2010

Programación en Python

3

El Lenguaje Python

El Lenguaje Python

Lenguaje de autor creado por Guido van Rossum en 1989

Muy relacionado originalmente con el S.O. Amoeba

Disponible en Unix, Linux, MacOS, Windows,

Libre

Lenguaje de Script Orientado a Objetos (no muy puro)

Muy alto nivel

Librería muy completa

GSyC - 2010

Programación en Python

4

El Lenguaje Python

Verdadero lenguaje de propósito general

Sencillo, compacto

Sintaxis clara
Interpretado => Lento
Ofrece persistencia

Recolector de basuras

Muy maduro y muy popular

Aplicable para software de uso general

GSyC - 2010

Programación en Python

5

El Lenguaje Python

Programa python

for x in xrange(1000000):

print x

Su equivalente Java

public class ConsoleTest {

public static void main(String[] args) {

for (int i = 0; i < 1000000; i++) {

System.out.println(i);

}

}

}

GSyC - 2010

Programación en Python

6

El Lenguaje Python

Programa python

for i in xrange(1000):

x={}
for j in xrange(1000):

x[j]=i
x[j]

Su equivalente Java

import java.util.Hashtable;
public class HashTest {

public static void main(String[] args) {

for (int i = 0; i < 1000; i++) {

Hashtable x = new Hashtable();
for (int j = 0; j < 1000; j++) {

x.put(new Integer(i), new Integer(j));
x.get(new Integer(i));

}

}

} }

GSyC - 2010

Programación en Python

7

Librerías

El Lenguaje Python

Python dispone de librerías Nativas y Normalizadas para

Cadenas, listas, tablas hash, pilas, colas

Números Complejos

Serialización, Copia profunda y Persistencia de Objetos

Regexp

Unicode, Internacionalización del Software

Programación Concurrente

Acceso a BD, Ficheros Comprimidos, Control de Cambios...

GSyC - 2010

Programación en Python

8

El Lenguaje Python

Librerías relacionadas con Internet:

CGIs, URLs, HTTP, FTP,

pop3, IMAP, telnet

Cookies, Mime, XML, XDR

Diversos formatos multimedia

Criptografía

GSyC - 2010

Programación en Python

9

El Lenguaje Python

La referencia sobre todas las funciones de librería podemos
encontrarlas en la documentación oficial, disponible en el web en
muchos formatos

Hasta la versión 2.5.4 (diciembre de 2008), se denomina
python library reference

Desde la versión 2.6, se denomina python standard library

GSyC - 2010

Programación en Python

10

Inconvenientes de Python

El Lenguaje Python

Además de su velocidad limitada y necesidad de intérprete
(Como todo lenguaje interpretado)

No siempre compatible hacia atrás

Uniformidad.
Ej: función len(), método items()
Algunos aspectos de la OO
Python is a hybrid language. It has functions for procedural
programming and objects for OO programming. Python bridges the
two worlds by allowing functions and methods to interconvert using
the explicit “self” parameter of every method def. When a function
is inserted into an object, the first argument automagically becomes
a reference to the receiver.

...

GSyC - 2010

Programación en Python

11

Programación en Python

El intérprete de python se puede usar

En modo interactivo
koji@mazinger:~$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hola mundo"
hola mundo
>>> 3/2
1
>>> 3/2.0
1.5

Mediante scripts
#!/usr/bin/python -tt
print "hola mundo"
euros=415
pesetas=euros*166.386
print str(euros) + " euros son "+ str(pesetas) + " pesetas"

#esto es un comentario

GSyC - 2010

Programación en Python

12

Programación en Python

La línea #!/usr/bin/python indica al S.O. dónde está el
intérprete que sabe procesar el fuente

Debe ser exactamente la primera línea

No puede haber espacios entre la admiración y la barra

#Este ejemplo es doblemente incorrecto
#! /usr/bin/python -tt
# ¡MAL!

En distintos Unix el intérprete puede estar en distintos sitios. Para
aumentar la compatibilidad, a veces se usa

#!/usr/bin/env python
print "Hola mundo"

Aunque (en Linux) esto no permite pasar parámetros como -tt

GSyC - 2010

Programación en Python

13

Operadores

Programación en Python

En orden de precedencia decreciente:

Unary operators

Power

Multiplication, division, modulo

+x, -x, ~x
x ** y
x * y, x / y, x % y
x + y, x - y
x << y, x >> y
x & y
x | y
x < y, x <= y, x > y, x >= y, x == y, x != y,
x <> y, x is y, x is not y, x in s, x not in s

Bitwise and
Bitwise or

Addition, subtraction

Bit shifting

Comparison, identity,
sequence membership tests

Logical negation

not x
x and y
lambda args: expr

Logical and

Anonymous function

GSyC - 2010

Programación en Python

14

Programación en Python

Identificadores (nombre de objetos, de funciones...):

Letras inglesas de ’a’ a ’z’, en mayúsculas o minúsculas. Barra
baja ’ ’ y números
Sensible a mayúsculas/minúsculas
Se puede usar utf-8 y latin-1 en las cadenas y comentarios

Si el editor no marca adecuadamente la codificación del
fichero, aparecerá un error
SyntaxError: Non-ASCII character ’\xc3’ in file ./holamundo.py on
line 4, but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details

y será necesario añadir en la segunda línea del fuente
# -*- coding: utf-8 -*-

o bien
# -*- coding: iso-8859-1 -*-

Python es

Dinámicamente tipado (frente a estáticamente tipado)
Fuertemente tipado (frente a débilmente tipado)

GSyC - 2010

Programación en Python

15

Programación en Python

En Python la declaración de variables es implícita
(no hay declaración explícita)

Las variables “nacen” cuando se les asigna un valor
Las variables “desaparecen” cuando se sale de su ámbito

La declaración implícita de variables como en perl puede
provocar resultados desastrosos

#!/usr/bin/perl
$sum_elementos= 3 + 4 + 17;
$media=suma_elementos / 3;
print $media;

# y provocamos resultado incorrecto

# deletreamos mal la variable

Pero Python no permite referenciar variables a las que nunca
se ha asignado un valor.

#!/usr/bin/python
sum_elementos= 3 + 4 + 17
media=suma_elementos / 3
print media;

# deletreamos mal la variable

# y el intéprete nos avisa con un error

GSyC - 2010

Programación en Python

16

Funciones predefinidas

Programación en Python

abs() valor absoluto
float() convierte a float
int() convierte a int
str() convierte a string
round() redondea
raw_input() acepta un valor desde teclado

GSyC - 2010

Programación en Python

17

Sangrado y separadores de sentencias

Programación en Python

¡En Python NO hay llaves ni begin-end para encerrar bloques
de código! Un mayor nivel de sangrado indica que comienza
un bloque, y un menor nivel indica que termina un bloque.

Las sentencias se terminan al acabarse la línea (salvo casos
especiales donde la sentencia queda “abierta”: en mitad de
expresiones entre paréntesis, corchetes o llaves).
El carácter \ se utiliza para extender una sentencia más
allá de una linea, en los casos en que no queda “abierta”.
El carácter : se utiliza como separador en sentencias
compuestas. Ej.: para separar la definición de una función de
su código.
El carácter ; se utiliza como separador de sentencias escritas
en la misma línea.

GSyC - 2010

Programación en Python

18

Programación en Python

La recomendación oficial es emplear 4 espacios

PEP-8 Style Guide for Python Code
David Goodger, Code Like a Pythonista: Idiomatic Python
Traducción al español:
Programa como un Pythonista: Python Idiomático

Emplear 8 espacios o emplear tabuladores es legal

Mezclar espacios con tabulares es muy peligroso.
Para que el intérprete lo advierta
#!/usr/bin/python -t

Para que el intérprete lo prohiba
#!/usr/bin/python -tt

GSyC - 2010

Programación en Python

19

Tipos de objeto

Programación en Python

Tipos de objeto

En python todo son objetos: cadenas, listas, diccionarios,
funciones, módulos. . .

En los lenguajes de scripting más antiguos como bash o tcl, el
único tipo de datos es la cadena

Los lenguajes imperativos más habituales (C, C++,
pascal. . . ) suelen tener (con variantes) los tipos: booleano,
carácter, cadena, entero, real y matriz

Python tiene booleanos, enteros, reales y cadenas. Y además,
cadenas unicode, listas, tuplas, números complejos,
diccionarios, conjuntos...

En terminología python se denominan tipos de objeto
Estos tipos de objeto de alto nivel facilitan mucho el trabajo
del programador

GSyC - 2010

Programación en Python

20

Comprobación de tipos

Programación en Python

Tipos de objeto

#!/usr/bin/python -tt
import types
if type("a") == types.StringType:

print "ok, es una cadena"

else:

print "no es una cadena"

Tipos de objeto habituales:

BooleanType
IntType
LongType
FloatType
StringType
ListType
TupleType
DictType

GSyC - 2010

Programación en Python

21

Cadenas

Programación en Python

Cadenas

No existe tipo char
Comilla simple o doble
print "hola"
print ’hola’
print ’me dijo "hola"’
más legible que print ’me dijo \’hola\’’
Puede haber caracteres especiales
print "hola\nque tal"
Cadenas crudas
print r"""hola\nque tal"""

GSyC - 2010

Programación en Python

22

Programación en Python

Cadenas

Una cadena se puede expandir en más de una línea
print "hola\

que tal "

El operador + concatena cadenas, y el * las repite un número
entero de veces

Se puede acceder a los caracteres de cadenas mediante índices
y rodajas como en las listas
Las cadenas s
  • Links de descarga
http://lwp-l.com/pdf12092

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