SlideShare una empresa de Scribd logo
1 de 19
UNIVERSIDAD DE ORIENTE
NÚCLEO DE ANZOÁTEGUI
ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS
DEPARTAMENTO DE ELECTRICIDAD
Profesor: Navarro, Danilo Bachiller:
González, Edgar C.I: 20.903.274
Sección: 03
Barcelona, 25 de marzo de 2011
1. ¿Qué Es Python?
Es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una
sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación
a objetos, programación imperativa y, en menor medida, programación funcional.
Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y es
multiplataforma.
Es administrado por la Python Software Foundation. Posee una licencia de código
abierto, denominada Python Software Foundation License, que es compatible con
la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas
versiones anteriores.
2. Historia de python.
Python fue creado a finales de los ochenta por Guido van Rossum en el National
Research Institute for Mathematics and Computer Science (CWI), en los Países Bajos,
como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e
interactuar con el sistema operativo Amoeba.
El nombre del lenguaje proviene de la afición de su creador original, Guido van
Rossum, por los humoristas británicos Monty Python.
Van Rossum es el principal autor de Python, y su continuo rol central en decidir la
dirección de Python es reconocido, refiriéndose a él como Benevolente Dictador
Vitalicio (en inglés: Benevolent Dictator for Life, BDFL).
En 1991, van Rossum publicó el código de la versión 0.9.0 en alt.sources. En esta
etapa del desarrollo ya estaban presentes clases con herencia, manejo de
excepciones, funciones y los tipos modulares, como: str, list, dict, entre otros. Además en
este lanzamiento inicial aparecía un sistema de módulos adoptado de Modula-3; van
Rossum describe el módulo como “una de las mayores unidades de programación de
Python”. El modelo de excepciones en Python es parecido al de Modula-3, con la adición
de una cláusula else. En el año 1994 se formó comp.lang.python, el foro de discusión
principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este
lenguaje.
Python alcanzó la versión 1.0 en enero de 1994.
Una característica de este lanzamiento fueron las herramientas de la programación
funcional: lambda,reduce, filter y map. Van Rossum explicó que “hace 12 años, Python
adquirió lambda, reduce (), filter() y map(), cortesía de un hacker de Lisp que las extrañaba
y que envió parches”.
El donante fue Amrit Prem; no se hace ninguna mención específica de cualquier
herencia de Lisp en las notas de lanzamiento.
La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum
continuó su trabajo en Python en la Corporation for National Research Initiatives (CNRI)
en Reston,Virginia, donde lanzó varias versiones del software.
Durante su estancia en CNRI, van Rossum lanzó la iniciativa Computer Programming
for Everybody (CP4E), con el fin de hacer la programación más accesible a más gente, con
un nivel de alfabetización básico en lenguajes de programación, similar a la alfabetización
básica en inglés y habilidades matemáticas necesarias por muchos trabajadores. Python
tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya
era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC. El
proyecto fue patrocinado por DARPA. En el año 2007, el proyecto CP4E está inactivo, y
mientras Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica,
alcanzando a los no-programadores, no es una preocupación activa.
En el año 2000, el equipo principal de desarrolladores de Python se cambió
a BeOpen.com para formar el equipo BeOpen PythonLabs. CNRI pidió que la versión 1.6
fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó
CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una significativa cantidad
de traslapo. Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que
Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros
desarrolladores de PythonLabs se unieron en Digital Creations.
Python 2.0 tomó una característica mayor del lenguaje de programación
funcional Haskell: listas por comprensión. La sintaxis de Python para esta construcción es
muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en
Haskell, y la preferencia de Python por palabras claves alfabéticas. Python 2.0 introdujo
además un sistema de recolección capaz de recolectar referencias cíclicas.
Posterior a este doble lanzamiento, y después que van Rossum dejó CNRI para
trabajar con desarrolladores de software comercial, quedó claro que la opción de usar
Python con software disponible bajo GNU GPL era muy deseable. La licencia usada
entonces, la Python License, incluía una cláusula estipulando que la licencia estaba
gobernada por el estado deVirginia, por lo que, bajo la óptica de los abogados de Free
Software Foundation (FSF), se hacía incompatible con GPL. CNRI y FSF se relacionaron para
cambiar la licencia de software libre de Python para hacerla compatible con GPL. En el año
2001, van Rossum fue premiado con FSF Award for the Advancement of Free Software.
Python 1.6.1 es esencialmente el mismo que Python 1.6, con unos pocos arreglos
de bugs, y con una nueva licencia compatible con GPL.
3. De Donde Viene El Nombre Python.
El creador del lenguaje es un europeo llamado Guido Van Rossum. Hace ya más de
una década que diseño Python, ayudado y motivado por su experiencia en la creación de
otro lenguaje llamado ABC. El objetivo de Guido era cubrir la necesidad de un lenguaje
orientado a objetos de sencillo uso que sirviese para tratar diversas tareas dentro de la
programación que habitualmente se hacía en Unix usando C.
El desarrollo de Python duró varios años, durante los que trabajó en diversas
compañías de Estados Unidos. En el 2000 ya disponía de un producto bastante completo y
un equipo de desarrollo con el que se había asociado incluso en proyectos empresariales.
Actualmente trabaja en Zope, una plataforma de gestión de contenidos y servidor de
aplicaciones para el web, por supuesto, programada por completo en Python.
4. Características Del Lenguaje De Python.
Propósito general
Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente
para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas.
Multiplataforma
Hay versiones disponibles de Python en muchos sistemas informáticos distintos.
Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el
lenguaje siempre y cuando exista un intérprete programado para él.
Interpretado
Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí
que se realiza una compilación, pero esta se realiza de manera transparente para el
programador. En ciertos casos, cuando se ejecuta por primera vez un código, se producen
unos (bytecodes) que se guardan en el sistema y que sirven para acelerar la compilación
implícita que realiza el intérprete cada vez que se ejecuta el mismo código.
Interactivo
Python dispone de un intérprete por línea de comandos en el que se pueden
introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede
ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de
porciones de código rápidamente.
Orientado a Objetos
La programación orientada a objetos está soportada en Python y ofrece en muchos
casos una manera sencilla de crear programas con componentes reutilizables.
Funciones y librerías
Dispone de muchas funciones incorporadas en el propio lenguaje, para el
tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que
podemos importar en los programas para tratar temas específicos como la programación
de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos
en .zip.
Sintaxis clara
Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación
identidad (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar
porciones de código, se utilizan elementos como las llaves o las palabras clave (begin y
end). Para separar las porciones de código en Python se debe tabular hacia dentro,
colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a
que todos los programadores adopten unas mismas notaciones y que los programas de
cualquier persona tengan un aspecto muy similar.
5. Filosofía Del Python
Los usuarios de Python se refieren a menudo a la Filosofía Python que es bastante
análoga a la filosofía de Unix. El código que sigue los principios de Python de legibilidad y
transparencia se dice que es "pythonico". Contrariamente, el código opaco u ofuscado es
bautizado como "no pythonico" ("unpythonic" en inglés). Estos principios fueron
famosamente descritos por el desarrollador de Python Tim Peters en El Zen de Python
 Bello es mejor que feo.
 Explícito es mejor que implícito.
 Simple es mejor que complejo.
 Complejo es mejor que complicado.
 Plano es mejor que anidado.
 Disperso es mejor que denso.
 La legibilidad cuenta.
 Los casos especiales no son tan especiales como para quebrantar las reglas.
 Aunque lo práctico gana a la pureza.
 Los errores nunca deberían dejarse pasar silenciosamente.
 A menos que hayan sido silenciados explícitamente.
 Frente a la ambigüedad, rechaza la tentación de adivinar.
 Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo.
 Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés.
 Ahora es mejor que nunca.
 Aunque nunca es a menudo mejor que ya mismo.
 Si la implementación es difícil de explicar, es una mala idea.
 Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más de esas cosas!
Líneas lógicas y físicas
Línea lógica: una o más líneas físicas, siguiendo las reglas de juntar líneas.
Explícita '' al final del renglón.
Implícita (, [, y { pueden continuarse en siguiente línea física.
Varias instrucciones en el mismo renglón: separadas con ;.
Objetos básicos
Todo dato en python, incluso el código mismo, es un objeto. Los objetos tienen:
identidad dirección en memoria, no cambia id()
tipo define qué operaciones y valores puede tomar type()
valor mutable, inmutable
Algunos objetos son contenedores, es decir, tiene referencias a otros objetos.
Los tipos básicos son:
 Números. Valor único inmutable
 Secuencias. Contenedor. Conjunto ordenado, índices son números naturales.
Mutables e inmutables.
 Mapeos. Contenedor. Conjunto sin orden, índices pueden ser un conjunto
arbitrario excepto listas o diccionarios. Mutable.
 Objetos llamables. Funciones internas o definidas por el usuario, métodos,
módulos internos o definidos por el usuario, clases, instancias de una clase,
archivos.
Números inmutables
enteros
sencillos
-2,147,483,648 a 2,147,483,647 OverflowError
enteros largos sin límite
punto flotante doble precisión
complejos
pareja de números de punto
flotante
z.real, z.imag
Secuencias
inmutables cadenas '' 'a' ``hola`` ``````hola ``````&
tuples ( ), (1,), (1,2)
mutables listas [ ], [1], [1,2,3]
Mapeos mutables diccionarios { },{a:123, b:456}
dbm, gdbm
Método: función que pertenece a un objeto.
Valores lógicos
Falso Valor cero, contenedor vacío, None
Verdadero Todo lo demás, Ellipsis.
Funciones
cmp( x, y ) 0 si x=y, 1 si x>y, -1 si x<y
Números
Enteros decimal 234890
octal 0766
hexadecimal 0x0fee
Enteros largos 1L
Punto flotante 1.5, 1e100
Complejos ( 5, 7j )
Funciones
int( x, [base] ) str o int -> int trunca
long( x ) str o int -> long
float( x ) str o int -> float
hex( i ) int -> str
oct( x ) int -> str
round( x, n) float -> float, n=0
trunc( x ) xxx -> xxx
abs( x ) valor absoluto
Secuencias
inmutables cadenas '' 'a' 'ab'
tuplas () (1,) (1,2)
mutables listas [] [0] [0,1]
Elementos
nombre[0] primer elemento
nombre[1] segundo elemento
nombre[-1] último elemento
nombre[-2] penúltimo elemento
Índice fuera de rango es un error.
Secciones
Nombre [índice inferior: índice superior]
Longitud del corte = índice superior - índice inferior
nombre[:fin] Primer índice omitido vale 0.
nombre[inicio:] Segundo índice omitido vale tamaño del objeto.
nombre[:] Copia del objeto.
nombre[0:1] Primer elemento.
nombre[0:2] Primero y segundo elementos
nombre[-2:] Últimos dos elementos
Índices fuera de rango se aceptan: topan con 0 y el tamaño del objeto
Nombre[:i] + nombre[i:] es igual a nombre.
Funciones
max(s Mayor elementos de s
min( s ) Menor elementos de s
len( s ) Cantidad de elementos
Operadores
+ Concatenación.
* Multiplicación.
'aaa' 'bbb' Concatenación implícita.
> < == Comparaciones - lexicográficamente.
e[not] in s Membresía
Programación funcional
range( [inicio,] fin [, incremento] ) inicio=0, incremento=1[0, 1, ... incremento < fin]
inicio+i*incremento < fin
[inicio, inicio+i*incremento, ...]
xrange() ídem, para rangos muy grandes
filter( función, secuencia ) if función( elemento ): tomar elemento
map( función, secuencia [,secuencia...] ) función( elemento [, elemento...] )
reduce( función, secuencia ) función( elemento0, elemento1), etc.
zip( secuencia [,secuencia...] ) Lista de tuplas con elemento i de cada secuencia)
Cadenas
''& Cadena vacía
'c' Caracter
'abc' Comillas sencillas
``abc``& Comillas dobles
'dice ``hola``'
Comillas dobles dentro de
sencillas
``buyer's guide``& Comilla sencilla dentro de dobles
'``buyer's`` guide' Comilla con escape
``````hola``````& Pueden contener varios renglones y
comillas.
'''hola''' ídem
Métodos
capitalize() Iniciales con mayúsculas
s.join( secuencia ) Concatena secuencia con la cadena s
lower() Minúsculas
lstrip() Quita espacio en blanco al inicio
rstrip() Quita espacio en blanco al final
splitlines( [keepends]) Lista de renglones
strip() Quita espacio en blanco
upper() Mayúsculas
Caracteres
Son cadenas de longitud 1, no hay tipo char.
ord( c ) código ascii del caracter
chr( i ) caracter correspondiente
str( o ) cadena para imprimir representación del objeto
repr( o ) ídem, para usarse en eval()
Caracteres especiales
Secuencia de escape Significado
 
' '
¨ ``
f formfeed
n linfeed
r carriage return
t tab
ooo caracter ascii ooo octal
Tuplas
tuple( secuencia ) tupla con los elementos de la secuencia
Listas
Métodos
append(x) Agrega un elemento. Equivale a a[len(a):] = [x]
extend(L)
Extiende la lista agregando los elementos de la lista. Equivale a[len(a):] =
L
insert( i, x) Inserta un elemento en la posición dada.
insert( 0, x) Inserta al principio
remove(x) Elimina el primer elemento cuyo valor es x. Error si no existe
pop([i]) Elimina el elemento en la posición dada, y regresa su valor.
Sin parámetro es el último elemento.
index(x) Regresa el índice del primer elemento con valor x. Error si no existe
count(x) Regresa el número de veces que x aparece en la lista.
sort([cmpfunc]) Ordena los elementos, sobre la lista misma.
cmpfunc( x y, ) regresa 1 si x>y, 0 si x==y, -1 si x<y. cmp(x, y)
reverse() Ordena los elementos al revés, sobre la lista misma.
Funciones y operadores
del a[n] Borra elemento
del[ x:y] Borra sección
list( secuencia ) Lista con elementos de la secuencia
Usos
Pila LIFO append(x), pop()
Cola FIFO append(x), pop(0)
Matriz L[r][c]
Lista recursiva L.append(L)
Diccionarios
Operaciones y métodos
len(a) Cantidad de elementos en a
a[k] Elemento de a cuya llave es k (subscripción)
a[k] = x Asignar valor x a a[k]
del a[k] Eliminar a[k] de a
a.clear() Eliminar todos los elementos de a
a.copy() Una copia de a
a.has_key(k) 1 si a tiene llave k, 0 de lo contrario
a.items() Una copia de la lista de parejas (llave, valor) de a
a.keys() Una copia de la lista de llaves de a
a.update(b) for k, v in b.items(): a[k] = v
a.values() Una copia de la lista de valores de a
a.get(k[, x]) a[k] si a.has_key(k), x de lo contrario
Código
eval( expresión ) Evalúa expresión
exec( comando) Ejecuta instruccion(es)
Asignaciones
Nombre = expresión
a,b = c,d (pack, unpack)
Las asignaciones no copian datos, ligan nombres a objetos. Siempre van al ámbito interno.
Operadores
máxima prioridad
llamada a función f(argumentos)
sección x[índice:índice]
subscripción x[índice]
referencia a un atributo x.atributo
unitarios + -
potencia **
aritméticos * / %
+ -
desplazar bits » «
a nivel bits #1713#>
xor
| or
comparaciones < > == >= <= <> != Se pueden encadenar: x < y < z
identidad is [not]
membresía [not] in
booleanos not x
and
or
lambda expresión lambda
Control de flujo
if expresión:
Instrucción(es)
[elif:
Instrucción(es)]
[else:
Instrucción(es)]
while expresión:
Instrucción(es)
[else:
Instrucción(es)]
for elemento in lista:
Instrucción(es)
Entrada y Salida
 Consola
print Renglón en blanco
print x,y,z Separados por un espacio
print alfa, Evita línea nueva al final
print 'cadena-de-formato' % (expresiones) '%10s, %5d' como en printf()
print 'cadena-de-formato' % diccionario '%(llave)formato'
rawinput( [mensaje] ) Entrada de datos. Import readline opcional.
Columnas
import string
print string.ljust( expr, ancho), string.center( expr, ancho), string.rjust( expr,
ancho)
Archivos
f=open( 'ruta-a-archivo' [, modo]) modo: 'r', 'w', 'a', 'rb', 'wb', 'ab'
f.read( [bytes] ) bytes=todos
f.readline( [bytes] ) 'n' incluído al final de la cadena.
eof es cuando regresa cadena vacía.
f.readlines( [bytesaprox] ) bytesaprox=todos
f.write( expresión )
f.writelines( lista )
f.tell()
f.seek( offset, respectoa) 0 principio, 1 posición actual, 2 fin del archivo.
f.close()
Predefinidos: sys.stdin sys.stdout sys.stderr
Objetos persistentes
import pickle
pickle.dump( objeto, archivo)
objeto = pickle.load( archivo)
Parámetros
Posicionales nombre, ...
Con valor por omisión nombre=valor_por_omisión, ...
Opcionales *nombre
Uso
Nombre ( [argumentos] )
Argumentos
Posicionales valor, ...
Con nombre nombre=valor, ...
Por tupla *tupla
Por diccionario *diccionario
Orden: de arriba a abajo.
Los argumentos pasan por referencia al objeto.
Funciones lambda
lambda parámetros: expresión. Solamente una instrucción.
Documentación
Empieza con mayúscula, termina con punto, no incluye el nombre del objeto. Segunda
línea vacía si tiene más líneas.
Ámbitos y espacios de nombres
Espacio de nombres: mapeo de nombres a objetos. Implementado con diccionarios.
Alias: varios nombres pueden apuntar a un mismo objeto.
Ámbito: región de texto de un programa de python donde un nombre es accesible
directamente (con referencia sin calificar). Determinados estáticamente, usados
dinámicamente.
Conclusión
Python está en movimiento y en pleno desarrollo, pero ya es una realidad y una
interesante opción para realizar todo tipo de programas que se ejecuten en cualquier
máquina. El equipo de desarrollo está trabajando de manera cada vez más organizada y
cuentan con el apoyo de una comunidad que está creciendo rápidamente.

Más contenido relacionado

La actualidad más candente

Operaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema OctalOperaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema Octalpafalconi
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
5 características del lenguaje cobol
5 características del lenguaje cobol5 características del lenguaje cobol
5 características del lenguaje cobolGili Freire
 
Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)YJGG
 
Trabajo practico - Arquitectura del Computador (333) - UNA
Trabajo practico - Arquitectura del Computador (333) - UNATrabajo practico - Arquitectura del Computador (333) - UNA
Trabajo practico - Arquitectura del Computador (333) - UNARonald Alexander Medina Pinto
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Cable directo,cruzado y rollover
Cable directo,cruzado y rolloverCable directo,cruzado y rollover
Cable directo,cruzado y rolloverIan Berzeker Tovar
 
Conceptos básicos de programación y Fundamentos básicos de PSEINT
Conceptos básicos de programación y Fundamentos básicos  de PSEINTConceptos básicos de programación y Fundamentos básicos  de PSEINT
Conceptos básicos de programación y Fundamentos básicos de PSEINTJudith Martos Florez
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje cwuaro1
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONKathGon1
 
Lenguaje de programación: Pascal
Lenguaje de programación: PascalLenguaje de programación: Pascal
Lenguaje de programación: PascalCarola511
 
Presentación Sistema OPerativo Linux
Presentación Sistema OPerativo  Linux Presentación Sistema OPerativo  Linux
Presentación Sistema OPerativo Linux Dhariana Leguisamo
 

La actualidad más candente (20)

Operaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema OctalOperaciones Básicas con el Sistema Octal
Operaciones Básicas con el Sistema Octal
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
3.4. Logica de predicados
3.4. Logica de predicados3.4. Logica de predicados
3.4. Logica de predicados
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
5 características del lenguaje cobol
5 características del lenguaje cobol5 características del lenguaje cobol
5 características del lenguaje cobol
 
Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)Lenguajes de programacion (exposicion)
Lenguajes de programacion (exposicion)
 
Trabajo practico - Arquitectura del Computador (333) - UNA
Trabajo practico - Arquitectura del Computador (333) - UNATrabajo practico - Arquitectura del Computador (333) - UNA
Trabajo practico - Arquitectura del Computador (333) - UNA
 
Linea de tiempo linux
Linea de tiempo linuxLinea de tiempo linux
Linea de tiempo linux
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Cable directo,cruzado y rollover
Cable directo,cruzado y rolloverCable directo,cruzado y rollover
Cable directo,cruzado y rollover
 
Conceptos básicos de programación y Fundamentos básicos de PSEINT
Conceptos básicos de programación y Fundamentos básicos  de PSEINTConceptos básicos de programación y Fundamentos básicos  de PSEINT
Conceptos básicos de programación y Fundamentos básicos de PSEINT
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
Lenguaje de programación: Pascal
Lenguaje de programación: PascalLenguaje de programación: Pascal
Lenguaje de programación: Pascal
 
Presentación Sistema OPerativo Linux
Presentación Sistema OPerativo  Linux Presentación Sistema OPerativo  Linux
Presentación Sistema OPerativo Linux
 

Destacado

Programacion orientada a objetos python manuel casado martín - universidad ...
Programacion orientada a objetos python   manuel casado martín - universidad ...Programacion orientada a objetos python   manuel casado martín - universidad ...
Programacion orientada a objetos python manuel casado martín - universidad ...Wilson Bautista
 
Manual de python
Manual de pythonManual de python
Manual de pythonULEAM
 
Programa taller-gratuito-python
Programa taller-gratuito-pythonPrograma taller-gratuito-python
Programa taller-gratuito-pythonMar Rubio Rubio
 
Todo Sobre El Lenguaje Python
Todo Sobre El Lenguaje PythonTodo Sobre El Lenguaje Python
Todo Sobre El Lenguaje Pythongenaro martinez
 
Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Fco Javier Lucena
 
Tutorial de Python - Pyar
Tutorial de Python - PyarTutorial de Python - Pyar
Tutorial de Python - PyarSergio Vallejo
 
Programación de Videojuegos con Python y Pilas (VI)
Programación de Videojuegos con Python y Pilas (VI)Programación de Videojuegos con Python y Pilas (VI)
Programación de Videojuegos con Python y Pilas (VI)Fernando Salamero
 
Cuaderno funcion excel
Cuaderno funcion excelCuaderno funcion excel
Cuaderno funcion excelJosé Joaquin
 
Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Fernando Salamero
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 

Destacado (20)

Programacion orientada a objetos python manuel casado martín - universidad ...
Programacion orientada a objetos python   manuel casado martín - universidad ...Programacion orientada a objetos python   manuel casado martín - universidad ...
Programacion orientada a objetos python manuel casado martín - universidad ...
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Programa taller-gratuito-python
Programa taller-gratuito-pythonPrograma taller-gratuito-python
Programa taller-gratuito-python
 
Info nivel 1 avanzado
Info nivel 1 avanzadoInfo nivel 1 avanzado
Info nivel 1 avanzado
 
Python
PythonPython
Python
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Todo Sobre El Lenguaje Python
Todo Sobre El Lenguaje PythonTodo Sobre El Lenguaje Python
Todo Sobre El Lenguaje Python
 
Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)Manual Basico para Encantadores de Serpientes (Python)
Manual Basico para Encantadores de Serpientes (Python)
 
Tutorial de Python - Pyar
Tutorial de Python - PyarTutorial de Python - Pyar
Tutorial de Python - Pyar
 
Python (práctica 3)
Python (práctica 3)Python (práctica 3)
Python (práctica 3)
 
Excel ingenieria
Excel ingenieriaExcel ingenieria
Excel ingenieria
 
Python (práctica 2)
Python (práctica 2)Python (práctica 2)
Python (práctica 2)
 
Iniciación a python
Iniciación a pythonIniciación a python
Iniciación a python
 
Python (práctica 1)
Python (práctica 1)Python (práctica 1)
Python (práctica 1)
 
Programación de Videojuegos con Python y Pilas (VI)
Programación de Videojuegos con Python y Pilas (VI)Programación de Videojuegos con Python y Pilas (VI)
Programación de Videojuegos con Python y Pilas (VI)
 
Cuaderno funcion excel
Cuaderno funcion excelCuaderno funcion excel
Cuaderno funcion excel
 
107956 excel avanzado
107956 excel avanzado107956 excel avanzado
107956 excel avanzado
 
Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)Programación de Videojuegos con Python y Pilas (II)
Programación de Videojuegos con Python y Pilas (II)
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Practicas de excel sena
Practicas  de excel senaPracticas  de excel sena
Practicas de excel sena
 

