Check the new version here

Popular channels

Querés programar desde cero en Python? Vení pasa




Antes que nada este post va orientado a aquellos que tienen conocimientos muy vagos sobre programación ya que Python es un lenguaje muy sencillo a la hora de aprender a programar y entender conceptos básicos de programación ya que su sintaxis es muy fácil y para aquellos que no saben nada o casi nada sobre programación esto es muy útil.

Python es un lenguaje de programación multiparadigma pero en este post me voy a dedicar únicamente a la programación imperativa. Pueden descargarlo gratuitamente desde 
aquí, hay diversas versiones ustedes descarguen la que quieran pero yo les recomiendo la 3.4.4 que es la que utilizo en este post.

Los programas imperativos son un grupo de instrucciones que le indican a la máquina como realizar una tarea.

El intérprete se utiliza como si fuese una calculadora, se ingresan sentencias y a partir de estas sentencias se obtiene un resultado inmediato. Por ejemplo para sumar se utiliza el signo + , restar - , multiplicar * , elevar a la potencia ** , dividir / , dividir exactamente // y obtener el módulo %.




Variables

En Python las variables se definen a partir de su asignación, por ejemplo edad=18, ahí se esta definiendo una variable llamada edad y se le esta asignando un valor que es 18.



Objetos, tipos y clases

En Python se dice que todo es un objeto, y un objeto es todo valor que se puede manipular en Python y a su ves todo objeto tiene un tipo, y su tipado es dinámico ya que los tipos de variables se determinan en tiempo de ejecución.
Entonces un tipo define los valores que pueden ser representados en un objeto, se almacenará en la memoria y se definirán las operaciones que pueden realizarse con el y esto no se podrá cambiar, y las clases son las formas de implementar un tipo, por ejemplo edad=18 el tipo de la variable edad es la clase entero ya que contiene un número entero y determina las operaciones que pueden realizarse con un entero. Se puede decir que en Python las clases y los tipos son conjuntos iguales.



Los tipos numéricos incorporados son int (numeros enteros), float (numeros reales, los que tienen coma), complex (parte real y parte imaginaria, representadas en punto flotante), siempre que utilicemos la división obtendremos un número flotante pero si utilizamos la división exacta nos devolverá un entero


Valores Booleanos: bool

True (Verdadero) o False (Falso), estos valores son utilizados para comparar proposiciones, por ejemplo la igualdad a == b, si esta igualdad se cumple el programa devuelve True, de lo contrario devuelve False

Se pueden utilizar la igualdad ==, desigualdad o diferencia !=, identidad is o is not, mayor
>, mayor o igual >=, menor <, menor o igual <=

También se utilizan los operadores lógicos para realizar comparaciones, negación not, conjunción and, disyunción or


Iterador

Un iterador es un objeto que sabe como ir generando elementos de una secuencia, estos pueden ser calculados (como en el caso del range() que ya lo veremos más adelante) o tomados de un contenedor (como en el caso de las cadenas de caracteres).





CADENAS DE CARACTERES(STR)


Las cadenas de caracteres son letras, dígitos, signos y otros símbolos, todo lo que se pueda ingresar por teclado jaja, en Python solo existen cadenas de caracteres, por ejemplo una letra sola como la a no es un carácter solo, para Python es una cadena de caracteres de longitud 1, las cadenas se escriben encerradas entre comillas dobles (" " ) o comillas simples (' ') hay que tener cuidado con esto ya que si queremos escribir una cadena entre comillas dentro de otra cadena tenemos que cambiar el tipo que utilizamos, por ejemplo 



str es la clase que representa a las cadenas de caracteres


Concatenación de cadenas usando el operador + y para la repetición de la misma cadena * por ejemplo



Comparación entre cadenas

Se compara caracter a caracter hasta encontrar uno que defina la comparación o se acaben los caracteres de una de las cadenas, los compara en base al código asking, para mayor información googleenlo pero no es relevante para nosotros



Indexar: tomar caracteres por posición

El primer caracter de la cadena está en el índice 0, con la función len() podemos obtener la longitud de la cadena, es decir la cantidad de caracteres que la componen



