0% encontró este documento útil (0 votos)
127 vistas

Python ABC

Este documento presenta una introducción al lenguaje de programación Python. Explica que Python es un lenguaje interpretado, multi-paradigma y multiplataforma. Describe algunas de sus características como su sintaxis legible y gran cantidad de bibliotecas. También cubre temas como tipos de datos basicos, comentarios, variables, listas, tuplas, diccionarios y más.

Cargado por

Gerardo Garita
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
127 vistas

Python ABC

Este documento presenta una introducción al lenguaje de programación Python. Explica que Python es un lenguaje interpretado, multi-paradigma y multiplataforma. Describe algunas de sus características como su sintaxis legible y gran cantidad de bibliotecas. También cubre temas como tipos de datos basicos, comentarios, variables, listas, tuplas, diccionarios y más.

Cargado por

Gerardo Garita
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 43

Prof.Ing.

Gerardo Garita 1
Desarrollo de
Aplicaciones con
Python 3.6
y PyCharm 2017 Community

Prof.Ing.Gerardo Garita 2
Prof.Ing.Gerardo Garita 3
Que es Python?
Conceptos basicos antes de iniciar el desarrollo

Prof.Ing.Gerardo Garita 4
Como nació Python?
• Fue creado a finales de los 80’s por Guido
van Rossum (Google, Dropbox) inspirado
en ABC.
• “Programacion para todos”:
• Python debería ser fácil, intuitivo y tan potente
como sus principales competidores.
• El proyecto sería de Código Abierto para que
cualquiera pudiera colaborar.
• El código escrito en Python sería tan
comprensible como cualquier texto en inglés.
• Python debería ser apto para las actividades
diarias permitiendo la construcción de
prototipos en poco tiempo.

Prof.Ing.Gerardo Garita 5
Que es Python?
• Python es un lenguaje de programación cuya filosofía
hace hincapié en una sintaxis que favorezca un código
legible.
• Python es al día de hoy uno de los lenguajes de
programación más populares.
• En 2011 se proclamó el tercer lenguaje más popular
de la forja GitHub y según la encuesta​ se encuentra
entre los 10 lenguajes de programación más
demandados en las ofertas de trabajo.

Prof.Ing.Gerardo Garita 6
Versiones de Python
• (1991) V0.9
• (1994) V1.0
• (1995) V1.2
• (2000) V1.6 (free)
• (2000) V2.0
• (2001) V2.2 – V2.3
• (2009) V3.x ó Python 3000
• (17 de julio del 2017) V3.2.6

Prof.Ing.Gerardo Garita 7
Características de Python
1. Es interpretado 6. Es administrado por la PSF (Python
Software Foundation).

