Nociones basicas de python

Page 1

Nociones bรกsicas de Python

NOCIONES BASICAS DE

Miguel Ivรกn Bobadilla

~1~


Nociones básicas de Python

Indice Introducción ................................................... 4 Sintaxis de Python .......................................... 6 Datos ................................................................... 6 Tipos de datos básicos ........................................ 7 Asignando valores, variables y constantes ......... 8 Salida de datos .................................................... 9 Comentarios...................................................... 10 Entrada de datos ............................................... 10 Conversión de tipo de datos ............................. 12 Operadores aritméticos básicos ....................... 13 Posición numérica de caracteres en una cadena .......................................................................... 15 Colección de tipos de datos .............................. 16 Funcion len () .................................................... 17 Función index .................................................... 18 Función range () ................................................ 18 Editando las listas ............................................. 19 append () ........................................................... 19 insert () .............................................................. 20 remove() ........................................................... 20

~2~


Nociones b谩sicas de Python

Operador + ........................................................ 21 Operaciones l贸gicas .......................................... 21 is ........................................................................ 23 and .................................................................... 26 or ....................................................................... 26 not ..................................................................... 26 Operadores de pertenencia .............................. 27 in ....................................................................... 27 not in ................................................................. 27 Sentencias condicionales .................................. 28 Estructura de control ........................................ 31 while.................................................................. 32 for ...................................................................... 35 Excepciones....................................................... 37 continue ............................................................ 39 break ................................................................. 40 pass ................................................................... 41 Funciones .......................................................... 42 Par谩metros de una funci贸n .............................. 43 Ejercicios ...................................................... 45

~3~


Nociones básicas de Python

Introducción

Python es un lenguaje de programación interpretado legible y limpio, fácil de aprender debido a la sencillez de su sintaxis. Es apto para aprender programación debido a que al tener una codificación simple facilita el aprendizaje y la depuración de código ya que no posee codificación compleja. Python posee la ventaja de que podemos ahorrar mucho tiempo en desarrollo ya que las líneas de códigos son pocas a diferencia de otros lenguajes. Su simplicidad evita errores de códigos comunes y a una depuración rápida. A pesar de que Python nos limita para proyectos complejos, para proyectos simples y rápidos es una buena opción, además de que si se busca aprender a programar este es una cátedra para todo principiante. Aclaro que este libro está más orientado a las funciones básicas, no abundaremos funciones complejas ya que este libro está más orientado a principiantes o personas que quieran aprender a programar.

~4~


Nociones básicas de Python

Para descargar Python lo puedes encontrar en el siguiente enlace: https://www.python.org/downloads/ Luego lo instalas. Al finalizar vas a inicio, todos los programas y seleccionas Python. Te saldrán varias opciones, la que usaremos para ejecutar codigo es IDLE (Python GUI) que llamaremos Python Sell. La otra opción Python (Command line) es para ejecutar líneas de comando en Python, no lo usaremos debido a que solo nos orientaremos a lo básico. IDLE (Python GUI)

PYTHON (command line)

~5~


Nociones básicas de Python

Sintaxis de Python Datos Python nos ofrece un modo sencillo de producir entrada y salida de datos gracias a su forma dinámica, esto quiere decir que no hay que especificar su tipo a la hora de declarar variables ya que lo detecta de forma automática. Tenemos que tener en cuenta una regla básica, cuando el valor a introducir es una cadena de texto este debe ir entre comillas, para que python pueda distinguir los textos de los valores que no son textos. En el siguiente ejemplo tenemos el mismo valor pero uno es texto y el otro no. Hay que tener esto muy presente para evitar errores posteriores en el código.

Nota: También podemos utilizar comillas simples (´…´) para indicar cadena de texto.

~6~


Nociones básicas de Python

Otra regla básica es que las palabras reservadas siempre irán en minúscula. Tener cuidado con las mayúscula y minúscula ya que Python es sensible a ello. Tipos de datos básicos Aunque en Python la escritura de código es dinámica, por lo tanto no es necesario especificar el tipo de variable en las declaraciones, en ciertas ocasiones especiales los tendremos que usar. Tipo Int Float Chr Str Bool

Función Variable para números enteros. Variable para números decimales. Variable para un caracter alfanumérico. Variable para cadenas alfanuméricas. Variable condicional (falso o verdadero)

En caso de que quisiéramos conocer el tipo de dato de una variable utilizaremos la sentencia Type (). Dentro del paréntesis colocamos el valor y hacemos enter. “x” representara el valor, variable o cualquier dato que queramos procesar. Type (x) Ejemplos:

~7~


Nociones bรกsicas de Python

Hagamos un ejemplo con los valores del primer ejemplo sobre la entrada de datos.

Si nos fijamos el primer valor sin las comillas lo detectรณ como entero y el segundo valor como cadena, por eso es importante tener en cuenta esta regla de entrada. Asignando valores, variables y constantes La ventaja de Python ser dinรกmico es que ahorramos mucho tiempo en el desarrollo del cรณdigo, por eso no hay que estar declarando el tipo de datos cada vez que realizamos una declaraciรณn. Para declarar variables y constantes solo colocamos el nombre de la variable o constante, una igualdad y luego su valor.

~8~


Nociones bรกsicas de Python

Variable = x

Python asigna los valores a cada variable y lo almacena en memoria, con estas variables podemos realizar operaciones posteriores. Hagamos el siguiente ejemplo, a esas mismas variables identifiquemos su tipo.

Como observamos detecta su tipo de forma automรกtica. Salida de datos Para producir una salida de datos solo tenemos que utilizar la sentencia Print (). Print (x)

~9~


Nociones básicas de Python

También podemos usar Print para mostrar letreros.

Comentarios Siempre en la programación es recomendable utilizar comentarios para que el código este mas organizado, esto nos ayuda a realizar una buena depuración de errores. También para recordar que hace una rutina o para que compañeros (si se trabaja en grupo) puedan entender la función del código. #x

Entrada de datos Para recibir entrada de datos utilizamos la sentencia Input ().

~ 10 ~


Nociones básicas de Python

Variable = imput (texto)

También podemos escribir el código de la siguiente manera si queremos que la entrada se reciba debajo del texto. Print (texto) Variable = input () Hagamos un simple ejemplo con entradas y salidas. Primero ejecutemos el Python Sell y seleccionamos File, luego New File.

Se ejecutara otra ventana (esta ventana es el editor de Python), aquí escribimos el siguiente código.

Nota: Luego del letrero podemos hacer que aparezca el valor de la variable con solo colocar una coma después de la cadena de texto.

~ 11 ~


Nociones básicas de Python Seleccionamos File y luego en Save. Guardamos el archivo con el nombre que desee. Luego presionamos la tecla F5 y se ejecutara el Python Shell. Debería aparecer algo similar a esto:

Conversión de tipo de datos En algunos casos habrá operaciones donde dos o más variables tendrán que interactuar y en ello se puede dar que una variable deba cambiar de tipo, como por ejemplo un problema donde tengamos que tomar un número de una cadena de texto o viceversa convertir un número en cadena de texto. También si queremos convertir en decimales a entero o viceversa. Tipo (x)

~ 12 ~


Nociones básicas de Python

Operadores aritméticos básicos Operador + * / // % **

Operación Suma Resta Multiplicación División coma flotante División sin coma flotante Sobrante de una división Potencia

~ 13 ~


Nociones básicas de Python

Problema: Desarrolle un programa que reciba dos números de entrada y que realice las operaciones de la tabla de arriba. Solución:

~ 14 ~


Nociones básicas de Python

Resultado:

Posición numérica de caracteres en una cadena Python cuenta la cantidad de caracteres en una cadena iniciando desde cero. Esto nos ayuda a identificar la posición de un carácter en dichas cadenas. Cadena [x], siendo “x” un número entero.

Nota: Python cuenta los espacios. Como podemos observar en el anterior ejemplo si contamos desde 0 hasta llegar a 5 nos toparemos que la posición de la cadena en 5 es “m”.

~ 15 ~


Nociones básicas de Python

H 0

o 1

l 2

a 3

4

m 5

U 6

N 7

d 8

o 9

Colección de tipos de datos Para almacenar cualquier tipo de elementos de datos se utilizan las tuplas y las listas. Las tuplas se identifican encerrándolas en “()” y son inmutables. Las listas se identifican encerrándolas en “[]” y pueden ser editadas. Variable = (x,y,z) Variable = [x,y,z]

Si queremos saber si una variable es una lista o una tupla utilizaremos la ya conocida sentencia type ().

~ 16 ~


Nociones básicas de Python

También si deseamos podemos insertar tuplas dentro de listas y viceversa.

Si queremos saber la posición de un elemento en una lista o tupla utilizamos la siguiente sintaxis. Recuerde que Python inicia desde 0 a contar. Variable [posición]

Funcion len () La función len () se utiliza para contar la cantidad de datos o elementos en una lista o tupla. Hagamos un ejemplo con el ejemplo de los enteros y decimales. len (variable)

~ 17 ~


Nociones básicas de Python

También la función len () nos permite contar cadenas de texto. Recuerden que Python cuenta los espacios en blanco.

Función index Se utiliza para buscar la posición de un elemento en una lista o tupla. Variable.index (x)

Función range () Se utiliza para crear una sucesión de números enteros que serán inmutables. range (x)

~ 18 ~


Nociones bĂĄsicas de Python

ColocĂĄndole la palabra reservada list antes de range podemos crear una lista. list ( rang (x) )

Editando las listas En ciertas ocasiones tendremos que editar los elementos de una lista, para ello utilizamos los mĂŠtodos append, insert y remove. Recuerde que esto no funciona en las tuplas ya que son inmutables. append () Se utiliza para agregar un nuevo valor al final de una lista. variable.append (x)

~ 19 ~


Nociones bรกsicas de Python

insert () Se utiliza para agregar un nuevo valor a una lista en una posiciรณn indicada. Variable.insert (posiciรณn, x)

remove() Se utiliza para eliminar un elemento de la lista. Variable.remove(x)

En caso de que solo quiera editar un elemento de la lista ya sea para reemplazarlo o corregirlo se utiliza la siguiente sintaxis. Variable [posiciรณn] = x

Como puede observar la posiciรณn 1 estaba la palabra Mario y se reemplazo por Luisa.

~ 20 ~


Nociones básicas de Python

Operador + No solo es un operador aritmético de suma, también puede utilizarse para agregar datos a una lista. Variable + = [x]

Operaciones lógicas

~ 21 ~


Nociones básicas de Python

Problema: Desarrolle una aplicación que reciba dos números de entrada y realice operaciones lógicas con ellos. Solución:

Python también nos permite realizar cadenas de operaciones.

~ 22 ~


Nociones básicas de Python

Aunque Python es un lenguaje dinámico este no compara valores con tipos diferentes. Para poder resolver este problema solo debemos convertir el tipo de una de las variables.

Como vemos en el ejemplo anterior a pesar de que el valor es similar son de tipos diferentes, por eso muestra que era falso. El de la izquierda es una cadena de texto y el de la derecha es un entero, así que procedemos a convertir uno de los dos, en este caso convertiremos la cadena de texto a entero.

is Es un operador booleano que devuelve verdadero si la referencia del objeto que está a su izquierda se refiere al mismo objeto que está a su derecha.

~ 23 ~


Nociones básicas de Python

Variable is x o x is variable

También se puede utilizar la sentencia is para verificar contenidos en listas y tuplas.

En este ejemplo en la variable “a” le asignamos los valores de la lista de enteros, luego verificamos si los valores de la variable “a” son los mismos de la variable “enteros”. Como observamos es verdadero. Hagamos un ejemplo distinto.

~ 24 ~


Nociones básicas de Python

Aquí observamos que la variable “decimales” no contiene los valores de la variable “a” ya que la variable “a” tiene los valores de la variable “enteros” por lo tanto es falso. En el siguiente ejemplo muestra como no se debe realizar la operación is.

¿Por qué muestra falso si son similares?, porque aunque su contenido sea el mismo a y b son dos objetos diferentes, por lo tanto hay que asignarle los contenidos a una de las dos variables para que la operación pueda realizarse correctamente.

~ 25 ~


Nociones bรกsicas de Python

and (a y b)

or (a o b)

not (a no b)

~ 26 ~


Nociones básicas de Python

Operadores de pertenencia Los operadores de pertenencia nos ayudan a realizar verificaciones de datos dentro de una lista o tupla. in Es un operador booleando que devuelve verdadero si el valor de la izquierda está contenido en el valor de la derecha. X in variable

Nota: Tener cuidado con las mayúsculas y minúsculas en los valores, ya que Python es sensible a ellas y puede causar errores si no encuentra coincidencia. not in Es un operador booleando que devuelve verdadero si el valor de la izquierda no está contenido en el valor de la derecha. Es lo contrario de in.

~ 27 ~


Nociones básicas de Python

X not in variable

También podemos realizar búsqueda de pertenencia de trozos de palabras en cadenas.

Sentencias condicionales Sentencia If el if Else :

Significado Si De lo contrario si De lo contrario Entonces

Para crear condiciones en Python debemos utilizar la siguiente sintaxis. if condición : has x else: has x

~ 28 ~


Nociones básicas de Python

En un lenguaje humano esto significa “si se cumple dicha condición entonces haz la siguiente operación de lo contrario realiza la siguiente operación.”

En el ejemplo anterior la condición se expresa de forma booleana, es decir, que mientras la condición sea verdadera realizará una operación pero si es falsa devuelve un argumento distinto. Pero existen casos en la que deben realizarse diferentes operaciones o devolver diferentes argumentos, pero no podemos utilizar la sentencia if dos o más veces, devolverá un error al menos que se utilice en rutinas distintas, para ello se utiliza la sentencia elif. if condición: Haz x elif condición: Haz x Nota: No hay límite para los elif que puedes utilizar.

~ 29 ~


Nociones básicas de Python

Esto significa “Si se cumple tal condición entonces haz lo siguiente, pero si se cumple esta otra condición entonces realiza la siguiente operación”. Si deseamos podemos agregar un else para sí ninguna de las condiciones se cumple.

Problema: Desarrolle una aplicación que calcule el descuento de un 25% del valor de la compra que tendrá un cliente siempre y cuando su compra sea mayor o igual 2,000.00. Solución:

Podemos realizar operaciones lógicas con las sentencias condicionales.

~ 30 ~


Nociones básicas de Python

Problema: Desarrolle una aplicación que indique si un niño pertenece a uno de los siguientes grupos. Grupo A B C

Colores De 0 a 5 años De 6 a 12 años De 13 a 16 años

Solución:

Estructura de control Las estructuras de control son métodos que utilizamos para realizar repeticiones o ciclos de rutinas en la que tenemos que realizar x cantidades de veces una operación o argumento.

~ 31 ~


Nociones básicas de Python

while La sentencia while se utiliza para repetir una rutina mientras una condición o argumento sea dada. while argumento: Haz X “Mientras se cumpla el argumento dado haz lo siguiente”. Hagamos un ejemplo multiplicando un valor x por 0 hasta 9.

Como podemos observar b será la cantidad de veces que se realizara el ciclo. Mientras b sea menor que 10 se realizara dicha operación hasta que b sea menor que 10. Para que este algoritmo funcione y no nos dé un bucle infinito (que la rutina nunca termine) hay que realizar una operación de conteo, así que incrustamos la ecuación b=b+1, cada vez que se realiza la

~ 32 ~


Nociones básicas de Python

operación b cambiara su valor y cuando b llegue a valer 9 termina ya que al llegar al valor 10 no continuara la operación. Nota: También podemos realizar utilizando la siguiente ecuación x + = 1.

conteos

Hagamos un ejemplo más simple con el siguiente problema: Desarrollar una aplicación que hasta que no reciba el número 2 de entrada no termine de pedir entrada.

El ejemplo anterior el algoritmo dice “mientras el numero sea diferente de 2 realizar la siguiente operación”. Cuando el número es igual a dos la rutina se detiene ya que no hay operación a realizar. Podemos utilizar la sentencia while listas y tuplas.

en

Problema: en un conjunto x de nombres tenemos a José, María, Pedro y Juan. Desarrolle una aplicación que cuente la cantidad de nombres que

~ 33 ~


Nociones básicas de Python

existen en este conjunto y la posición de cada nombre. Solución:

Nota: Luego de una sentencia Python automáticamente la siguiente línea de código deja un espacio para indicar que esa instrucción le pertenece a la sentencia. Para crear una instrucción fuera de la sentencia comience sin el espacio para evitar futuros errores. En el ejemplo anterior vemos que para realizar un conteo necesitamos saber la cantidad de posiciones que existen en el conjunto, por eso utilizamos el método len para contar los valores dentro de la variable nombre. Pero hay un problema, Python cuenta desde cero por lo tanto no podemos asignarle la variable cuenta como posición exacta, ya que si empezamos desde 1 el primer valor Python lo omitirá así que creamos una variable llamada posición que empiece desde

~ 34 ~


Nociones básicas de Python

1 y se la asignamos a cada valor mientras el while cumpla la condición. for Tiene la misma función que la sentencia while. Se utiliza para repetir una instrucción o rutina una cierta cantidad de veces según el valor que le asignemos. for i in variable: Haz x

Nota: la letra “i” podemos sustituirla por cualquier otra letra, no es una palabra reservada. Lo que hizo el for fue tomar la posición de cada elemento en la lista y realizó ciclos imprimiendo cada elemento mientras recorría la lista. 1 Ciclo 1

4 Ciclo 2

6 Ciclo 3

~ 35 ~

8 Ciclo 4


Nociones básicas de Python

Escribiendo la función range después de in podemos asignar la cantidad de ciclos que queremos que se efectúen.

Problema: Desarrolle una aplicación que reciba x cantidad de números y luego lo sume todos. Solución:

Problema: Desarrolle una aplicación que identifique la cantidad de vocales, consonantes, números y caracteres de una oración. (Esta es bien difícil) Solución:

~ 36 ~


Nociones básicas de Python

Excepciones Las excepciones nos permiten tener un código más legible, además de detener el programa cuando ocurra algún error, ya que en muchas ocasiones falla o presenta errores críticos que nos deshabilitan el programa.

~ 37 ~


Nociones básicas de Python

Try: ….bloque_try Except exception as variable: …bloque_except Except exception as variable: …bloque_except

Nota: En lugar de variable tenemos la opción de sustituirla con algún mensaje de texto. Hagamos un ejemplo con un programa que calcule la velocidad de un vehículo.

~ 38 ~


Nociones básicas de Python

En este ejemplo siempre y cuando los valores introducidos sean números o no presente ningún tipo de error de procesamiento se ejecutará el primer bloque, en caso contrario se ejecutará el segundo bloque y mostrara un mensaje de error controlado sin preocuparnos de que el sistema colapse continue Se utiliza regularmente en instrucciones o rutinas de ciclos para indicar dónde termina un proceso para continuar el ciclo siguiente. Con esta sentencia de control se ignora todo lo que este debajo de continue y regresa al ciclo. ¿Recuerda el ejemplo para explicar la sentencia range?, pues usaremos el mismo ejemplo. Este algoritmo lo que hace es que recibe 5 números, ahora le agregaremos una operación para que sume y de cómo resultado el total de los

~ 39 ~


Nociones básicas de Python

números ingresados, pero si son negativos que lo ignore.

números

Si el programa recibe un numero negativo no efectuara la operación, como puede observar dentro de la sentencia condicional esta el continue y debajo de esta la operación, por lo tanto si se cumple la condición de que el numero es negativo entonces se ejecutara el continue y se ignora la operación que está debajo y continua el ciclo. break Parecido al continue pero con la diferencia de que este detiene el ciclo hasta ese punto. Usaremos el mismo ejemplo anterior, solo que le agregaremos la instrucción de que si la suma llega o pasa de 100 se detenga.

~ 40 ~


Nociones básicas de Python

pass Es una sentencia que no hace absolutamente nada, se utiliza normalmente para tener pendiente para ingresar líneas de códigos posteriormente en ese bloque o para si en momento de desarrollo eliminamos algo colocamos pass como forma de marcar que allí había líneas de código. Hay muchas forma de utilizar esta sentencia, generalmente para fase de desarrollo ya que como no hace nada no interfiere en el proceso de ejecutado.

~ 41 ~


Nociones básicas de Python

Como vemos en el ejemplo anterior debajo de la sentencia condicional tenemos un pass, pero al ejecutar el programa no ocurre nada cuando se cumple la condición. Funciones Las funciones son un grupo de instrucciones que se ejecutan a través de una llamada. Las funciones nos permiten ahorrar líneas de códigos ya que podemos ejecutar bloques ya escritos sin tener que repetirlos de nuevo, es decir reciclar o reutilizar código. Python nos permite asignarle el resultado de una función a una variable, la cual nos permite realizar operaciones diversas donde sea necesario reutilizar estos valores. Para crear una función usamos def y luego el nombre que le asignaremos a la función. def nombre (): bloque Para llamar a la función solo escribimos el nombre de la siguiente manera: Nombre ()

~ 42 ~


Nociones básicas de Python

En el ejemplo anterior si ejecutamos el programa no hará nada, ¿Por qué?, porque necesita ser llamada para ejecutarse, así que escribimos la llamada.

Parámetros de una función Un parámetro es un valor que la función espera recibir cuando es llamada para realizar operaciones con dicho valor o valores. Hagamos un ejemplo donde una función reciba un número para realizar su tabla de multiplicar.

~ 43 ~


Nociones básicas de Python

Como vemos en el ejemplo anterior al llamar la función “multiplicar” tomara el valor que le especificamos para realizar la operación dada en la función.

.

~ 44 ~


Nociones básicas de Python

Ejercicios

1. Desarrolle una aplicación que reciba de entrada dos números, los multiplique y luego el resultado lo divida entre el primer número. 2. Desarrolle una aplicación que realice dos operaciones para calcular la velocidad de un vehículo sabiendo que la velocidad es igual a la distancia entre el tiempo. Luego sume los dos resultados. 3. Desarrolle un programa que recibe 10 edades y que indique si es mayor de edad o no, sabiendo que mayor de edad es mayor o igual a 18. 4. Desarrolle un programa que lea la siguiente oración: “Mañana es un buen día para programar”. Calcule cuantas vocales existen. 5. Desarrolle una aplicación que reciba los nombres de 10 donantes y su tipo de sangre. Determine si una persona es apta para donar siempre y cuando sea A+. 6. Desarrolle una aplicación que reciba de entrada los ingresos y gastos de una compañía y muestre ganancia neta, sabiendo que ganancia meta es igual ingresos menos gastos.

~ 45 ~


Nociones básicas de Python

7. Desarrolle una aplicación que reciba de entrada 20 números, luego cuente los positivos y los negativos. 8. Desarrolle una aplicación que reciba la compra de un cliente, si la compra excede de 1,500.00 entonces recibirá un descuento de 25% por el valor de su compra. 9. Desarrolle un programa que reciba dos números y lo sume, luego repita el proceso hasta que la suma de dos números sea mayor o igual a 200. 10. Desarrolle un programa que reciba 4 calificaciones de un estudiante y calcule el promedio de ellas, si la calificación es mayor a 70 entonces aprobó la materia de lo contrario reprobó la materia. 11. Desarrolle un programa que reciba una cantidad de estudiantes x con sus calificaciones finales y respectivas aulas o secciones, luego realizar un promedio de las calificaciones en base a secciones. Determine cual sección posee el mejor promedio de calificaciones entre todas, sabiendo que las secciones son A, B, C.

~ 46 ~


Nociones básicas de Python

Miguel Iván Bobadilla Puerto Plata, República Dominicana miguelivanbobadilla@hotmail.com Facebook: miguelivanbobadilla Twitter: @miguelivanboba

Libros del mismo autor 5 Principios para tener éxito en los estudios 5 Principios para tener éxito en los estudios recopila aquel modo de pensar de los buenos estudiantes que lo separa del resto que no lo son. Los hábitos y paradigmas recolectados en este libro le enseñara como lograr tener éxito en su vida académica en 5 simples principios. Obtenlo aquí: http://www.tuslibros.com/ebook/5Principios-para-tener-exito-en-losestudios#ixzz3HkwKjWGq

~ 47 ~


Nociones básicas de Python Dios el placebo de la humanidad A pesar de que hoy en pleno siglo 21 donde la ciencia está muy avanzada y hemos entendido al menos la mayoría de los grandes misterios de la naturaleza, aun los humanos siguen apegadas a estas ideas de dioses, ¿Por qué? ¿Qué es lo que hace que esta idea perdure tanto?, ¿Qué tan de cierto tiene?, ¿Qué tan de falso tiene?, ¿Por qué tantas personas la siguen?, están entre las preguntan que me han llevado a estudiar con mucho detalle este fenómeno y como resultado escribir este libro que no tiene ningún motivo de ofender a nadie, solo aportar las humildes respuestas a estas interrogantes que podrían ser útiles a la humanidad.

Descarga gratis: http://espanol.freeebooks.net/ebook/Dios-el-Placebo-de-la-Humanidad Gris Un ingeniero informático pasa por un proceso depresivo luego de la ruptura con su esposa tras una infidelidad. Las horas posteriores tiene que lidiar con el recuerdo de un engaño mientras trata de superar esas horas a la que le llama grises. Descargue gratis: http://espanol.freeebooks.net/ebook/Gris#ixzz3IRgLiOIC

~ 48 ~


Nociones bรกsicas de Python

~ 49 ~


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.