Rebanadas (slices)

Cortar una cadena usando [desde:hasta:paso], donde por defecto desde es 0, hasta es el largo de la cadena y el paso es 1, y la posición indicada en el hasta no se incluye, osea si ponemos cadena[:9], esto cortara la cadena desde el principio hasta la posición 8 en un salto de a 1



Una cadena será True si su longitud es mayor que 0, osea si no es una cadena vacía, y si fuera una cadena vacía debe retornar False

Búsqueda de una cadena dentro de otra cadena subcadena in cadena o subcadena not in cadena, esto determinará si una cadena esta incluida en otra cadena


Funcionalidades incluidas:  find(), index(), rfind(), rindex(), count(), repleace(), upper(), lower(), capitalize(), title(), swapcase(), casefold(), strip(), isalpha(), isdigit(), isupper(), islower()

Devuelve la posición en que se encuentra la primer ocurrencia de la cadena subcadena en la cadena1, si no la encuentra devuelve -1     
cadena1.find(subcadena, desde, hasta)



Es exactamente igual que find() pero si no encuentra la subcadena buscada devuelve un error de tipo ValueError y se cortaría la ejecución del programa
cadena.index(subcadena, desde, hasta)


Son iguales que find() y index() pero comienzan a buscar desde el final de la cadena hasta el inicio
cadena.rfind(subcadena, desde, hasta)
cadena.rindex(subcadena, desde, hasta)



Devuelve la cantidad de veces que aparece la cadena subcadena en la cadena1
cadena1.count(subcadena, desde, hasta)



Devuelve una copia de cadena1 con todas las veces que aparece viejo reemplazadas por nuevo, si se indica un argumento opcional en cantidad de veces, se reemplaza tantas veces como se indique
cadena1.repleace(viejo, nuevo, cantidad de veces)




cadena.upper()  Devuelve una copia de cadena convertida a mayúsculas

cadena.lower() Devuelve una copia de cadena convertida a minúsculas

cadena.capitalize() Devuelve una copia de cadena convirtiendo su primer caracter a mayúscula y el resto a minúsculas

cadena.title() Devuelve una copia de cadena en donde a cada palabra le aplica capitalize()

cadena.swapcase() Devuelve una copia de cadena en donde las mayúsculas fueron cambiadas por minúsculas y viceversa.

cadena.casefold() Devuelve una copia de cadena con todos sus caracteres en minúsculas.




cadena.strip()
Devuelve una copia de la cadena en la que se le quitaron los blancios, al comienzo y al final, se puede especificar los caraceres a quitarse en lugar de quitar los blancos


    
cadena.isalpha() Compara cadenas de longitud 1 y devuelve True si esa cadena es una letra y si no devuelve False

cadena.isdigit() Es igual que isalpha pero devuelve si es un número o no

cadena.islower() Devuelve si la letra es minúscula o no

cadena.isupper() Devuelve si la letra es mayúscula o no






ENTRADA Y SALIDA


La función input() retorna siempre una cadena de caracteres y le pide al usuario un ingreso por teclado, si lo que se desee que ingrese el usuario por teclado es un número se debe especificar ya que la clase que solicita el input por defecto es un string




La función print() permite realizar una salida por pantalla con lo que contiene dentro del parentesis, siempre debe escribirse entre comillas y los elementos deben ser separados por comas







ESTRUCTURAS DE CONTROL


Las instrucciones de un programa se ejecutan en forma secuencial, comenzando por la primera y siguiendo en orden hasta la última, ejecutándose todas las ordenes una sola vez.
Las estructuras de selección e iteración permiten modificar el flujo de ejecución de las instrucciones del programa


Selección

  • if

Se evalúa una condición de tipo booleana, si ésta se cumple entonces se ejecuta un bloque, de lo contrario se continúan ejecutando las instrucciones que siguen a la estructura.




  • if / else

Se evalúa una condición de tipo booleana. Si ésta es verdadera, se ejecuta el bloque 1, de lo contrario se ejecuta el bloque 2 y luego se continua el programa.




