Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Introducción a Python - Presentación

Introducción a Python
by

Germán Osella Massa

on 10 December 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Introducción a Python - Presentación

Tipos Integrados Números int long float complex Tuplas Conjuntos Cadenas str unicode Listas listas por comprensión: otros bytearray Literales: 0, -10, 42
Hexadecimal: 0x2e, 0xFF
Octal: 0o644, 0750
Binario: 0b1100 Número entero De precisión limitada
(implementado como tipo long de C). 2 ** 100 => 1267650600228229401496703205376L Número entero De precisión ilimitada. Número real 0.0 3.14 1.5e10
1E-15 1. .3 Valores representados en punto flotante.
(implementado como tipo double de C). Ejemplos: Número complejo Ejemplos: Valores representados como un par de float:
parte real y parte imaginaria.

complejo = real + imaginaria j 1 + 2j 2.0 + 1.5J 4.3j Números decimales Implementa aritmética decimal exacta. clase Decimal Decimal('1.1') + Decimal('2.2') => Decimal('3.3') Fraction(1, 3) + Fraction(7, 6) => Fraction(3, 2) clase Fraction Implementa aritmética de fracciones. Fracciones " una 'cadena'. " ' otra "cadena". ' """Una cadena
que ocupa
varias líneas.""" 'Python\'s\n' "Uno" "Dos" "Tres" r"viejo\nuevo" b'cadena de bytes.' Comillas dobles Códigos de escape Comillas simples Multilínea Concatenación Raw strings Python 3.x bytes Cadena inmutable de bytes. Cadena mutable de bytes.
Compatibilidad con Python 3. (o bytes) (a partir de python 2.6) Cadena inmutable de caracteres (son caracteres unicode, no bytes).
Necesidad de usar codificaciones para interacturar con cadenas de bytes. Ejemplo: uni = u"ÁÉÍÓÚÑáéíóúñ"
uni.encode('utf-8') => "ÁÉÍÓÚÑáéíóúñ"
unicode("ÁÉÍÓÚÑáéíóúñ", 'utf-8') => u"ÁÉÍÓÚÑáéíóúñ" bool Valores booleanos Subclase especializada de int.
Usado en operaciones lógicas.
True == 1, False == 0 capitalize expandtabs isdigit ljust rindex splitlines upper
center find islower lower rjust startswith zfill
count format isspace lstrip rpartition strip
decode index istitle partition rsplit swapcase
encode isalnum isupper replace rstrip title
endswith isalpha join rfind split translate métodos: append find isspace pop rsplit translate
capitalize fromhex istitle remove rstrip upper
center index isupper replace split zfill
count insert join reverse splitlines
decode isalnum ljust rfind startswith
endswith isalpha lower rindex strip
expandtabs isdigit lstrip rjust swapcase
extend islower partition rpartition title métodos: capitalize expandtabs isdigit ljust rindex splitlines upper
center find islower lower rjust startswith zfill
count format isspace lstrip rpartition strip
decode index istitle partition rsplit swapcase
encode isalnum isupper replace rstrip title
endswith isalpha join rfind split translate métodos: Arreglos mutables de referencias a objetos,
accedidos por un índice. [] Lista vacia: Lista con 4 elementos: [1, 2, 3, 4] los índice
van de 0..3 Lista que contiene otra lista: [10, "Hola", [4, 8, 15, 16, 23, 42], 3.14] métodos: append index remove
count insert reverse
extend pop sort [x**2 for x in range(10) if x % 3 == 0 ] => [0, 9, 36, 81] g = (x**2 for x in range(10) if x % 3 == 0)
g => <generator object <genexpr> at 0x.....>

list(g) => [0, 9, 36, 81] () (1, 2, 3, 4) o 1, 2, 3, 4 (10, "Hola", (4, 8, 15, 16, 23, 42), 3.14) Tupla que contiene otra tupla: count
index Arreglos inmutables de referencias a objetos,
accedidos por un índice. Tupla con 4 elementos: Tupla vacia: Expresiones generadoras: los índice van de 0..3 métodos: Tupla de 1 elemento: (1,) t = tuple([1,2,3]) => (1,2,3) Tupla a partir de un iterable: lst = list("Hola") => ['H', 'o', 'l', 'a'] Lista a partir de un iterable: Diccionarios {} {'uno': 1, 'dos': 2} {'info': {'nombre': 'func', 'valor': ('x', 10) } } Dicc. que contiene otro dicc.: clear items pop
copy iteritems popitem
fromkeys iterkeys setdefault
get itervalues update
has_key keys values Tablas mutables de referencias a objetos,
accedidas por una clave en lugar de índice. Dicc. con 2 elementos: Dicc. vacio: métodos: lst = [ ('uno', 1), ('dos', 2) ]
dict(lst) Dicc. a partir de un iterable: dict(uno=1, dos=2) Dicc. usando argumentos: Presentación Benevolent Dictator for Life Guido van Rossum Creador y BDFL A partir de la versión 2.0, el lenguaje es desarrollado por una comunidad mediante PEPs, teniendo el BDFL la palabra final en cualquier conflicto de opiniones. PEP: Python Enhancement Proposal Algunos PEPs: 1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
5. Flat is better than nested.
6. Sparse is better than dense.
7. Readability counts.
8. Special cases aren't special enough to break the rules.
9. Although practicality beats purity.
10. Errors should never pass silently.
11. Unless explicitly silenced.
12. In the face of ambiguity, refuse the temptation to guess.
13. There should be one-- and preferably only one --obvious way to do it.
14. Although that way may not be obvious at first unless you're Dutch.
15. Now is better than never.
16. Although never is often better than *right* now.
17. If the implementation is hard to explain, it's a bad idea.
18. If the implementation is easy to explain, it may be a good idea.
19, Namespaces are one honking great idea -- let's do more of those! 1. Lo bello es mejor que lo feo.
2. Lo explícito es mejor que lo implícito.
3. Lo simple es mejor que lo complejo.
4. Lo complejo es mejor que lo complicado.
5. Lo plano es mejor que lo anidado.
6. Lo disperso es mejor que lo denso.
7. La legibilidad cuenta.
8. Los casos especiales no son suficientemente especiales como para romper las reglas.
9. Aunque lo práctico le gana a la pureza.
10. Los errores nunca deberían dejarse pasar silenciosamente.
11. A menos que se los silencien explícitamente.
12. Cuando te enfrentes a la ambigüedad, rechaza la tentación de adivinar.
13. Debería haber una — y preferiblemente sólo una — manera obvia de hacerlo.
14. Aunque la manera puede que no sea obvia a primera vista, a menos que seas holandés.
15. Ahora es mejor que nunca.
16. Aunque muchas veces nunca es mejor que *ahora mismo*.
17. Si la implementación es difícil de explicar, es una mala idea.
18. Si la implementación es fácil de explicar, puede que sea una buena idea.
19. Los espacios de nombres son una gran idea — ¡tengamos más de esos! 0 Index of Python Enhancement Proposals (PEPs)
1 PEP Purpose and Guidelines
2 Procedure for Adding New Modules
3 Guidelines for Handling Bug Reports
4 Deprecation of Standard Modules
5 Guidelines for Language Evolution
6 Bug Fix Releases
7 Style Guide for C Code
8 Style Guide for Python Code

20 The Zen of Python Características Interpretado Tipado Dinámico Fuertemente Tipado Multiparadigma Multiplataforma (aunque no siempre) Sintaxis clara (favorece escribir código legible) QNX Solaris DOS Mac OS X Windows AIX iPod Linux BeOS OS/2 OS/390 Palm OS PlayStation PSP Psion VMS Windows CE orientado a objetos imperativo funcional (en realidad, en Python TODO es un objeto) Historia http://www.vimeo.com/1093745 Implementaciones CPython Jython IronPython PyPy Otras Stackless Python
pyjamas
Cython
Pyrex
Unladen Swallow
Shed Skin
PyS60 Implementación oficial de Python escrita en C. Implementación de Python escrita en Java.

Compila programas de Python a bytecodes para la máquina virtual de Java (JVM).

Permite interactuar de manera transparente con clases de Java. Implementación de Python escrita en C#.

Compila programas de Python a la plataforma .NET.

Permite interactuar con clases de esta plataforma. Implementación de Python escrita en Python.

Facilita modificar Python o probar diferentes implementaciones
(al estar escrito en un lenguaje de mucho más alto nivel que C).

Aún en etapa experimental pero evolucionando. También conocido como Duck Typing. "If it looks like a duck, and swims like a duck, and quacks like a duck, then it must be a duck." Incluye las pilas Extensa biblioteca estándar, clave en la productividad de Python. Servicios del sistema, fecha y hora, subprocesos, sockets, internacionalización y localización, base de datos, threads, formatos zip, bzip2, gzip, tar, expresiones regulares, XML (DOM y SAX), Unicode, SGML, HTML, XHTML, XML-RPC (cliente y servidor), email, manejo asincrónico de sockets, clientes HTTP, FTP, SMTP, NNTP, POP3, IMAP4, servidores HTTP, SMTP, herramientas MIME, interfaz con el garbage collector, serializador y deserializador de objetos, debugger, profiler, random, curses, logging, compilador, decompilador, CSV, análisis lexicográfico, interfaz gráfica incorporada, matemática real y compleja, criptografía (MD5 y SHA), introspección, unit testing, doc testing, etc., etc... "Batteries included" Conceptos básicos variables nombres de objetos uso métodos Ejecución de programas Objetos clase atributos creación destrucción Código fuente ::::::::....
:::::....
:::::...... 0100010100101001010101010010010101110101010010101010010010101 (bytecodes) Ejecución Compilado $ python prog.py Modo Ejecución $ python Modo Interactivo Lic. Germán Osella Massa german.osella@nexo.unnoba.edu.ar Introducción a ¿Por qué
se llama
Python? Muchos creen que por esto... Cuando en realidad es por esto! NO! SI! Visualización
de la evolución
de CPython: La forma en que los objetos pueden ser usados está determinada completamente por las clases que los definen. Usted
está
aquí. Código fuente ::::::::....
:::::....
:::::...... 0100010100101001010101010010010101110101010010101010010010101 (bytecodes) Ejecución Compilado $ python prog.py Modo Ejecución
Full transcript