2. Es multi paradigma
7. Influido por:
• OO (Java, C#) • ABC
• Funcional (Scala, F#) • C
• Imperativo* (C, Pascal) • Modula-3
• Perl
• Java
3. Es no-tipado dinámico
8. Ha influido a:
4. Es multiplataforma • D
• Groovy
• Ruby
5. Posee una licencia de código • JavaScript
abierto • Go

Prof.Ing.Gerardo Garita 8
Características de Python
9. Posee gran cantidad de
bibliotecas

10. Es muy expresivo (por


lo cual ocupa menos
instrucciones que otros
lenguajes)

Prof.Ing.Gerardo Garita 9
Filosofía Python

Prof.Ing.Gerardo Garita 10
Filosofía 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.
• Lo práctico gana a lo puro.
• 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.
• 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.
• Si la implementación es fácil de explicar, puede que sea una buena idea.

Prof.Ing.Gerardo Garita 11
Prof.Ing.Gerardo Garita 12
Como programar en Python?
Entorno de desarrollo

Prof.Ing.Gerardo Garita 13
PyCharm
• PyCharm es un entorno de desarrollo (IDE) dedicado a Python
and Django para el desarrollo del lenguaje y el desarrollo web.

Prof.Ing.Gerardo Garita 14
Entorno PyCharm 1. Menus and toolbars.

2. Barra de navegación.

3. Barra de estado.

4. Editor.

5. Ventanas de
herramientas.

Prof.Ing.Gerardo Garita 15
Prof.Ing.Gerardo Garita 16
Como programar en Python?
Sintaxis

Prof.Ing.Gerardo Garita 17
Prof.Ing.Gerardo Garita 18
Comentarios

‘’’
este es mi comentario
‘’’

# este es mi comentario

Prof.Ing.Gerardo Garita 19
Variables

• X=0

• X = “Hola mundo!”

Prof.Ing.Gerardo Garita 20
Tipo Clase Ejemplo
None >>None

str Cadena 'Cadena'

list Secuencia [4.0, 'Cadena', True]

tuple Secuencia (4.0, 'Cadena', True)

set Conjunto set([4.0, 'Cadena', True])

frozenset Conjunto frozenset([4.0, 'Cadena', True])

dict Mapping {'key1': 1.0, 'key2': False}

int Número entero 42

long Número entero 42L ó 456966786151987643L

float Número decimal 3.1415927

complex Número complejo (4.5 + 3j)

bool Booleano True o False

Prof.Ing.Gerardo Garita 21
Tuplas
>>> tupla = ("abc", 42, 3.1415)

>>> tupla[0]
# Acceder a un elemento por su índice 'abc'

>>> del tupla[0]


# No es posible borrar (ni añadir) un elemento en una tupla, lo que provocará una excepción
( Excepción )

>>> tupla[0] = "xyz"


# Tampoco es posible re-asignar el valor de un elemento en una tupla, lo que también provocará
una excepción ( Excepción )

>>> tupla[0:2]
# Mostrar los elementos de la tupla del índice "0" al "2" (sin incluir este último)

('abc', 42)
Prof.Ing.Gerardo Garita 22
Tuplas anidadas
>>> tupla_anidada = (tupla, (True, 3.1415))
# También es posible anidar tuplas

>>> 1, 2, 3, "abc"
# Esto también es una tupla, aunque es recomendable ponerla entre paréntesis (recuerda que requiere, al menos, una
coma) (1, 2, 3, 'abc')

>>> (1)
# Aunque entre paréntesis, esto no es una tupla, ya que no posee al menos una coma, por lo que únicamente aparecerá
el valor 1

>>> (1,)
# En cambio, en este otro caso, sí es una tupla (1,)

>>> (1, 2)
# Con más de un elemento no es necesaria la coma final (1, 2)

>>> (1, 2,)


# Aunque agregarla no modifica el resultado (1, 2)

Prof.Ing.Gerardo Garita 23
Listas
>>> lista = ["abc", 42, 3.1415]

>>> lista[0]
# Acceder a un elemento por su índice 'abc'

>>> lista[-1]
# Acceder a un elemento usando un índice negativo 3.1415

>>> lista.append(True)
# Añadir un elemento al final de la lista

>>> lista ['abc', 42, 3.1415, True]

>>> del lista[3]


# Borra un elemento de la lista usando un índice (en este caso: True)

>>> lista[0] = "xyz“


# Re-asignar el valor del primer elemento de la lista

>>> lista[0:2]
# Mostrar los elementos de la lista del índice "0" al "2" (sin incluir este último) ['xyz', 42]

Prof.Ing.Gerardo Garita 24
Listas anidadas

>>> lista_anidada = [lista, [True, 42L]]


# Es posible anidar listas

>>> lista_anidada [['xyz', 42, 3.1415], [True, 42L]]

>>> lista_anidada[1][0]
# Acceder a un elemento de una lista dentro de otra lista (del
segundo elemento, mostrar el primer elemento)

True
Prof.Ing.Gerardo Garita 25
Listas por comprension
>>> range(5)
# La función "range" devuelve una lista, empezando en 0 y
terminando con el número indicado menos uno [0, 1, 2, 3, 4]

>>> [i*i for i in range(5)]