Similar a Trabajo de python

Similar a Trabajo de python (20)

Python
PythonPython
Python
 
Aprendamos python
Aprendamos pythonAprendamos python
Aprendamos python
 
Parallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzadosParallel python sistemas operativos avanzados
Parallel python sistemas operativos avanzados
 
Python
PythonPython
Python
 
Python basic slides for beginners to learn python
Python basic slides for beginners to learn pythonPython basic slides for beginners to learn python
Python basic slides for beginners to learn python
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python para Todos
Python para TodosPython para Todos
Python para Todos
 
python-para-todos.pdf
python-para-todos.pdfpython-para-todos.pdf
python-para-todos.pdf
 
Python para todos
Python para todosPython para todos
Python para todos
 
Libro python para todos
Libro   python para todosLibro   python para todos
Libro python para todos
 
Python para todos
Python para todosPython para todos
Python para todos
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Python_para_todos.pdf
Python_para_todos.pdfPython_para_todos.pdf
Python_para_todos.pdf
 
Introducción a Python
Introducción a Python Introducción a Python
Introducción a Python
 
Lenguaje de programación Python
Lenguaje de programación PythonLenguaje de programación Python
Lenguaje de programación Python
 
programa curso python 2022.pdf
programa curso python 2022.pdfprograma curso python 2022.pdf
programa curso python 2022.pdf
 