A LA HORA DE UTILIZAR CÓDIGO MÁS COMPLEJO ES NECESARIO DEJAR DE UTILIZAR EL INTÉRPRETE YA QUE AL TENER UN ERROR DE TIPEO SE PIERDE TODO EL PROGRESO DEL PROGRAMA



SE ABRIRÁ UNA VENTANA COMA LA DE LA DERECHA Y EN ELLA ESCRIBEN EL CÓDIGO NORMALMENTE Y PARA EJECUTARLO EN EL INTÉRPRETE PRESIONAN F5

  • if / elif / else

Al utilizar el if se evalúa una condición y se ejecuta un bloque, al usar el else si no se cumple esa condición se ejecuta ese bloque pero si queremos introducir distintas condiciones para ejecutar un bloque u otro se utiliza el elif




Iteración

En la iteración o repetición, es posible repetir la ejecución de una o más instrucciones del programa mientras se cumpla una cierta condición



  • while

Se evalúa una condición de tipo booleana y mientras ésta sea verdadera se ejecuta un bloque asociado al while, cuando esa condición se vuelve falsa la ejecución del bloque termina

a=0
while a < 5:
print(' el valor de a es ', a)
a+=1


Cuando a tome el valor de 5 el bloque dejara de ejecutarse

  • while / else

a=5
while a < 10:
print(' a es igual a ', a)
a+=1
else:
print( 'a no es menor a 10 ')


Cuando a tome el valor 10 o mayor dejara de ejecutarse el bloque y se imprimirá una sentencia indicando que a no es menor a 10

  • break

Permite romper intencionalmente el bloque del while

a=0
while a < 10:
print(' a es igual a ', a)
a+=1
if a == 6:
break


El bloque se ejecutará desde que a vale 0 hasta que valga 9 pero si en algún momento a toma el valor de 6 el programa finalizará

NO ES RECOMENDABLE UTILIZAR EL break, LA IDEA SERÍA LLEVAR A LA EJECUCIÓN DEL PROGRAMA A UN CORTE NATURAL POR EL NO CUMPLIMIENTO DE UNA CONDICIÓN PERO ES BUENO CONO
CERLO Y TENERLO PRESENTE POR SI NO QUEDARA OTRA ALTERNATIVA

  • for ... in ...

Esta estructura permite iterar sobre los elementos de cualquier secuencia en el orden determinado por la misma secuencia, es decir, se toma una secuencia ya sea una cadena de caracteres o un rango numérico y se obtienen los valores de la misma, es algo difícil de comprender en un principio pero más adelante verán que es algo muy simple

cadena = 'hola'
for letras in cadena:
print(letras)


Lo que hará este bloque es tomar las posiciones de los caracteres de la cadena 'hola' ellas son 0,1,2,3 y por cada posición le asignará a letras la letra que aparezca en esa posición y la imprimirá

AQUÍ LO VERÁN MUCHO MAS SIMPLE



Otra de las secuencias en las que puede iterar puede ser una secuencia numérica o de otros tipos que ya veremos más adelante

  • range()

Genera progresiones numéricas range(desde, hasta, salto)
Genera todos los números incluidos en el range() y sus valores por default son el
start o desde que es 0, el stop o hasta, debe ser indicado y el step o salto por que es 1

for numero in range(5):
print(numero)


Ese bloque imprimirá los números desde el 0 al 4 inclusive



>>>range(3)
0
1
2


En ese bloque el start es 0, el stop es 3 y el step es 1 y genera los enteros entre el 0 y el 3 sin incluir al 3

>>>range(10, 50, 5)

Ese otro genera los números enteros entre el 10 y el 50 sin incluir el 50 y saltando de a 5

AL IGUAL QUE EL while , EL for PUEDE CONTENER UN else Y UN break DE SER NECESARIO






FUNCIONES


Algunos algoritmos son utilizados varias veces en distintas partes de un mismo programa y no es muy buena idea repetirlos cada vez que los usemos ya que se pueden producir errores y será más difícil la tarea de realizar futuros cambios en el programa.

Por lo tanto resulta muy conveniente poder agrupar instrucciones dentro de una misma estructura que permita utilizarlas en diferentes partes de un programa, a estas estructuras se las llaman FUNCIONES

Ya conocen algunas funciones que estuvimos utilizando, print(),input(), len(), pero para definir una nueva función debemos usar la sentencia def, que le indica al programa que crearemos un nuevo bloque de código que será el cuerpo de la función para luego poder invocarla desde otra parte del programa

Para retornar un valor se utiliza la sentencia return seguida del valor a retornar. Toda función retorna un valor como resultado de su invocación

La estructura de una función es la siguiente


def nombre_de_la_función(parámetros):
instrucciones
return valor


Parámetros

Los parámetros tienen la misión de comunicara a la función con la parte del programa que la llama.

def maximo(x, y):
if y < x:


return x
else:
return y


Esta función retornará el máximo entre x e y, los valores ingresados como x e y son llamados argumentos de la función



También se pueden utilizar funciones sin parámetros como por ejemplo para la carga de información

def saludar():
print('Hola')


SIEMPRE QUE SE LA INVOQUE IMPRIMIRÁ HOLA

Es posible asignarle valores por defecto a los parámetros, de manera que los tomen como argumentos en el caso de que no sean especificados

>>> def suma(a, b=10):
return a + b
>>> suma(2, 3)
5
>>>suma(4)
14


Módulos

Cómo habrán notado, al salir del intérprete, las funciones y variables se pierden, por lo tanto, si se quiere escribir un programa largo, es posible crear archivos que contengan las funciones del programa y luego llamarlas en un programa principal para hacer el mantenimiento más fácil, también por el hecho de querer usar una función en distintos programas sin la necesidad de copiar su definición en cada uno de ellos, ese archivo en donde Python permite guardar las funciones es llamado MÓDULO.

Un módulo es un archivo con una extensión .py y para importar el módulo en nuestro programa usamos la sentencia import





CONTENEDORES


Estructuras que permiten contener objetos accesibles por un índice


  • Tuplas (tuple)

Contenedor inmutable(no pueden ser modificadas una vez creadas) de objetos, accesibles por posición mediante un índice numérico, se representa con valores separados por comas, opcionalmente entre paréntesis, tuple es la clase que representa a las tuplas.

>>> t= 1, 2, 3
>>> t
(1, 2, 3)
>>> type(t)


Contiene elementos arbitriarios, no necesariamente del mismo tipo

>>> t= (1, 'hola', 4.5)
>>> t
(1, 'hola', 4,5)


Una tupla de un solo elemento debe escribirse con una coma luego del elemento para distinguirse de la expresión numérica normal

SIN COMA
>>> t= (1+1)
>>> t
2
>>> type(t)


CON COMA
>>> t= (1+1,)
>>> t
(2,)
>>>type(t)



Operaciones


  • CONCATENACIÓN (+, +=)

Siempre debe realizarse entre tuplas, tupla_a + tupla_b porque de lo contrario devuelve un error y siempre se concatenan en el orden de los términos

>>> t= (1, 2)
>>> p= (3, 4)
>>> c= t + p
>>> c
(1, 2, 3, 4)


La concatenación siempre crea una nueva tupla con los elementos de las tuplas sumadas, y ocurre lo mismo si se usa el operador +=, ya que las tuplas son inmutables


  • REPETICIÓN (*)

Siempre se realiza entre una tupla y un número entero, y la tupla se repite y concatena tantas veces como lo indique dicho número

>>> t= (1, 2, 3)
>>> t * 2
(1, 2, 3, 1, 2, 3)



  • COMPARACIÓN ENTRE TUPLAS

Se utilizan los operadores de igualdad (==), desigualdad (!=) y comparación (>, <, >=, <=) y se compara término a término hasta encontrar uno que defina la comparación o se acabe alguna de las tuplas.


  • INDICES Y SLICES

Al igual que en cualquier secuencia se puede utilizar la indexación y los slices o rebanadas, también se puede utilizar el len() para saber la longitud de las tuplas

>>> tupla= (1, 2, 3)
>>> tupla[2]
3
>>> tupla[0:2]
(1, 2)
>>> len(tupla)
3



  • BÚSQUEDA DE ELEMENTOS

Devuelve un valor de tipo booleano si se cumple o no la condición

elemento in tupla

elemento not in tupla



  • FUNCIONALIDADES INCLUIDAS: index(), count()

tupla.index(valor, desde, hasta)

Devuelve la posición en la que se encuentra la primer ocurrencia devalor en la tupla, y si no la encuentra genera un error de tipo ValueError, y los argumentos desde y hasta se utilizan de la misma forma que en los slices

tupla.count(valor)

Devuelve la cantidad de veces que aparece valor en la tupla

ADVERTENCIA, LAS TUPLAS SON TIPICAS DE PYTHON, NO EXISTEN EN OTROS LENGUAJES DE PROGRAMACIÓN



  • Listas(list)

Es un contenedor mutable de objetos accesibles por posición mediante un índice, se representa una lista separando los valores con comas y encerrandolos entre corchetes, list es la clase que representa a las listas y al igual que las tuplas contiene elementos arbitriarios

>>> lista= [1, 2, 3]
>>> lista
[1, 2, 3]
>>> type (lista)

>>> lista= []
#lista vacía


PUEDE USARSE list PARA CREAR LISTAS VACÍAS O A PARTIR DE LOS ELEMENTOS GENERADOS POR IN ITERABLE

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



Operaciones


  • CONCATENACIÓN (+, +=)

Siempre debe realizarse entre listas, lista_a + lista_b porque de lo contrario devuelve un error y siempre se concatenan en el orden de los términos

>>> a= [1, 2]
>>> b= [3, 4]
>>> c= a + b
>>> c
[1, 2, 3, 4]


La concatenación entre dos listas no modifica ninguna de ellas, sino que crea una nueva lista con los elementos de ambas


  • REPETICIÓN (*)

Siempre se realiza entre una lista y un número entero, y la lista se repite y concatena tantas veces como lo indique dicho número

>>> a= [1, 2, 3]
>>> a * 2
[1, 2, 3, 1, 2, 3]



  • COMPARACIÓN ENTRE LISTAS

Se utilizan los operadores de igualdad (==), desigualdad (!=) y comparación (>, <, >=, <=) y se compara término a término hasta encontrar uno que defina la comparación o se acabe alguna de las listas.


  • OPERADOR is

Permite verificar si dos nombres hacen referencia a un mismo objeto

>>> a= [1, 2, 3]
>>> b= [1, 2, 3]
>>> c= a
>>> a is b
False
>>> a is c
True



  • INDICES Y SLICES

Al igual que en las tuplas, en las listas se puede utilizar la indexación y los slices o rebanadas y también se puede utilizar el len() para saber su longitud

>>> lista= [1, 2, 3]
>>> lista[2]
3
>>> lista[0:2]
[1, 2]
>>> len(lista)
3



  • BÚSQUEDA DE ELEMENTOS

Devuelve un valor de tipo booleano si se cumple o no la condición

elemento in lista

elemento not in lista



  • BORRADO DE ELEMENTOS DE LA LISTA

del lista[posición]
del lista[desde:hasta]
del lista[desde:hasta:paso]


>>> a= [1, 2, 3]
>>> del a[0:1]
[2, 3]



  • FUNCIONALIDADES INCLUIDAS: append(), insert(), pop(), index(), count(), split(), join()

lista.append(objeto)

Agrega un elemento al final de la lista

>>> lista= [1, 2, 3]
>>> lista.append(4)
>>> lista
[1, 2, 3, 4]


lista.insert(índice, objeto)

Inserta un objeto en el lugar indicado por índice

>>> lista= [1, 2, 3]
>>> lista.insert (0, 10)
>>> lista
[10, 1, 2, 3]


lista.pop(índice)

Quita y devuelve un elemento de la lista, si no se especifica el índice, se toma el último elemento de la lista

>>> lista= [1, 2, 3, 4, 5]
>>> lista.pop()
5
>>> lista.pop(1)
2
>>> lista
[1, 3, 4]


lista.index(valor, desde, hasta)

Devuelve la posición en la que se encuentra la primer ocurrencia devalor en la lista, y si no la encuentra genera un error de tipo ValueError, y los argumentos desde y hasta se utilizan de la misma forma que en los slices

>>> a= [1, 55, 3]
>>> a.index(1)
55


lista.count(valor)

Devuelve la cantidad de veces que aparece valor en la lista

>>> a= [1, 55, 3]
>>> a.count (3)
1


cadena.split(sep , maxsplit)

Devuelve una lista de palabras en la cadena de caracteres "cadena", usando a sep como delimitador, si no se lo especifica tomara cualquier cadena de blancos como separador, y se haran tantas separaciones como lo indique maxsplit

cadena.join(iterable)

Devuelve una nueva cadena resultante de la concatenación de todas las cadenas del iterable, unidas usando la cadena cadena como separador

>>> 'Esta es una cadena'.split()
['Esta', 'es', 'una', 'cadena']
>>> '+++'.join(lista)
'Esta+++es+++una+++cadena'



  • Conjuntos(set)

Contenedor mutable de objetos inmutables, sin orden y con una única ocurrencia de cada elemento, se representa con valores separados por comas y encerrados entre llaves

>>> c= {3, 2, 2, 2, 1, 1, 3, 2, 1 ,1}
>>> c
{1, 3, 2}
>>> type(c)


A la hora de representar un conjunto vacío debe hacerse así

>>> conjunto= set()

Ya que si lo definimos como conjunto= {} se crea un diccionario

La función len() retorna la cantidad de elementos del conjunto

Cabe destacar que los elementos de un conjunto no son accesibles mediante un índice ya que no se almacenan en un orden definido, un conjunto a su vez puede crearse a partir de los elementos de cualquier objeto iterable


>>> vocales= set('aeiou')
>>> vocales
{'o', 'e', 'a', 'u', 'i'}
>>> set(range(7))
{0, 1, 2, 3, 4, 5, 6,}



Operaciones


  • PERTENENCIA

Devuelve si un elemento está o no incluido en un conjunto

elemento in conjunto

elemento not in conjunto


>>> niños= {'Nacho', 'Benja'}
>>> 'Jony' in niños
False



  • COMPARACIÓN ENTRE CONJUNTOS

Dos conjuntos son iguales si todos los elementos del primero están incluidos en el segundo y viceversa, osea, los dos conjuntos poseen exactamente los mismos elemntos

>>> {1, 2} == {2, 1}
True


Puede preguntarse si un conjunto está incluido en otro conjunto usando los operadores de comparación <, <=, >=, el criterio es que si un conjunto es menor que otro es porque está incluido en el conjunto

>>> {1, 2} < {1, 2, 3}
True
>>> {1, 2, 3} < {1, 2, 3}
False
>>> {1, 2, 3} <= {1, 2, 3}
True



  • FUNCIONALIDADES INCLUIDAS: add(), remove(), discard(), clear(), union(), update(), intersection(), intersection_update(), difference(), difference_update()

Agregar un elemento al conjunto
conjunto.add(elemento)


Ambas quitan un elemento, pero la diferencia entre remove() y discard(), es que remove() dispara un error si el elemento a quitar no pertenece al conjunto, mientras que discard() no
conjunto.remove(elemento)
conjunto.discard(elemento)


Quitar todos los elementos del conjunto
conjunto.clear()


Muestra la unión o suma entre el conjunto y cualquier iterable
conjunto.union(iterable)


>>> {2, 4}.union([6, 8])
{8, 2, 4, 6}



Agrega al conjunto cualquier elemento
conjunto.update(iterable)


>>> c= {1, 2}
>>> c.update('abc', range(4))
>>> c
{0, 1, 2, 3, 'c', 'a', 'b'}



Muestra la intersección o los elementos en común entre el conjunto y cualquier iterable introducido
conjunto.intersection(iterable)


>>> {1, 2}.intersection({6, 8})
set()
>>> {1, 2}.intersection([2, 4])
{2}



Deja en el conjunto solo los elementos en común entre el conjunto y cualquier iterable introducido
conjunto.intersection_update(iterable)


>>> c= {1, 2, 3, 4}
>>> c.intersection_update([2,4])
>>> c
{2, 4}
>>> c.intersection_update(range(-1, 3))
>>> c
{2}



Muestra la diferencia o resta entre el conjunto y cualquier iterable introducido
conjunto.difference(iterable)


>>> {1, 2, 3, 4}.difference({2,3})
{1, 4}
>>> {2, 4, 6}.difference([1, 2, 3])
{4, 6}



Resta al conjunto cualquier iterable elemento introducido
conjunto.difference_update(iterable)


>>> c= {1, 2, 3, 4}
>>> c.difference_update([1, 2, 3])
>>> c
{4}




  • Diccionarios(dict)

Contenedor mutable de valores arbitriarios que pueden ser accedidos mediante objetos inmutables usados como claves, los diccionarios se escriben entre llaves y cada ítem se escribe de la forma clave: valor y los ítem no se guardan en un orden definido y la clase que representa a los diccionarios es dict

>>> diccionario= {'uno': 1, 'dos': 2, 'tres': 3}
>>> diccionario
{'tres': 3, 'dos': 2, 'uno': 1}


Los valores contenidos en el diccionario pueden accederse mediante la clave asociada a cada valor, como si fuera un índice y si una clave no se encuentra en el diccionario y se intenta utilizarla para acceder a un valor se produce un error de tipo KeyError

>>> diccionario= {'uno': 1, 'dos': 2, 'tres': 3}
>>> diccionario['uno']
1
>>> diccionario['cuatro']
KeyError


Para agregar una nueva asociación clave: valor al diccionario, simplemente se le asigna el valor usando la clave deseada y para crear un diccionario vacío se escribe {}

>>> diccionario= {'uno': 1, 'dos': 2, 'tres': 3}
>>> diccionario['cuatro'] = 4
>>> diccionario
diccionario= {'uno': 1, 'tres': 3, 'dos': 2, 'cuatro': 4}
>>> diccionario2= {}
>>> type(diccionario2)


También es posible crear diccionarios usando la clase dict, al invocar la clase sin parámetros, se crea un diccionario vacío pero si se le pasan parámetros por nombre, a cada uno de ellos se los tomará como cadenas de caracteres usadas como claves para los valores asociados a cada parámetro

>>> dict()
{}
>>> dict(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}


Si se pasa un diccionario como parámetro, se crea uno nuevo conteniendo los mismos valores asociados en las mismas claves que poseía el diccionario original

>>> d= dict(a=1, b=2, c=3)
>>> d
{'a': 1, 'c': 3, 'b': 2}
>>> d2= dict(d)
>>> d2
{'a': 1, 'c': 3, 'b': 2}


Es posible pasar como parámetro un iterable que contenga tuplas de dos elementos (clave, valor) para llenar al nuevo diccionario, pero crear esas tuplas puede ser algo engorroso, para ello la función zip() puede ser muy útil ya que toma dos o más iterables y forma tuplas con los elementos correspondientes a cada iterable, esa función puede utilizarse tanto en diccionarios como en conjuntos y listas y la ya conocida función len(), retorna la cantidad de asociaciones contenidas en un diccionario

>>> dict(zip('abc', range(3)))
{'a': 0, 'c': 3, 'b': 1}


Se puede eliminar una asociación usando el del

>>> d= dict(a=1, b=2, c=3)
>>> del d['c']
>>> d
{'b': 2, 'a': 1

[/b]

Operaciones


  • COMPARACIÓN ENTRE DICCIONARIOS

Dos diccionarios pueden ser comparados por igualdad (==) o por desigualdad (!=), dos diccionarios son iguales si poseen las mismas claves y cada clave tiene asociado el mismo valor en los dos diccionarios


  • PERTENENCIA

Devuelve si una clave está o no incluida en un diccionario

clave in diccionario

clave not in diccionario


>>> telefonos= {'Juan': 41321, 'Seba': 43321, 'Laura': 42321}
>>> 'Maria' in telefonos
False
>>>'Maria' not in telefonos
True



  • FUNCIONALIDADES INCLUIDAS: get(), setdefault(), update(), clear(), keys(), values(), items()


Retorna el valor asociado a clave en el diccionario, y si no se encuentra dicha clave, en su lugar retorna un valor predeterminado o si no se lo indica retornara None
diccionario.get(clave, valor predeterminado)

>>> telefonos= {'Juan': 41321, 'Seba': 43321, 'Laura': 42321}
>>> telefonos.get('Seba', 'No existe')
43321
>>> telefonos.get('Rosario', No existe')
'No existe'



Realiza la misma acción que get(), pero si la clave no se encuentra en el diccionario, esta función la agrega junto con la asociación del valor predeterminado
diccionario.setdefault(clave, valor predeterminado)

>>> datos= {}
>>> datos.setdefault('J')
>>> datos
{'J': None}
>>> datos.setdefault('Y': 10)
>>> datos
{'Y': 10, 'J': None}



Actualiza, para todos los parámetros pasados por valor, agrega o reemplaza en el diccionario los valores asociados a dichas claves
diccionario.update(clave, valor)

>>> datos= {'J': None}
>>> datos.update('J'=1, 'n'= 8)
>>> datos
{'J': 1, 'n': 8}



Borra todos los elementos del diccionario
diccionario.clear()


Devuelve una lista con las claves que componen al diccionario, esto puede utilizarse si se necesita iterar sobre las claves del diccionario
diccionario.keys()

>>> diccionario= {'a': 1, 'b': 2, 'c': 3}
>>> diccionario.keys()
dict_keys (['a', 'c', 'b'])
>>> [c.upper() for c in diccionario.keys()]
['A', 'B', 'C']



Devuelve una lista con los valores que contienen las claves del diccionario
diccionario.values()

>>> diccionario= {'a': 1, 'b': 2, 'c': 3}
>>> diccionario.values()
dict_values ([1, 2, 3])
>>> for valor in diccionario.values():
print(valor)
1
2
3



El último, es por si se necesita obtener las claves y los valores asociados a la vez para iterar simultáneamente, ya que en cada iteración devuelve una tupla de la forma (clave, valor) para cada asociación contenida en el diccionario
diccionario.items()

>>> diccionario= {'a': 1, 'b': 2, 'c': 3}
>>> diccionario.items()
dict_items ([('a', 1), ('b', 2), ('c', 3)])
>>> for clave, valor in diccionario.items():
print(clave, '=>', valor)
a => 1
b => 2
c => 3




BUENO ESTE ES EL FINAL DEL POST, ESPERO LES HAYA SIDO ÚTIL, LA IDEA ES AYUDAR A QUIENES ESTÉN INTERESADOS EN PROGRAMAR YA QUE LO QUE ME PASABA A MÍ CUANDO ERA MAS CHICO ES QUE NO ENCONTRABA INFORMACIÓN PARA ARRANCAR, OSEA SIEMPRE ENCONTRABA COSAS MÁS AVANZADAS A MÍ ENTENDIMIENTO, POR EJEMPLO JAVA O C Y PYTHON ME ABRIÓ LAS PUERTAS DE UNA MANERA DENTRO DE TODO "FÁCIL"


POR ÚLTIMO SI QUIEREN ALGUNOS EJERCICIOS PARA PRACTICAR Y FIJAR LOS CONCEPTOS O SI TIENEN ALGUNA DUDA MANDENME UN MP, SALUDOS






0
4
0
2
4Comments
preitos

MUCHAS GRACIAS

0
bobmono32

sos un capo

0
francba86

Gracias +5

0
soy_yo_el_unico

deberías subir los script a gits
https://gist.github.com/
te diría que uses las etiquetas code de taringa pero ni siquiera te aportan resaltador de sintaxis. es solo la función highlight_string de php

0