# Por cada elemento del rango, lo multiplica por sí mismo y lo
agrega al resultado [0, 1, 4, 9, 16]

>>> lista = [(i, i + 2) for i in range(5)]

>>> lista [(0, 2), (1, 3), (2, 4), (3, 5), (4, 6)]
Prof.Ing.Gerardo Garita 26
Diccionarios
>>> diccionario = {"cadena": "abc", "numero": 42, "lista": [True, 42L]}
# Diccionario que tiene diferentes valores por cada clave, incluso una lista

>>> diccionario["cadena"]
# Usando una clave, se accede a su valor 'abc'

>>> diccionario["lista"][0]
# Acceder a un elemento de una lista dentro de un valor (del valor de la clave "lista", mostrar el primer
elemento)
True

>>> diccionario["cadena"] = "xyz"


# Re-asignar el valor de una clave

>>> diccionario["cadena"] 'xyz'

>>> diccionario["decimal"] = 3.1415927


# Insertar un nuevo elemento clave:valor

>>> diccionario["decimal"] 3.1415927

Prof.Ing.Gerardo Garita 27
Diccionarios mixtos

>>> diccionario_mixto = {"tupla": (True, 3.1415), "diccionario": diccionario}


# También es posible que un valor sea un diccionario

>>> diccionario_mixto["diccionario"]["lista"][1]
# Acceder a un elemento dentro de una lista, que se encuentra dentro de un
diccionario 42L

>>> diccionario = {("abc",): 42}


# Sí es posible que una clave sea una tupla, pues es inmutable

>>> diccionario = {["abc"]: 42}


# No es posible que una clave sea una lista, pues es mutable, lo que provocará
una excepción ( Excepción )

Prof.Ing.Gerardo Garita 28
Conjuntos
>>> conjunto_inmutable = frozenset(["a", >>> conjunto1 & conjunto2
"b", "a"]) # Intersección set(['a', 'b'])
# Se utiliza una lista como objeto iterable

>>> conjunto1 | conjunto2


>>> conjunto_inmutable frozenset(['a', 'b']) # Unión set(['a', 'c', 'b', 'd'])

>>> conjunto1 = set(["a", "b", "a"]) >>> conjunto1 - conjunto2


# Primer conjunto mutable # Diferencia (1) set([])

>>> conjunto1 set(['a', 'b']) >>> conjunto2 - conjunto1


# Diferencia (2) set(['c', 'd'])
>>> conjunto2 = set(["a", "b", "c", "d"])
# Segundo conjunto mutable >>> conjunto1 ^ conjunto2
# Diferencia simétrica set(['c', 'd'])
>>> conjunto2 set(['a', 'c', 'b', 'd'])
Prof.Ing.Gerardo Garita 29
# Recuerda, no mantienen el orden
Condiciones
>>> verdadero = True
>>> if verdadero: # No es necesario poner "verdadero == True"
print "Verdadero" ...
else:
print "Falso"
Verdadero

>>> lenguaje = "Python"


>>> if lenguaje == "C": # lenguaje no es "C", por lo que este bloque se obviará y evaluará la siguiente condición
print "Lenguaje de programación: C"
elif lenguaje == "Python": # Se pueden añadir tantos bloques "elif" como se quiera
print "Lenguaje de programación: Python“
else: # En caso de que ninguna de las anteriores condiciones fuera cierta, se ejecutaría este bloque
print "Lenguaje de programación: indefinido"

Lenguaje de programación: Python


>>> if verdadero and lenguaje == "Python": # Uso de "and" para comprobar que ambas condiciones son verdaderas
print "Verdadero y Lenguaje de programación: Python"
Verdadero y Lenguaje de programación: Python

Prof.Ing.Gerardo Garita 30
Bucles

>>> lista = ["a", "b", "c"]


>>> for i in lista: # Iteramos sobre una lista, que es iterable
print i
abc

>>> cadena = "abcdef"


>>> for i in cadena: # Iteramos sobre una cadena, que también es
iterable
print i, # Añadiendo una coma al final hacemos que no
introduzca un salto de línea, sino un espacio
abcdef
Prof.Ing.Gerardo Garita 31
Bucles

>>> numero = 0
>>> while numero < 10:
print numero,
numero += 1

#un buen programador modificará las variables de control al


finalizar el ciclo while

0123456789

Prof.Ing.Gerardo Garita 32
Funciones - def

>>> def suma(x, y = 2):


return x + y
# Retornar la suma del valor de la variable "x" y el valor de "y"

>>> suma(4)
# La variable "y" no se modifica, siendo su valor: 2 6

>>> suma(4, 10)


# La variable "y" sí se modifica, siendo su nuevo valor: 10 14

Prof.Ing.Gerardo Garita 33
Funciones - lambda

>>> suma = lambda x, y = 2: x + y

>>> suma(4)
# La variable "y" no se modifica, siendo su valor: 2 6

>>> suma(4, 10)


# La variable "y" sí se modifica, siendo su nuevo valor: 10 14

Prof.Ing.Gerardo Garita 34
Clases
>>> class Persona(object):
def __init__(self, nombre, edad):
self.nombre = nombre # Un atributo cualquiera
self.edad = edad # Otro atributo cualquiera
def mostrar_edad(self): # Es necesario que, al menos, tenga un parámetro,
generalmente: "self"
print self.edad # mostrando un atributo
def modificar_edad(self, edad): # Modificando Edad
if edad < 0 or edad > 150: # Se comprueba que la edad no sea menor de 0
(algo imposible), ni mayor de 150 (algo realmente difícil)
return False
else: # Si está en el rango 0-150, entonces se modifica la variable
self.edad = edad # Se modifica la edad

Prof.Ing.Gerardo Garita 35
Clases
>>> p = Persona("Alicia", 20)
# Instanciar la clase, como se puede ver, no se especifica el valor de "self"

>>> p.nombre
# La variable "nombre" del objeto sí es accesible desde fuera 'Alicia'

>>> p.nombre = "Andrea"


# Y por tanto, se puede cambiar su contenido

>>> p.nombre 'Andrea'

>>> p.mostrar_edad()
# Se llama a un método de la clase 20

>>> p.modificar_edad(21)
# Es posible cambiar la edad usando el método específico que hemos hecho para hacerlo de forma controlada

>>> p.mostrar_edad() 21

Prof.Ing.Gerardo Garita 36
Modulos
>>> import os
# Módulo que provee funciones del sistema operativo

>>> os.name
# Devuelve el nombre del sistema operativo 'posix'

>>> os.mkdir("/tmp/ejemplo")
# Crea un directorio en la ruta especificada

>>> import time


# Módulo para trabajar con fechas y horas

>>> time.strftime("%Y-%m-%d %H:%M:%S")


# Dándole un cierto formato, devuelve la fecha y/u hora actual '2010-08-10 18:01:17'

Prof.Ing.Gerardo Garita 37
Prof.Ing.Gerardo Garita 38
Porque Python?
Actualidad y Novedades

Prof.Ing.Gerardo Garita 39
Python? Porque?
• Los programas son mas claros y traducibles
• Aumenta la productividad (una vez que lo dominas)
• Es multi paradigma
• Es sostenible por su claridad
• Es versátil
• Es usado para el desarrollo de scripts
• Django es muy utilizado en el desarrollo web
• Es muy utilizado en el procesamiento de textos complejo
• Hay muchísimas librerías disponibles (estadísticas, matemáticas,
gráficos)
• Es el principal lenguaje usado para Machine Learning
• Es ideal para programadores novatos y la enseñanza

Prof.Ing.Gerardo Garita 40
Prof.Ing.Gerardo Garita 41
Let’s do it Python!
Actividad programada

Prof.Ing.Gerardo Garita 42
Prof.Ing.Gerardo Garita 43

También podría gustarte