Está en la página 1de 76

Fundamentos de

Programacin
Tipos de Datos Bsicos
Como en todo lenguaje, tenemos que aprender el abecedario. En Python, tenemos
diferentes tipos de datos bsicos:

Enteros 37 0 -129

Floats (punto flotante) 2.34 -0.021 3.5e6

Cadenas de caracteres Hola Python o Hola Python

Lgicos True (verdadero) False (falso)

Numeros complejos (4+5j)

Colecciones listas, etc.


Tipos de datos Bsicos
Los strings siempre son van rodeados de comillas simples o doble

Hola es un string
Hola es un string
Hola NO es un string

Podemos poner comillas dentro de los strings alternando comillas simples y dobles:

Hola Eduardo Sanduches El Chino


Tipos de Datos Bsicos
Hay ciertas letras que las tratamos de manera especia:l

\t tab
\n nueva linea
\
\

>>> print(Hola\nMundo\tcruel)
Hola
Mundo cruel
Tipos de Datos Bsicos
Un tipo de datos especial son las listas. Las listas contienen elementos
del mismo o distinto tipo:

[ 1, 2, 3]
[ 25, 3.5, que hago aqui]
[] Una lista vacia
Volveremos a listas en un momentooooooo
Variables
Las variables son lugares con nombre donde podemos guardar valores:

Los nombres tienen ciertas restricciones:

1. Pueden usarse letras (maysculas y minusculas), numeros y sub-guin

2. El nombre siempre debe empezar con una letra o subguin

cuenta mi_cuenta _mi_cuenta2 asientoContable _2miNombre

12_pokemon 3casa
Variables
Por lo general, si queremos nombrar una variables con varias palabras, es Buena
prctica que cada palabra desde la segunda empieza con maysculas ( a esto le
llamamos camel case):

nombreDeAmigos
Variables
Adems es Buena practica dar un nombre significativo a las variables:

a qu representa esto?

miPeso Aqu es mucho ms claro que representa la variable


Variables
Hay ciertos nombres que no podemos usar

for while if elif else def del except finally and or not in input is next none

Y otras ms
Variables
Python es sensible a las maysculas:

miVariable no es la misma variable que MiVariable

micasa no es la misma variable que miCasa

Hay que respetar los nombres de las variables.


Variables

=
Para asignar valores a las variables, usamos el smbolo igual:
Variables
mi_peso = 180

hp_personaje = 25.6

mensajeNavideo = Feliz Navidad!


Variables
Con las variables la asingacin va de derecha a izquierda

variable = valor

mi_valor = 38
mi_nuevo_valor = 25
mi_nuevo_valor = mi_valor

Qu contiene mi_valor y mi_nuevo_valor?


Variables
Para imprimir el valor de una variable podemos usar print()

miPeso = 195
print(miPeso)

mensaje =hola
print(hola)
Variables
Las variables pueden contener cualquier tipo de dato:

Variable = 2
Variable = hola
Variable = 2.5
Variable = [ 1, 2, 3]

Python determina automaticamente el tipo de dato que es una variables. A esto le


llamanos tipado dinmico
Tipos de Datos Bsicos - Revisitado
Los elementos de la lista estn numerados desde 0

lista1 = [a , b, c]

0 1 2

Por lo tanto, en una lista de tamao 3, el ltimo elemento es el


element 2.
Tipos de Datos Bsicos - Revisitado
Para saber el tipo de una variable, usamos la funcin type():

variable = 3.5

type(variable)

Nos mostrar informacin con el tipo de dato que contiene la variable. type() es una
funcin. Ms adelante veremos funciones en detalle
Tipos de Datos Bsicos - Revisitado
Para elegir un elemento de la lista, usamos los corchetes:

lista = [Me, llamo, Eduardo]

elemento = lista[2]

print(elemento)
Tipos de Datos Bsicos - Revisitado
Podemos saber el tamao de la lista con la funcin len():

