SlideShare una empresa de Scribd logo
Fco Javier Lucena Lucena
Índice
●       Introducción
●       Propiedades
●       Why use it ?
    ●   Instalación
        ●    Sintaxis
        ●   Ejemplos
http://xkcd.com/
Introducción

Python es un lenguaje de programación
dinámica muy poderoso.

Creado por Guido Van Rossum en 1991

Comparado con Tcl, Perl, Ruby, Scheme o
Java



                                          4
Propiedades
Interpretado o de script




 Flexibilidad y Portabilidad
   Pseudo código maquina intermedio (bitecode)
      Ficheros .pyc




                                                 5
Propiedades
Tipado Dinámico

 No es necesario declarar el tipo de dato que va a
 contener una determinada variable.

 El tipo se determinara en tiempo de ejecución.

 El tipo puede cambiar si se asigna un valor
 diferente.



                                                     6
Propiedades
Fuertemente Tipado

 Python distingue “las churras de las merinas”

 No se puede tratar una variable como si fuera
 de un tipo distinto al que tiene.

 Ej: Sumar la cadena “1” y en entero 2




                                                 7
Why use it?

Es un lenguaje “limpio”, tiene una sintaxis
legible.

Lenguaje muy parecido al pseudocodigo.

Recomendado para empezar a programar.



                                              8
Why use it?

Python is Open !!

  Usar
  Distribuir
  Incluso uso comercial
  Python Software Foundation


  Licencia Python 2.6.2

                               9
Why use it?
Powerful and fast

 Se puede resolver un problema en cualquier
 ámbito.

 La biblioteca estándar “lleva pilas incluidas”
   Servidor web → 3 Lineas de código Python

 Compilador de byte muy optimizado
   *.pyc (bitecode)


                                                  10
Why use it?
Multiplataforma
    Windows, Linux/Unix, OS/2, Mac incluso Amiga
    .NET, Java... Dispositivos Móviles... Ej: Nokia
Se integra con:
    COM (extensiones windows)
     bibliotecas Java (Jython),
    .NET (IronPython)
Fácil de aprender
    Amplia y buena documentación en línea.



                                                      11
Aplicaciones
Desarrollo Web e Internet
Bases de Datos
Desarrollo Software
Juegos y Gráficos 3D
Bioinformatica
Física
Educación

            http://www.python.org/about/apps/
               http://pypi.python.org/pypi      12
Casos de Éxito




                 13
Instalación
http://www.python.org/download/
Disponible en la mayoría de distribuciones
Gnu/Linux

sudo apt-get install ipython
  http://ipython.scipy.org/moin/
  Autocompletado (In[1] : pr + Tab)
  Operador ? (Ayuda métodos)

sudo apt-get install geany
                                             14
Instalación
                                                Control + d
Interprete Interactivo                          Control + z

    Desde consola ejecutamos python o ipython




                                                              15
Instalación
Script
      Ejecutar un fichero desde la linea de comandos
      Extensión ----> mi_fichero.py
      Shebang ----> #!/usr/bin/python
      python hola.py [ ./hola.py (chmod +x) ]

#!/usr/bin/python

print “Mensaje enviado”
print “Pulsa una tecla”

raw_input()




                                                       16
¿ Por qué empece a
programar en Python ?
Sintaxis
Se distinguen Mayúsculas – minúsculas
No se necesita carácter para indicar el fin de
una sentencia.
Los bloques son especificados por
indentación
# Esta línea es un comentario
Var = 3 # Asignación con el carácter =
Var == Var1 # Operador igualdad
Var -= 1 # Para incrementar Var += 1
                                                 18
Tipos de Datos

Números : entero, flotante, complejo
Cadenas de Texto
Valores Booleanos
  3 , 4.57, 2 + 3j
  “Hola Mundo”
  True - False
Saber el tipo de dato que contiene una
variable: type(id_variable)
                                         19
Variables
No es necesario declarar las variables
  Al utilizarlas se declaran automáticamente
Asignación Múltiple en una línea
  >>> a,b = 4,9
  >>> a
  4                           aux = a;
  >>> a,b = b,a               a = b;
                              b = aux;
  >>> a
  >>> 9



                                               20
Colecciones

Lista (vector – array)
  Puede contener cualquier tipo de dato
     lista = [ 35, “Hola”, True, [1, 2, 3]]
  Acceso a los elementos: lista[indice] indice=0,1...
     lista[3][0] # Accede al elemento 1
  [ ] Admite números negativos
     lista[-2] devolvería el elemento True
  lista[inicio:fin]
     Lista[1:] #desde 1 a fin
     Lsita [:2] # desde inicio a 2
                                                        21
Colecciones
Tupla
  Declaración: tupla = {1, True, “hola”}
  Acceso: tupla[indice]
Inmutables
  Sus valores no se pueden modificar
  Tamaño fijo
Mas ligeras que las listas
  Consumen menos memoria


                                           22
Cadena de Texto

cadena = “Que risa me da C”

cadena[4] # devuelve r

cadena[:3] # devuelve Que




                              23
Colecciones
Diccionario
  Relacionan una clave y un valor

Acceso: dicc[clave]

Dicc = {“75934029J” : “Lopez Lopez Jose,
        “64790681H” : “Perez Pepito}




                                           24
Estructuras de Control
Condicional
>>> x = int(raw_input("Introduce un número 
entero: "))
>>> if x < 0:
...       x = 0
...       print ’Negativo cambiado a cero’
... elif x == 0:
...       print ’Cero’
... elif x == 1:
...       print ’Uno’            switch
... else:                        case
...       print ’Más’
...
 IndentationError: expected an indented block   25
Estructuras de Control
Sentencia for
  No hay valor inicial, ni condición de parada, ni un
  incremento.
  Iterar por los elementos de una secuencia
  foreach en OO ó PHP
  >>> # Medir algunas cadenas:
  ... a = [’gato’, ’ventana’, ’defenestrar’]
  >>> for x in a:
  ...     print x, len(x)
  ...
  gato 4
  ventana 7
  defenestrar 11
                                                        26
Estructura de control
Función range()
>>> a = [’Cinco’, ’lobitos’, ’tiene’, 
’la’, ’loba’]
>>> for i in range(len(a)):
...     print i, a[i]
...
0 Cinco
1 lobitos
2 tiene
3 la
4 loba


                                         27
Estructuras de Control
        numero = 23
        detener = False

        while not detener:
                adivina = int(raw_input('Un entero : '))

                if adivina == numero:
                        print 'Enhorabuena, has acertado!.'
                        detener = True # Esto causa que el    
while                                  # bucle se detenga
                elif adivina < numero:
                        print 'No, es un numero mayor.'
                else: # tienes que acertar
                        print 'No, es un numero menor.'
        else:
                print 'El bucle while ha terminado.'
                print 'Puedo hacer lo que quiero aqui.'

        print 'Hecho.'

                                                             28
Funciones

>>> def fib(n):# escribir la serie Fibonacci hasta n
...
...     a, b = 0, 1
...     while b < n:
...         print b,
...         a, b = b, a+b
...
>>> # Y ahora llamamos a la función recién definida:
... fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 
1597


             Palabra reservada return
                                                       29
Funciones
 Documentar

def mi_funcion(param1, param2):
  """Esta función imprime los dos valores
           pasados como parámetros"""
  print param1
  print param2




                                            30
Funciones


Devolver Valores

   def f(x, y):
       return x * 2, y * 2

   a, b = f(1, 2)



                               31
Funciones
Parámetros por defecto
Parámetros Extra (tupla)


  def varios(param1, param2, *otros):
      for val in otros:
          print otros

  varios(1, 2)
  varios(1, 2, 3)
  varios(1, 2, 3, 4)

                                        32
Funciones lambda
 Crear funciones anónimas en línea
     def es_par(n):
         return (n % 2.0 == 0)
     l = [1, 2, 3]
     l2 = filter(es_par, l)


l = [1, 2, 3]
l2 = filter(lambda n: n % 2.0 == 0, l)



                                         33
Módulos
Fichero que contiene definiciones y
sentencias.
El nombre del fichero es el nombre del
modulo sin la extensión .py
Palabra reservada import - from
  #!/usr/bin/python
  import nombre_modulo
  nombre_modulo.funcion()
  import nombre_modulo from mi_funcion
  mi_funcion()
  ....                                   34
Módulos

Hay una gran variedad de módulos

Antes de implementar, busca !
  Probablemente esta ya hecho.

Hay módulos matemáticos, web,
programación evolutiva, inteligencia artificial


                                                  35
Módulos

¿Donde están?


Variable de entorno: PYTHONPATH
  >>> import sys
  >>> sys.path




                                  36
Paquetes

Sirven para organizar los módulos
Para hacer que Python trate a un directorio
como un paquete es necesario crear un
archivo __init__.py

  import paq.subpaq.modulo
  paq.subpaq.modulo.func()

             http://pypi.python.org/pypi
                                              37
Paquetes

Sonido/
  • __init__.py
  • Formatos/
     __init__.py
     leerwav.py
     escriwav.py
     leeraiff.py
     escriaiff.py
                    38
Clases

Sintaxis mínima y nueva Semántica


        class nombreClase:
            <sentencia­1>
            .
            .
            .
            <sentencia­N>


                                    39
Clases
    class MiClase:
        "Simple clase de ejemplo"
        i = 12345
        def f(self):
            return ’hola, mundo’

MiClase, además de definir la clase, es un
objeto en sí mismo.
MiClase.i y MiClase.f son referencias a
atributos válidas, que devuelven un entero
y un objeto método, respectivamente
                                             40
Clases
La instanciación de clases utiliza notación
de función.
 x =ID_Clase()
Esto crea una instancia de ID_Clase y la
asigna a la variable x.
Si queremos definir nuestro propio
constructor, bastará con definir una
función __init__

                                              41
Clases

>>> class Complejo:
...     def __init__(self, parteReal, 
parteImaginaria):
...         self.r = parteReal
...         self.i = parteImaginaria
...
>>> x = Complejo(3.0, ­4.5)
>>> x.r, x.i
(3.0, ­4.5)



                                         42
Clases
class MiClase:
    "Simple clase de ejemplo"
    i = 12345
    def f(self):
        return ’hola, mundo’

X= MiClase()

x.contador= 1
while x.contador < 10
  x.contador = x.contador * 2
print x.contador
del x.contador
                                43
Clases

      Método de clase
      Método de instancia


class Bolsa:
    def __init__(self):
        self.datos = []
    def agregar(self, x):
        self.datos.append(x)
    def agregarDosVeces(self, x):
        self.agregar(x)
        self.agregar(x)
                                    44
Clases
Herencia




                    45
Biblioteca Estándar
  Sistema operativo

>>> import os
>>> dir(os)
<devuelve una lista de todas las funciones del 
módulo>
>>> help(os)
<devuelve un extenso manual creado a partir de 
las cadenas de documentación del módulo>

>>> os.getcwd()
/home/fran


                                                  46
Biblioteca Estándar
Argumentos linea ordenes


  python demo.py un dos tres
    >>> import sys
    >>> print sys.argv
    [’demo.py’, ’un’, ’dos’, ’tres’]




                                       47
Biblioteca Estándar

import re
import math
import urllib2
import ramdom
import datetime
import threading
import logging

                      48
Ejemplo




          49
Ejemplo




          50
Ejemplo




          51
Ejemplo




          52
Ejemplo


Video Wii Motion + Python + Linux




                                    53
Fuentes


Python para todos
  Raúl Gonzalez Duque
Aprenda a Pensar Como un Programador
con Python
  Allen Downey Jeffrey Elkner Chris Meyers




                                             54
Licencia

Fco Javier Lucena Lucena

 fran.lucena@gmail.com

http://www.franlucena.es/

Más contenido relacionado

PDF
Introduccion a python 3
PDF
PPTX
Clase 2 - Introducción a la programación con Python I.pptx
PPT
Presentacion tics
PPTX
corriente electrica
PDF
Historia del cnc
PPTX
Ejercicios Resueltos de Diagrama de flujo
PDF
PLANIFICACIÓN RA1 OFIMÁTICA.pdf
Introduccion a python 3
Clase 2 - Introducción a la programación con Python I.pptx
Presentacion tics
corriente electrica
Historia del cnc
Ejercicios Resueltos de Diagrama de flujo
PLANIFICACIÓN RA1 OFIMÁTICA.pdf

La actualidad más candente (20)

PPTX
Estructura de Datos - Unidad 6 Metodos de busqueda
PPTX
Bibliotecas o libreria de c++
DOCX
Cuadro sinóptico estructuras de datos y su clasificación
PPTX
Memoria dinamica
PPTX
Memoria Estatica
 
PPTX
Tipos de listas en estructura de datos
PDF
Reporte metodos de busqueda y ordenamiento
PDF
P. estructurada vs. programación orientada a objetos
PDF
Diagramas de flujo - Estructuras de Control (For, While, Do Whille y Switch C...
PPTX
Pilas, colas, y listas estructura de datos
PPT
Ejercicios
PDF
Alfabetos-Lenguajes y Automatas 1
PPSX
Identificadores en Lógia de Programación
PDF
Calculadora con operaciones básicas en java
PPTX
Componentes y Librerías - Tópicos avanzados de programación.
PPTX
PARADIGMA IMPERATIVO
PPT
Estructuras en c++
PPTX
Estructuras de control
PDF
Teoría De La Complejidad Algoritmica
PPTX
Introducción a Python 3.4 (Presentación)
Estructura de Datos - Unidad 6 Metodos de busqueda
Bibliotecas o libreria de c++
Cuadro sinóptico estructuras de datos y su clasificación
Memoria dinamica
Memoria Estatica
 
Tipos de listas en estructura de datos
Reporte metodos de busqueda y ordenamiento
P. estructurada vs. programación orientada a objetos
Diagramas de flujo - Estructuras de Control (For, While, Do Whille y Switch C...
Pilas, colas, y listas estructura de datos
Ejercicios
Alfabetos-Lenguajes y Automatas 1
Identificadores en Lógia de Programación
Calculadora con operaciones básicas en java
Componentes y Librerías - Tópicos avanzados de programación.
PARADIGMA IMPERATIVO
Estructuras en c++
Estructuras de control
Teoría De La Complejidad Algoritmica
Introducción a Python 3.4 (Presentación)
Publicidad

Similar a Presentacion Python (20)

PPTX
Python101
PPT
programacion de sistemas de informacion.ppt
PPT
Curso de Python para progrmadores 2022.ppt
PPTX
Python-Thonny programación avanzada TESE
DOCX
02 introduccion a python
PDF
Curso python
PDF
Programacion en python_1
PDF
manual de python basico escrito por de vilar
PDF
python11111111111111111111111111111111111111111111111.pdf
PDF
Unidad V Tutorial de Python
PDF
Clase1_Python-CTIC
PDF
Desarrollar un módulo para Visuse
PPT
PPTX
Conceptos básicos de un lenguaje de programación
PPTX
iniciación con python aprendizaje de programación
PPTX
Estructura basica de_un_programa_c_ (1)
PPTX
Estructura basica de_un_programa_c_
PPT
Manejo de memoria
Python101
programacion de sistemas de informacion.ppt
Curso de Python para progrmadores 2022.ppt
Python-Thonny programación avanzada TESE
02 introduccion a python
Curso python
Programacion en python_1
manual de python basico escrito por de vilar
python11111111111111111111111111111111111111111111111.pdf
Unidad V Tutorial de Python
Clase1_Python-CTIC
Desarrollar un módulo para Visuse
Conceptos básicos de un lenguaje de programación
iniciación con python aprendizaje de programación
Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_
Manejo de memoria
Publicidad

Más de Fco Javier Lucena (7)

PDF
Bucles con Scratch
PDF
Interfaces de usuario con PyGTK
PDF
En busca de la piedra filosofal
PDF
reglajes formula uno electre
PDF
Manual Basico para Encantadores de Serpientes (Python)
PDF
Control de Versiones con Subversion (SVN)
PDF
Tablas HTML
Bucles con Scratch
Interfaces de usuario con PyGTK
En busca de la piedra filosofal
reglajes formula uno electre
Manual Basico para Encantadores de Serpientes (Python)
Control de Versiones con Subversion (SVN)
Tablas HTML

Último (20)

PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PPT
Cosacos y hombres del Este en el Heer.ppt
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Fundamentos_Educacion_a_Distancia_ABC.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
Cosacos y hombres del Este en el Heer.ppt
Lección 6 Escuela Sab. A través del mar rojo.pdf
Escuela Sabática 6. A través del Mar Rojo.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
caso clínico iam clinica y semiología l3.pptx
Tarea De El Colegio Coding For Kids 1 y 2
Híper Mega Repaso Histológico Bloque 3.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...

Presentacion Python