Conferencia 3

Conferencia # 3 Software Libre
Python Básico. Medardo Rodríguez

Documentaciones:

Debian “Aptitude install pithon_doc”

http://www.python.org/doc/

Además:

• Python Books
• Guido’s essays and presentations
• Non English documents

• Trabajaremos con Python 2.4, ya existe la version 2.5

• Al hablar de estilo de programación en los lenguajes de programación tradicionales se tiene el gusto del programador como lo más importante. Esto es erróneo.
Al asumir que el único proceso que ocurre en la programación es un proceso hombre-máquina se está cometiendo un error. La programación es un proceso social.
En el Software Libre cualquiera recibe los códigos fuentes. Inclusive en el software privativo se estudian los códigos fuentes.

• Claridad: Es el proceso de percepción de un mensaje (sintaxis) Esto debe ser lo más simple posible.

• El Python no es eficiente en cuanto a velocidad pero sí respecto a la claridad.

• C++ y Pascal están hechos para permitir ciertas libertades a la hora de escribir el código.

• Delimitadores en Python.

   o Espacios y sangrías (4 espacios)
   o Permiten definir los bloques de programación
o En C sería usando llaves.
o En Pascal sería usando begin…end;
o Todas las variantes a la hora de emplear delimitadores son correctas para el compilador de C y Pascal.
• Debe haber un acuerdo para que el estilo de programación sea único.

• Editor emacs creado por Stallman.

   • Es preferible usar solamente espacios y cuatro espacios para el tab.
   • No usar más de 80 caracteres en una línea.
   • Las opciones –t dan warnings si hay mezcla y    –tt errores.
   • Usar líneas en blancos para separar bloques
   • Las clases con dos líneas.
   • Las funciones con una línea.
   • Usar espacios en las expresiones para delimitar niveles de precedencia.
   • No usar comentarios que sean obvios.
   • Sensible a la mayúscula.
   • Convenciones por nombre.

• Una buena selección de nombres aporta claridad y elegancia a la estructura del código.

• Prioriza la buena comunicación entre los programadores.

• Libros para comenzar con Python.

o http://swaroopch.info/text/byte_of_python:main_page
o Dive into Python.
Debian
• Python es un lenguaje script o interpretado (sus programas se ejecutan en un interprete en vez de compilarse)

• Lenguaje de código intermedio

• Ventajas del shell ipython

• ¿Cómo se programa en Python?

Las instrucciones se pueden probar una a una en el shell
En Python todo es objeto.

Vamos a emplear una definición de objeto abreviada, en otras conferencias lo iremos ampliando.

Objeto: Es un valor con estado y comportamiento.

El estado está dado por un conjunto de atributos y sus valores en un instante de tiempo dado.

El comportamiento está definido por las operaciones (digamos métodos para los entendidos en la Programación Orientada a Objetos)

• Ejemplo de instrucciones
Complex=3+5j
Complex.__doc__
Import sys
Sys.__doc__ (__doc__ ofrece la documentación de soporte)

• Modulos en Python

Son objetos que se definen a través de un archivo de código fuente.
Para usar otros modulos se usa la instrucción import
Import sys, os
From getopt import getopt, getoptError

Más adelante veremos paquetes y formas de distribuir softwares.

• print imprime varias cadenas separadas por comas. Todos los objetos de Python deben tener una representación como cadena.

• Los módulos tienen un atributo de nombre “__name__”. Si es el modulo principal este atributo recibe el nombre de “__main__”

• Para probar modulos se puede usar:
If __name__=”__name__”:
Pass

# indica comentarios

#! Indica con que programa se ejecuta el script. Esto se conoce como pragma

“””, comentario con más de una línea

• Traduciendo nuestro código fuente a lenguaje natural nos da la medida de la claridad (eficacia) con que estamos programando.

• La codificación es distinta al razonamiento.

Tipos de datos:

   o Lógicos o boléanos.
o Enteros.
o Punto flotante.
o Complejos.
o Cadenas de caracteres.
o Diccionarios.
o Tuplas.
o Listas.

Booleano

   o 0 es false y todo lo demás es true.
o Cadena vacía "es false.
o Una lista vacía [] es false.
o Una tupla vacía () es false.
o Un diccionario vacío {} es false.
o print bool(0)
o print bool(5)
o print bool({})

Diccionarios

o D={“Server”:”data.sld.cu”, “database”:”master”}
print d[`server`]
d[`database`]=`main`
del d[`server`]
len(d)

• Algo bien encapsulado se puede utilizar fácilmente y queda claro lo que es. Esto tiene implicaciones en teoría de tipos.
El encapsulamiento implica que existe una relación biunívoca entre cada elemento.
Python tiene muy bien implementado el encapsulamiento.

• Los diccionarios también se pueden considerar como listas.

Listas

Li=[“a”,”b”,”mpilgrim”,”z”,”example”]
El tratamiento para las listas es muy peculiar, lo que se hace es enumerar las fronteras.
/a/b/c/d/e/f/g/h/i/j/ Las barras indican las fronteras de los elementos de las listas
Las fronteras se enumeran desde 0 hasta 10 (en este caso)
Luego L[1] es “a”
L[1:3] es b, c

Li[0]
Li[-3] De atrás hacia delante, el elemento que se encuentra en la frontera 3
Li[1:3] Los elementos entre esas fronteras
Li[2:] Los elementos desde la segunda frontera hasta la ultima
Li[:3] Los elemento desde el inicio hasta la frontera 3

Li[:] En clon de la lista (copia)
d=Li[:]

Li.append(“new”)
Li.insert(2,`second`)
Li.extend([`one`,`two`])
Li.index(`one`)
in devuelve true o false si el elemento se encuentra
Li.remove(`new`)
Li.pop()
Li.pop(2)
Li+=[`o`,2]
Li=3*[1,2] esto da como resultado {[1,2],[1,2],[1,2]}

Tuplas

Son de solo lectura
T=(1,2)
L=(5)
Type(L)
Las tuplas son más eficientes que las listas

Formatear cadena

X=5
print ´%s=%d´ %(`X`,x)
uid=”sa”
pwd=”secret”

Mapeando Listas y Tuplas

Para las cadenas existen los métodos joint y split

Funciones

   o Type
o Str
o Dir
o Import__builtin__

Control de Flujo

   o Il: elif: else:
   o While : else:
   o For i in range
   o Break
   o Continue

• Operadores

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: