Python: Conceptos básicos

|nbazurtog@gmail.com

Agenda

  • Introducción.
  • Hola mundo
  • Variables y tipos de datos
  • Operaciones
  • Condicionales
  • Bucles
  • Funciones
  • Modulos y paquetes

Introducción

¿Por qué Python?

  • Productividad y legibilidad de código.
  • Librerías.
  • Datos dinámicos y manejo de memoria automático.
  • Multiparadigma.
public class Hello
{
    public static void main (String argv[){
        System.out.println("Hola ");
    }

}
print ("Hola")

Variables y tipos de datos

Números

Entero  

Flotante

Complejo

a = 5
print(a, "es de tipo", type(a))

a = 2.0
print(a, "es de tipo", type(a))

a = 1+2j
print(a, "es un número complejo?", isinstance(1+2j,complex))

String

Conjunto contiguo de caracteres representados dentro de comillas.

str= "Perfectirijillo"

Aritméticos

Operadores

Con textos

1 + 2 * 3 / 4.0

# Módulo
11 % 3

# Potencia
cuadrado = 7 ** 2
cubico = 2 ** 3
myVar = "hola" + " " + "mundo"

holahola = "hola" * 10

Operaciones con cadenas

len(miCadena)

miCadena = "Hola clase"

10

miCadena.index("o")

1

miCadena.count("a")

2

Estructuras de datos

Es una forma especializada para organizar y almacenar datos.

Lista

  • Secuencia de objetos.
  • Los objetos pueden ser de cualquier tipo.

 

  • Ordenada, maneja posiciones.
  • Una lista es un objeto, así que puede contener otras listas.
>>> a = [123 , ’ duck ’ , -42 , 17 , 0 , ’ elephant ’]

Lista

simpson = ['Marge','Homero']
simpson[1]
>>Homero

#Sumar listas
pares = [2,4,6,8]
impares = [1,3,5,7]
todos_los_numeros = pares + impares

#Append: Agrega un ítem al final de la lista.
simpson.append('Bart')
>> ['Marge','Homero','Bart']


#Extend: Extiende la lista agregándole todos los ítems de la lista dada.
simpson.extend(['Lisa', 'Ned','Apu'])
>> ['Marge','Homero','Bart', 'Lisa', 'Ned', 'Apu']


#Insert: Inserta un ítem en una posición dada.
#El primer argumento es el índice del ítem antes del cual se insertará
simpson.insert(2, 'Burns')
>>['Marge','Homero','Burns','Bart', 'Lisa', 'Ned', 'Apu']


#Remove: Quita el primer ítem de la lista cuyo valor sea el especificado.
simpson.remove('Burns')
>>['Marge','Homero','Bart', 'Lisa', 'Ned', 'Apu']

#Count
simpson.append('Bart')
simpson.count('Bart')
>>2

#Reverse

simpson.reverse()


Tuplas

Un número de valores separados por comas.

Una tupla es (immutable) una secuencia de objetos.

 

Las tuplas son muy parecidas en su comportamiento a las listas con la excepción de que no pueden ser modificadas.

Tuplas

Un número de valores separados por comas.

>>> a = (12 , 13 , ’ dog ’)
>>> a
(12 , 13 , ’ dog ’)
>>> a [0]
12

>>> a = 100 , 200 , ’ duck ’
>>> a
(100 , 200 , ’ duck ’)

>>> a = (12 , 13 , ’ dog ’)
>>> a [0]
12
>>> a [0] = 1
Traceback ( most recent call last ):
File " < stdin > " , line 1 , in ?
TypeError : object doesn ’t support item assignment

Diccionarios

Se indexan con claves.

También llamados “associative arrays” y “hash tables”. Son conjuntos no ordenados de parejas de llave-valor.

 d [ ’ Homero ’] = ’ Calvo con pelo en M ’     # ’ Homero ’ es la llave
                                               # ’ Calvo con pelo en M ’ es el valor
#Lista de las llaves
d.keys() 

#Devolver valores usando la llave como índice
print d [ ’ Homero ’]

#Otra forma de creación
 d2 = {2:4 , 3:9 , 4:16 , 5:25}

d . values ()
[ ’ Calvo con pelo en M ’ , ’ Chica estudiosa ’]

d . items ()
[( ’ Homero ’ , ’Calvo con pelo en M ’) , ( ’ Lisa ’ , ’ Chica estudiosa ’ )]
 
d . has_key ( ’ Homero ’)
True

d . has_key ( ’ Marge ’)
False

d . get ( ’ Homero ’ , ’ Ni idea ’)
’ Calvo con pelo en M’

 Control de flujo

[...] Los condicionales nos permiten comprobar condiciones y hacer que nuestro programa se comporte de una forma u otra, que ejecute un fragmento de código u otro, dependiendo de esta condición [...]"

Python para Todos de Raúl González Duque

 Control de flujo

If

evalua si una o más condiciones se cumplen

True
False
if semaforo == verde: 
    print "Cruzar la calle"
else: 
    print "Esperar"
if hambre == true and dinero > 3000 : 
    print "Comprar dona"
else: 
    print "D'oh"

Relacionales

Operadores

Símbolo Significado Ejemplo Resultado
== Igual que 10==7 False
!= Diferente que bici != carro True
> Mayor que 10 > 5 True
< Menor que 7<88 True
>= Mayor o igual que 17 >= 17 True
<= Menor o igual que 19 <= 20 False

Sobre una condición

1

Lógicos

Operadores

Símbolo Ejemplo Explicación Resultado
and 5 == 7 and 7 < 12 False and False False
and 9 < 12 and 12 > 7 True and True True
and 9 < 12 and 12 > 15 True and False False
or 12 == 12 or 15 < 7 True or False True
or 7 > 5 or 9 < 12 True or True True
xor 4 == 4 xor 9 > 3 True xor True False
xor 4 == 4 xor 9 < 3 True xor False True

Más de una condición

+

in

Operadores

Chequear si existe un objeto en un objeto iterable

nombre = "Juan"
if nombre in ["Juan", "Camilo"]:
    print("Tu nombre es Juan o Camilo")

is

not

Compara la instancia como tal del objeto.

Niega un boolean

 Control de flujo

For

Permitirá iterar sobre una variable compleja, del tipo lista o tupla

# Midiendo cadenas de texto
  palabras = ['Lisa', 'Estudiar', 'Saxofón']
  for p in palabras:
       print(p, len(p))
 for i in range(5):
     print(i)
 for segundo in range(1,10):
     print(segundo)
 for segundo in range(10,50,5):
     print(segundo)

 Control de flujo

While

ejecuta una misma acción "mientras que" una determinada condición se cumpla.

anio = 2000 
while anio <= 2017: 
    print "Informe del año", str(anio) 
    anio += 1
while True:
    nombre = input("Indique su nombre: ")
    if nombre:
        break

Funciones

  • Dividir el código en bloques funcionales.
  • Reutilizar.
  • Legibilidad.
def mi_funcion():
    print("Hola desde la función!")  
def mi_funcion_args(nombre,apellido):
    print(nombre+" "+ apellido+ " dice hola desde la función!")
def mi_funcion_args2(username, deporte):
    print("Hola, %s , desde mi función!, Me encanta jugar %s"%(username, deporte))
mi_funcion()

mi_funcion_args("Nychol", "Bazurto")

x = sumar_dos_numeros(1,2)
def sumar_dos_numeros(a, b):
    return a + b
# Función que retornará una lista de frutas
def dar_frutas():
    pass

# Función para concatenar a cada fruta "es una fruta" 
def construir_frase(frutas)

def dar_nombre_de_las_frutas():
    lista_frutas = dar_frutas()
    for fruta in lista_frutas:
        print(construir_frases(fruta))

dar_nombre_de_las_frutas()

Librerias y modulos

calcularPrecios.py

import impuestos


def calcularPrecioBase():
    ...
    impuestos.aplicarImpuestos(precio)
from impuestos import aplicarImpuestos


def calcularPrecioBase():
    ...
    aplicarImpuestos(precio)
from impuestos import *


def calcularPrecioBase():
    ...
    aplicarImpuestos(precio)
import numpy as np

a = np.array([2,3,4])

Gracias

Python2

By nychi713

Python2

  • 563