Resumen python
Resumen pythonResumen python
Resumen python
 
Aprende más sobre Python
Aprende más sobre PythonAprende más sobre Python
Aprende más sobre Python
 
Introduccion a-python
Introduccion a-pythonIntroduccion a-python
Introduccion a-python
 

Último

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Trabajo de python

  • 1. UNIVERSIDAD DE ORIENTE NÚCLEO DE ANZOÁTEGUI ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS DEPARTAMENTO DE ELECTRICIDAD Profesor: Navarro, Danilo Bachiller: González, Edgar C.I: 20.903.274 Sección: 03 Barcelona, 25 de marzo de 2011
  • 2. 1. ¿Qué Es Python? Es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y es multiplataforma. Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores. 2. Historia de python. Python fue creado a finales de los ochenta por Guido van Rossum en el National Research Institute for Mathematics and Computer Science (CWI), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba. El nombre del lenguaje proviene de la afición de su creador original, Guido van Rossum, por los humoristas británicos Monty Python. Van Rossum es el principal autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido, refiriéndose a él como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for Life, BDFL). En 1991, van Rossum publicó el código de la versión 0.9.0 en alt.sources. En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones, funciones y los tipos modulares, como: str, list, dict, entre otros. Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de Modula-3; van Rossum describe el módulo como “una de las mayores unidades de programación de Python”. El modelo de excepciones en Python es parecido al de Modula-3, con la adición de una cláusula else. En el año 1994 se formó comp.lang.python, el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje.
  • 3. Python alcanzó la versión 1.0 en enero de 1994. Una característica de este lanzamiento fueron las herramientas de la programación funcional: lambda,reduce, filter y map. Van Rossum explicó que “hace 12 años, Python adquirió lambda, reduce (), filter() y map(), cortesía de un hacker de Lisp que las extrañaba y que envió parches”. El donante fue Amrit Prem; no se hace ninguna mención específica de cualquier herencia de Lisp en las notas de lanzamiento. La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la Corporation for National Research Initiatives (CNRI) en Reston,Virginia, donde lanzó varias versiones del software. Durante su estancia en CNRI, van Rossum lanzó la iniciativa Computer Programming for Everybody (CP4E), con el fin de hacer la programación más accesible a más gente, con un nivel de alfabetización básico en lenguajes de programación, similar a la alfabetización básica en inglés y habilidades matemáticas necesarias por muchos trabajadores. Python tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC. El proyecto fue patrocinado por DARPA. En el año 2007, el proyecto CP4E está inactivo, y mientras Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación activa. En el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo BeOpen PythonLabs. CNRI pidió que la versión 1.6 fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una significativa cantidad de traslapo. Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron en Digital Creations. Python 2.0 tomó una característica mayor del lenguaje de programación funcional Haskell: listas por comprensión. La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves alfabéticas. Python 2.0 introdujo además un sistema de recolección capaz de recolectar referencias cíclicas.
  • 4. Posterior a este doble lanzamiento, y después que van Rossum dejó CNRI para trabajar con desarrolladores de software comercial, quedó claro que la opción de usar Python con software disponible bajo GNU GPL era muy deseable. La licencia usada entonces, la Python License, incluía una cláusula estipulando que la licencia estaba gobernada por el estado deVirginia, por lo que, bajo la óptica de los abogados de Free Software Foundation (FSF), se hacía incompatible con GPL. CNRI y FSF se relacionaron para cambiar la licencia de software libre de Python para hacerla compatible con GPL. En el año 2001, van Rossum fue premiado con FSF Award for the Advancement of Free Software. Python 1.6.1 es esencialmente el mismo que Python 1.6, con unos pocos arreglos de bugs, y con una nueva licencia compatible con GPL. 3. De Donde Viene El Nombre Python. El creador del lenguaje es un europeo llamado Guido Van Rossum. Hace ya más de una década que diseño Python, ayudado y motivado por su experiencia en la creación de otro lenguaje llamado ABC. El objetivo de Guido era cubrir la necesidad de un lenguaje orientado a objetos de sencillo uso que sirviese para tratar diversas tareas dentro de la programación que habitualmente se hacía en Unix usando C. El desarrollo de Python duró varios años, durante los que trabajó en diversas compañías de Estados Unidos. En el 2000 ya disponía de un producto bastante completo y un equipo de desarrollo con el que se había asociado incluso en proyectos empresariales. Actualmente trabaja en Zope, una plataforma de gestión de contenidos y servidor de aplicaciones para el web, por supuesto, programada por completo en Python. 4. Características Del Lenguaje De Python. Propósito general Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas.
  • 5. Multiplataforma Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él. Interpretado Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero esta se realiza de manera transparente para el programador. En ciertos casos, cuando se ejecuta por primera vez un código, se producen unos (bytecodes) que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que se ejecuta el mismo código. Interactivo Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de porciones de código rápidamente. Orientado a Objetos La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes reutilizables. Funciones y librerías Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.
  • 6. Sintaxis clara Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identidad (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave (begin y end). Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar. 5. Filosofía Del Python Los usuarios de Python se refieren a menudo a la Filosofía Python que es bastante análoga a la filosofía de Unix. El código que sigue los principios de Python de legibilidad y transparencia se dice que es "pythonico". Contrariamente, el código opaco u ofuscado es bautizado como "no pythonico" ("unpythonic" en inglés). Estos principios fueron famosamente descritos por el desarrollador de Python Tim Peters en El Zen de Python  Bello es mejor que feo.  Explícito es mejor que implícito.  Simple es mejor que complejo.  Complejo es mejor que complicado.  Plano es mejor que anidado.  Disperso es mejor que denso.  La legibilidad cuenta.  Los casos especiales no son tan especiales como para quebrantar las reglas.  Aunque lo práctico gana a la pureza.  Los errores nunca deberían dejarse pasar silenciosamente.  A menos que hayan sido silenciados explícitamente.  Frente a la ambigüedad, rechaza la tentación de adivinar.  Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo.  Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés.  Ahora es mejor que nunca.  Aunque nunca es a menudo mejor que ya mismo.  Si la implementación es difícil de explicar, es una mala idea.  Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más de esas cosas!
  • 7. Líneas lógicas y físicas Línea lógica: una o más líneas físicas, siguiendo las reglas de juntar líneas. Explícita '' al final del renglón. Implícita (, [, y { pueden continuarse en siguiente línea física. Varias instrucciones en el mismo renglón: separadas con ;. Objetos básicos Todo dato en python, incluso el código mismo, es un objeto. Los objetos tienen: identidad dirección en memoria, no cambia id() tipo define qué operaciones y valores puede tomar type() valor mutable, inmutable Algunos objetos son contenedores, es decir, tiene referencias a otros objetos. Los tipos básicos son:  Números. Valor único inmutable  Secuencias. Contenedor. Conjunto ordenado, índices son números naturales. Mutables e inmutables.  Mapeos. Contenedor. Conjunto sin orden, índices pueden ser un conjunto arbitrario excepto listas o diccionarios. Mutable.  Objetos llamables. Funciones internas o definidas por el usuario, métodos, módulos internos o definidos por el usuario, clases, instancias de una clase, archivos.
  • 8. Números inmutables enteros sencillos -2,147,483,648 a 2,147,483,647 OverflowError enteros largos sin límite punto flotante doble precisión complejos pareja de números de punto flotante z.real, z.imag Secuencias inmutables cadenas '' 'a' ``hola`` ``````hola ``````& tuples ( ), (1,), (1,2) mutables listas [ ], [1], [1,2,3] Mapeos mutables diccionarios { },{a:123, b:456} dbm, gdbm Método: función que pertenece a un objeto. Valores lógicos Falso Valor cero, contenedor vacío, None Verdadero Todo lo demás, Ellipsis. Funciones cmp( x, y ) 0 si x=y, 1 si x>y, -1 si x<y
  • 9. Números Enteros decimal 234890 octal 0766 hexadecimal 0x0fee Enteros largos 1L Punto flotante 1.5, 1e100 Complejos ( 5, 7j ) Funciones int( x, [base] ) str o int -> int trunca long( x ) str o int -> long float( x ) str o int -> float hex( i ) int -> str oct( x ) int -> str round( x, n) float -> float, n=0 trunc( x ) xxx -> xxx abs( x ) valor absoluto Secuencias inmutables cadenas '' 'a' 'ab' tuplas () (1,) (1,2) mutables listas [] [0] [0,1]
  • 10. Elementos nombre[0] primer elemento nombre[1] segundo elemento nombre[-1] último elemento nombre[-2] penúltimo elemento Índice fuera de rango es un error. Secciones Nombre [índice inferior: índice superior] Longitud del corte = índice superior - índice inferior nombre[:fin] Primer índice omitido vale 0. nombre[inicio:] Segundo índice omitido vale tamaño del objeto. nombre[:] Copia del objeto. nombre[0:1] Primer elemento. nombre[0:2] Primero y segundo elementos nombre[-2:] Últimos dos elementos Índices fuera de rango se aceptan: topan con 0 y el tamaño del objeto Nombre[:i] + nombre[i:] es igual a nombre. Funciones max(s Mayor elementos de s min( s ) Menor elementos de s len( s ) Cantidad de elementos
  • 11. Operadores + Concatenación. * Multiplicación. 'aaa' 'bbb' Concatenación implícita. > < == Comparaciones - lexicográficamente. e[not] in s Membresía Programación funcional range( [inicio,] fin [, incremento] ) inicio=0, incremento=1[0, 1, ... incremento < fin] inicio+i*incremento < fin [inicio, inicio+i*incremento, ...] xrange() ídem, para rangos muy grandes filter( función, secuencia ) if función( elemento ): tomar elemento map( función, secuencia [,secuencia...] ) función( elemento [, elemento...] ) reduce( función, secuencia ) función( elemento0, elemento1), etc. zip( secuencia [,secuencia...] ) Lista de tuplas con elemento i de cada secuencia) Cadenas ''& Cadena vacía 'c' Caracter 'abc' Comillas sencillas ``abc``& Comillas dobles 'dice ``hola``' Comillas dobles dentro de sencillas ``buyer's guide``& Comilla sencilla dentro de dobles '``buyer's`` guide' Comilla con escape ``````hola``````& Pueden contener varios renglones y comillas. '''hola''' ídem
  • 12. Métodos capitalize() Iniciales con mayúsculas s.join( secuencia ) Concatena secuencia con la cadena s lower() Minúsculas lstrip() Quita espacio en blanco al inicio rstrip() Quita espacio en blanco al final splitlines( [keepends]) Lista de renglones strip() Quita espacio en blanco upper() Mayúsculas Caracteres Son cadenas de longitud 1, no hay tipo char. ord( c ) código ascii del caracter chr( i ) caracter correspondiente str( o ) cadena para imprimir representación del objeto repr( o ) ídem, para usarse en eval() Caracteres especiales Secuencia de escape Significado ' ' ¨ `` f formfeed n linfeed r carriage return t tab ooo caracter ascii ooo octal
  • 13. Tuplas tuple( secuencia ) tupla con los elementos de la secuencia Listas Métodos append(x) Agrega un elemento. Equivale a a[len(a):] = [x] extend(L) Extiende la lista agregando los elementos de la lista. Equivale a[len(a):] = L insert( i, x) Inserta un elemento en la posición dada. insert( 0, x) Inserta al principio remove(x) Elimina el primer elemento cuyo valor es x. Error si no existe pop([i]) Elimina el elemento en la posición dada, y regresa su valor. Sin parámetro es el último elemento. index(x) Regresa el índice del primer elemento con valor x. Error si no existe count(x) Regresa el número de veces que x aparece en la lista. sort([cmpfunc]) Ordena los elementos, sobre la lista misma. cmpfunc( x y, ) regresa 1 si x>y, 0 si x==y, -1 si x<y. cmp(x, y) reverse() Ordena los elementos al revés, sobre la lista misma. Funciones y operadores del a[n] Borra elemento del[ x:y] Borra sección list( secuencia ) Lista con elementos de la secuencia
  • 14. Usos Pila LIFO append(x), pop() Cola FIFO append(x), pop(0) Matriz L[r][c] Lista recursiva L.append(L) Diccionarios Operaciones y métodos len(a) Cantidad de elementos en a a[k] Elemento de a cuya llave es k (subscripción) a[k] = x Asignar valor x a a[k] del a[k] Eliminar a[k] de a a.clear() Eliminar todos los elementos de a a.copy() Una copia de a a.has_key(k) 1 si a tiene llave k, 0 de lo contrario a.items() Una copia de la lista de parejas (llave, valor) de a a.keys() Una copia de la lista de llaves de a a.update(b) for k, v in b.items(): a[k] = v a.values() Una copia de la lista de valores de a a.get(k[, x]) a[k] si a.has_key(k), x de lo contrario Código eval( expresión ) Evalúa expresión exec( comando) Ejecuta instruccion(es)
  • 15. Asignaciones Nombre = expresión a,b = c,d (pack, unpack) Las asignaciones no copian datos, ligan nombres a objetos. Siempre van al ámbito interno. Operadores máxima prioridad llamada a función f(argumentos) sección x[índice:índice] subscripción x[índice] referencia a un atributo x.atributo unitarios + - potencia ** aritméticos * / % + - desplazar bits » « a nivel bits #1713#> xor | or comparaciones < > == >= <= <> != Se pueden encadenar: x < y < z identidad is [not] membresía [not] in booleanos not x and or lambda expresión lambda
  • 16. Control de flujo if expresión: Instrucción(es) [elif: Instrucción(es)] [else: Instrucción(es)] while expresión: Instrucción(es) [else: Instrucción(es)] for elemento in lista: Instrucción(es) Entrada y Salida  Consola print Renglón en blanco print x,y,z Separados por un espacio print alfa, Evita línea nueva al final print 'cadena-de-formato' % (expresiones) '%10s, %5d' como en printf() print 'cadena-de-formato' % diccionario '%(llave)formato' rawinput( [mensaje] ) Entrada de datos. Import readline opcional.
  • 17. Columnas import string print string.ljust( expr, ancho), string.center( expr, ancho), string.rjust( expr, ancho) Archivos f=open( 'ruta-a-archivo' [, modo]) modo: 'r', 'w', 'a', 'rb', 'wb', 'ab' f.read( [bytes] ) bytes=todos f.readline( [bytes] ) 'n' incluído al final de la cadena. eof es cuando regresa cadena vacía. f.readlines( [bytesaprox] ) bytesaprox=todos f.write( expresión ) f.writelines( lista ) f.tell() f.seek( offset, respectoa) 0 principio, 1 posición actual, 2 fin del archivo. f.close() Predefinidos: sys.stdin sys.stdout sys.stderr Objetos persistentes import pickle pickle.dump( objeto, archivo) objeto = pickle.load( archivo)
  • 18. Parámetros Posicionales nombre, ... Con valor por omisión nombre=valor_por_omisión, ... Opcionales *nombre Uso Nombre ( [argumentos] ) Argumentos Posicionales valor, ... Con nombre nombre=valor, ... Por tupla *tupla Por diccionario *diccionario Orden: de arriba a abajo. Los argumentos pasan por referencia al objeto. Funciones lambda lambda parámetros: expresión. Solamente una instrucción. Documentación Empieza con mayúscula, termina con punto, no incluye el nombre del objeto. Segunda línea vacía si tiene más líneas. Ámbitos y espacios de nombres Espacio de nombres: mapeo de nombres a objetos. Implementado con diccionarios. Alias: varios nombres pueden apuntar a un mismo objeto. Ámbito: región de texto de un programa de python donde un nombre es accesible directamente (con referencia sin calificar). Determinados estáticamente, usados dinámicamente.
  • 19. Conclusión Python está en movimiento y en pleno desarrollo, pero ya es una realidad y una interesante opción para realizar todo tipo de programas que se ejecuten en cualquier máquina. El equipo de desarrollo está trabajando de manera cada vez más organizada y cuentan con el apoyo de una comunidad que está creciendo rápidamente.