Lista2 = [ 2.5, 5, cake, pizza]


tamao = len(Lista2);
print(tamao)
Tipos de Datos Bsicos - Revisitado
La funcin range nos permite generar una lista nmerica rpidamente

range(inicio, fin, [step])

Genera una rango de numeros desde inicio hasta fin 1. Podemos


especificar tambien el salto con step (opcional).
Tipos de Datos Bsicos - Revisitado
lista = list(range(0,3))

Lista ser [0, 1, 2]

lista = list(range(6, 11, 3))

Lista ser [6, 9]

Usamos la funcion list() para convertir el rango a una lista!


Operadores Matemticos
Con los tipos de datos, nosotros podemos realizer diversas operaciones. Empecemos
con los operadores matemticos:

+ Suma
- Resta
* Multiplicacin
/ Divisin
** Potencia
% Modulo (restante de una division)
Operadores Matemticos
1+1
3.5 2.0
1 * 5.0
35 / 7
2**2
17 % 4

Estos operadores matemticos los podemos usar con los enteros o los floats
Operadores Matemticos
Los operadores matemticos se evaluan en determiando orden:

Primero las multiplicaciones, divisions y potencias


Luego las sumas y restas:

2 ** 2 + 9/3 - 1 + 2*8 = ??

A esto le llamamos la precedencia de los operadores. *, / y ** tienen mayor


precedencia.
Operadores Matemticos
Para definer claramente la precedencia, podemos usar los parntesis:

(2 ** 2) + (9/3) - 1 + (2*8) = ??

Tambien los podemos usar para cambiar el orden de evalucin:

((2 ** 2 + 9/3) - 1) + 2*8 = ??


Operadores Relaciones
Estos nos permiten hacer comparaciones. Estos nos devuelven como resultado verdadero (True) o falso
(False):

< menor que?

> mayor que?

<= menor o igual que?

>= mayor o igual que?

== igual que?

!= no igual que?
Operadores Relacionales
mi_valor = 10

mi_valor < 9 True


mi_valor >= 10 True
mi_valor == 8 False
mi_valor != 9 True
Operadores Relacionales
Una nota de cuidado

= es ASIGNACIN
== es COMPARACIN
Operadores Lgicos
Nos permiten construir operaciones lgicas. Dan como resultado True o False

X and Y Devuelve True si X y Y son verdaderas, caso contrario False


X or Y Devuelve False si X y Y son falsas, caso contrario True
not X Si X es True, devuelve False y viceversa
Operadores Lgicos
a = True
b = False

a or b True
a and b False
not a False
not b True
Operadores lgicos
Combiando los operadores lgicos podemos construer expresiones ms complejas

pedazosPizza = 20
Invitados = 15
precioPizza = 18.5
dineroVaca= 17
habraPizza= (pedazos Pizza > Invitados) and (precioPizza < dineroVaca)
Operadores Especiales
Hay ciertos operadores especiales. Son tiles sobre todo con colecciones y cadenas de
caracteres:

X is Y Pregunta si X es lo mismo que Y


X in Y dice si X esta en Y
X not in Y Pregunta si X no est en Y
X+Y Si X y Y son strings, los une
X == Y Si X y Y son strings, nos dicen si son iguales
X != Y Si X y X son strings, nos dicen si NO son iguales
Operadores Especiales
mensaje = Quiero a mi gato
Mensaje is Quiero a mi gato dar True

Valor = 2.5
Valor is 2.5 Dar False (??)

Valor = 3
Valor is 3 Dar True
Operadores Especiales
Los strings los podemos pensarlos como una lista de caracteres (letras)

mensaje = Como estan

Con in podemos ver si un texto o caracter est dentro de otro:

mo in mensaje Dar True


o in mensaje Dar True
y in mensaje Dar False
Operadores Especiales
Cuando usamos strings, el smbolo + concatena (une) los strings:

mensaje1 = Ya
mensaje2 = me
mensaje3 = fui
mensajeTotal = mensaje1 + mensaje2 + mensaje3
print(mensajeTotal)
Operadores Especiales
Con los operadores == y != podemos compara caracteres o listas:

despedida = Me voy
bienvenda = Hola
despedida == bienvenida Dara False
despedida != bienvenida Dara True

a = [1, 2] b = [1, 2]
a == b Dara True
Conversiones Entre Tipos de Datos
En Python podemos convertir un tipo de datos en otro. Para convertir un dato a string,
usamos la funcin str()

areaCasa = 358.4

str(areaCasa)

358.4
Conversiones Entre Tipos de Datos
En Python podemos convertir un tipo de datos en otro. Para convertir un dato a entero,
usamos la funcin int(). El valor que queremos convertir debe ser compatible.

areaCasa = 358.4

str(areaCasa)

358
Conversiones Entre Tipos de Datos
En Python podemos convertir un tipo de datos en otro. Para convertir un dato a float,
usamos la funcin float(). El valor que queremos convertir debe ser compatible

areaCasa = 358.4

str(areaCasa)

358.4
Conversiones Entre Tipos de Datos
Podemos expresar los datos en otras bases (binario, octal, hexadecimal)

Binario bin(27) 0b11011


Octal oct(27) 0o33
Hexadecimal hex(27) 0x1b

Podemos sumar en diferentes bases:

0b11011 + 0o33 + 0x1b


81 Resultado siempre en decimal
Manejo de Entrada/Salida
En Python, nosotros ya aprendimos que podemos imprimir consas en pantalla con
print():

print(hola)
print(5)

Usualmente se imprime en un formato legible para los humanos


Manejo de Entrada/Salida
Print los podemos usar de otras formas tambien:

print(Maana me voy a, Cuenca);

O
hora = 22
minuto = 59
print(Son las , hora, :, minuto)

Fijense que print pone un espacio despues de imprimir cada argumento


Manejo de Entrada/Salida
Nosotros tambin podemos recibir informacin usando input():

info = input(Su comida favorita?)

Esta funcin retorna lo que ley del teclado. En este caso lo ponemos en la variables info.
Esta funcin recibe el mensaje que vamos a mostrar antes de leer la informacin. Los datos
SIEMPRE se reciben como STRINGS.

Siempre tenemos que convertir al tipo de datos indicado (ejemplos)


Manejo de Entrada/Salida
Qu suceder en este caso?

valor_a_pagar = input(El subtotal: )

total = 1.14 * float(valor_a_pagar)


Formateo de Salida
Tenemos una funcin muy til:

str() para convertir cualquier cosa a una cadena (string)


Formateo de Salida
A veces queremos mostrar las cosas de manera distinta. Para esto usamos las
operaciones de formateo. Hay dos formas.

La primera es usando el operador % (estilo viejo). Ejemplo:

Mi edad es %d aos % 25 (string seguido de % y las variables que queremos


formatear

Al %d se lo llama identificador de formato


Formateo de Salida
Dado un valor un valor, nosotros le podemos decir como queremos que se muestre:
valor = 5

print(%d % valor)
print(%.2f % valor)
print(%x % valor)

Tenemos varios tipos de identificadores de formato


Formateo de Salida
Si queremos formatear ms de un valor, tenemos que mandarlos como una coleccin
(tupla):

bolones = 10
kilometros = 2.56
Ayer corr %.1f kilometros y hoy com %d bolones % (kilometros, bolones)
Formateo de Salida
Para enteros

b para binario
d para decimal
x para hexadecimal (minusculas)
X para hexadecimal (mayusculas)
o para octal
n para nmero (igual a d). Usa configuracin de localidad.

Veamos ejemplos
Formateo de Salida
Para floats

e notacion exponencial (2e16)


E notacin exponencial (2E16)
f para floats
F floats
g formato general
G formato general, pero si nmero es grande usa E
n para nmero (igual a g). Usa configuracin de localidad.
% para mostrar simbolo porcentaje

Veamos ejemplos. Podemos especificar el nmero de decimals %.2f % 2.566767867 Mostrar dos
decimales/
Formateo de Salida
Para strings

s para poner un string

Veamos ejemplos:
Formateo de Salida
En la nueva forma, usamos el mtodo format() de los strings. Por ejemplo:

Contemos de {} a {}.format(uno, diez)

Especificamos donde van los valores a formatearse usando las llaves {}. Aqu se colocan
los argumentos a formatear en el orden que los ponemos dentro de format. Esto se
llama formateo posicional. Python busca la mejor forma de formatear los argumentos.
Formateo de Salida
Podemos especificar tambien explicitamente en que orden van los argumentos a
formatear:

Contemos de {1} a {0}.format(uno, diez)

Contemos de {1} a {0}.format(2.5, -1.0)


Formateo de Salida
Podemos dar nombres a los argumentos:

Quiero viajar en {vehiculo} a {ciudad}.format(vehiculo=avion, ciudad=Quito)

Podemos combinar argumentos posicionales y con nombre:

El {1} le gan al {0} cuando jugaron en {ciudad}.format(Emelec, Barcelona, ciudad =


Machala)
Formateo de Salida
Podemos especificar tambin como formatear determinado valor o variables usando :
dentro de las llaves

Tenemos {0:d} personas y solo {1:.2f} para el almuerzo.format(25, 10.05)

Podemos usar los mismos identificadores de formato que usamos en la notacin


vieja
Formateo de Salida
Podemos decir un tamao mnimo (en nmero de caracteres) valor a formatear
poniendo un entero luego del : (dos puntos):

valor = 15
hola {:10d}.format(15)
hola 10

Veamos ejemplos (muy til para tablas)


Formateo de Salida
Podemos pasar un diccionario con los valores a formatear, especificando el nombre de
cada elemento y usando []:

informacion_casa = {calle: Las Monjas, numero: 704, transversal: Balsamos}

Mi direccion es {0[calle]:s} {0[numero]:d} y {0[transversal]:s}..format(informacion_casa)


Cadena de Caracteres
Como vimos al principio, en Python nos referimos al texto como string o cadenas de
caracteres.

Vimos que el texto esta encerrado entre comillas simple () o comillas dobles ()

Si queremos poner comillas simples o dobles podemos escaper dichos caracteres con el
slash invertido.
Cadenas de caracteres
Ahora, nosotros podemos tambin decirle a Python que NO interprete los caracteres
escapados, usando r delante del texto:

print(C:\carpeta\nombre)

print(rC:\carpeta\nombre)
Cadenas de Caracteres
Podemos escribir texto multi-lineas con las triple comillas:

print("""\
Uso: algo [OPTIONS]
-h Muestra el mensaje de uso
-H nombrehost Nombre del host al cual conectarse

""")

Podemos poner el slash para evitar que print pong un salto de lnea (\n)
Cadenas de Caracteres
Podemos concatenar caracteres con +

Hola + mundo

Funciona con variables tambin:

Texto = hola
Texto2 = mundo
print(Texto + Texto2)
Cadenas de Caracteres
Podemos pensar en la cadenas de caracteres como una lista de caracteres. Cada
caracteres tiene su indice:

texto =
M i c a d e n a
0 1 2 3 4 5 6 7 8 (de izq. a der.)
-9 -8 -7 -6 -5 -4 -3 -2 -1 (de der. izq.)

Los caracteres escapados (\t, \\, \n, \, \, etc) tambien cuentan como caracteres.
Cadenas de Caracteres
Por lo tanto, podemos extraer partes del texto tal como lo hariamos con una lista:

texto[1] ig
texto[-1] a

O rangos de de la cadena.

texto[ inicio : fin : step] sacar el texto desde inicio hasta fin -1. Step es
opcional, dice cada en saltos de cuanto
avanzamos hasta fin -1
Cadenas de Caracteres
Ms ejemplos

texto[-6:-2] cade
texto[3:] cadena
texto[:5] Mi ca
texto[:-3] Mi cad
texto[-6:] cadena
texto[4:-2] ade Aqui combinamos indices + y -
Cadenas de Caracteres
Ms ejemplos

texto[-6:-2: 2] cd
texto[1::3] ian
texto[:5:2] ma
texto[:-3:2] ma
texto[-6::2] cdn
texto[2:-2:2] _ae (subguion para ver espacio)
texto[::-1] anedac im
Cadenas de Caracteres
Las cadenas son inmutables, es decir, no podemos cambiarlas hacienda algo como:

texto[0] = m

Cuando hacemos algo como esto:

texto + inmutable

Realmente estamos creando una nueva cadena.


Cadenas de Caracteres
Podemos realizar ciertas operaciones sobre los strings

texto = me haran ciertas operaciones

Veamos algunas de ellas (Pgina 235 libro Python Programacin)


Cadenas de Caracteres
texto.upper() a mayusculas
texto.lower() a minusculas
texto.title() las iniciales de cada palabra a mayculas
texto.rstrip() saca los espacios a la derecho
texto.lstrip() saca los espacios a la derecho
texto.replace(t, r, n) reemplaza la subcadena t con r, n veces (opcional). Ejemplo
Devuelve cadena nueva.
texto.split(c) Separa una cadena en varias partes, separadas por caracter c y
devuelve una lista con las cadenas
texto.strip() remueve espacios a la izquierda y derecho de la cadena
Cadenas de Caracteres
texto.isupper() True si todos mayusculas
texto.islower() True si todos minusculas
texto.isdigit() True si todos digitos
texto.isalpha() True si todos letras
texto.count(t,a,b) Numero de veces de cadena t dentro de texto. Podemos buscar
en rango [a : b]
texto.find(t,a,b) Indice de primera ocurrencia de t en texto. Podemos buscar en
rango [a : b]
texto.rfind(t,a,b) Indice de ltima ocurrencia de t en texto. Podemos buscar en
rango [a : b]
texto.startsWith(t,a,b) True si texto comienza con texto t. Rango [a:b] opcional
texto.endsWith(t,a,b) True si texto termina con texto t. Rango [a:b] opcional
Cadenas de Caracteres
Para saber la longitude de una cadena usamos len

texto = mi cadena
len(texto)

Cuidado! Si una cadena tiene tamao n, el ltimo caracter est en la posicin n -1


Cadenas de Caracteres
Para saber si un subcadena pertenece a otro o no usamos in y not in

texto = mi cadena

cadena in texto True


cadena not in texto False
hola in texto False
hola not in texto True
Aletoreidad
Un elemento muy til de Python es la generacin de nmero aleatorios. Para esto
usamos en modulo random:

from random import *

Para generar un nmero aleatorio llamamos:

random() Nos genera un nmero float aleatorio entre 0 y 1. (decimal)


randint(a, b) genera un numero entero aleatorio entre a y b (inclusive)
Aleatoreidad
Por ejemplo, simulemos el lanzado de un dado

dado = randint(1,6) cada vez lanzar unu


print(Se lanzo un dado y salio + str(dado))
Aletoreidad
Todos los numeros se generan a partir de una semilla. Nosotros podemos especificarla
con:

seed(semilla)

Si usamos la misma semilla tendremos la misma secuencia de numeros


Aletoreidad
Podemos elegir un elemento aleatorio de la una lista con:

puertas = [premio, siga concursando, siga concursando, premio consuelo']

choice(puertas))
Aletoreidad
Podemos generar un nmero aleatorio de una distribucin Gaussiana con:

gauss(media, desviacion)

Para obtener una muestra de k elementos de una poblacin de tamao p (sin


reemplazo):

sample(p, k)

También podría gustarte