Programación para principiantes…

Actualmente la programación está pasando a ser parte de los conocimientos de informática básica que tenemos. En algunos lugares incluso les están enseñando a los niños a programar. ¿La razón? A parte de que de esta manera los niños y jóvenes pueden crear herramientas ad hoc a sus necesidades, y a esto le sumas que es una habilidad más.

Como todos saben hay muchos tipos de programación, siendo la más famosa la que dirigida a aplicaciones móviles. Pero algo que me causa conflicto es que la gente no se da cuenta de todo el potencial que tiene tener esta habilidad. El programar no es solo el saber hacer aplicaciones, es el saber ordenar procesos, el saber optimizar, el poder arreglar partes defectuosas o deficientes en procesos comunes. El programar te puede ampliar la percepción de las cosas.

También la programación no solo se limita a las aplicaciones móviles, o a hackear y demas cosas, actualmente la programación está en todos lados, desde un automóvil, hasta llegar a casa completas. Como estudiante de Tecnologías Electrónicas, me enfoque será en la programación a bajo nivel, o la programación enfocada a objetos. Esto es algo que me encanta, ya que es el hacer sistemas embebidos, es decir crear algo. Crear algo diseñado para una función, o como un complemento de algo más grande.

El programar ya no solo es sentarse en una computadora a escribir, o el pasar muchas horas buscando errores muy pequeños. Programar es ampliar tu visión, es innovar, es crear. Si sabes programar, puedes crear desde cero cosas impresionantes.

http://lifehacker.com/six-life-lessons-ive-learned-from-programming-1502077380

Como dice en la liga, de programar puedes aprender a vivir mejor.

 

Texto, texto, texto, pero no binario

Python tiene la capacidad de poder abrir y editar archivos que sean de texto solamente. Como son los formatos .txt y .csv. Estos solo tienen valores, y no tienen ningún código binario de formato como lo tienen los archivos .doc o .docx de Microsoft Word.

La sintaxis de este comando es extremadamente facil.

Por ejemplo, para poder asignar el texto de un archivo a una variable se utiliza este comando: f=open(«archivo.txt»).

Lo que hace esto es asignar a «f» el texto del archivo.

Pero tambien con Python podemos escribir en un archivo de texto…

file = open(«newfile.txt», «w»)

file.write(«hello world in the new file»)

file.write(» and another line»)

file.close()

En este caso en el archivo newfile.txt, vamos a escribir «hello world in the new file and another line»

http://opentechschool.github.io/python-data-intro/core/text-files.html

 

giphy

Strings, una gran cadena

Como ya hemos visto los strings son cualquier valor de texto asignado a una variable. Este valor es inmutable, y como su nombre lo dice, es una cadena de caracteres. Estos valores se pueden escribir de diferentes maneras, siendo la más famosa las comillas (» «). Lo que sea que se encuentre entre las comillas, será un string.

t3_1wrjjx

Los strings sirven para almacenar cualquier caracter, ya se para imprimirlo, o solo guardarlo. Algo que hay que tener en cuenta cuando usamos strings, es que son operables, pero no al grado de los números. Si se tiene un valor numerico guardado como string, no lo vamos a poder operar o comparar. También cabe mencionar que si tenemos un número integer o float, necesitamos convertirlo a string para poderlo imprimir.  El comando para convertir a string es str().

Cuando se tiene un string este no se puede modificar, pero si se puede reemplazar.

Los strings se pueden operar de la siguiente manera:

Operator Description Example
+ Concatenation – Adds values on either side of the operator a + b will give HelloPython
* Repetition – Creates new strings, concatenating multiple copies of the same string a*2 will give -HelloHello
[] Slice – Gives the character from the given index a[1] will give e
[ : ] Range Slice – Gives the characters from the given range a[1:4] will give ell
in Membership – Returns true if a character exists in the given string H in a will give 1
not in Membership – Returns true if a character does not exist in the given string M not in a will give 1
r/R Raw String – Suppresses actual meaning of Escape characters. The syntax for raw strings is exactly the same as for normal strings with the exception of the raw string operator, the letter «r,» which precedes the quotation marks. The «r» can be lowercase (r) or uppercase (R) and must be placed immediately preceding the first quote mark. print r’\n’ prints \n and print R’\n’prints \n
% Format – Performs String formatting See at next section

Tabla obtenida de: https://www.tutorialspoint.com/python3/python_strings.htm

Una cosa muy importante en Python, es que este es sensible a la capitalización, lo que significa que si compramos dos strings, y varían en la capitalización, no serán los mismos. Por esto siempre hay que cerciorarnos de que las letras coincidan en la totalidad.

Para esto python es capaz de manipular los strings, por ejemplo para poner en minúsculas se utiliza el comando variable.lower(), y para hacerlas mayusculas variable.upper().

fig4-1

Para ver todas las manipulaciones pueden entrar a:

https://www.tutorialspoint.com/python3/python_strings.htm

https://docs.python.org/3/library/string.html

Ciclos, ciclos, ciclos, ciclos, ciclos.

Como ya nos pudimos dar cuenta, hay dos ciclos formales, el while, y el for, y también tenemos la recursión. Todo esto ya lo sabemos, pero como sabemos cual de estas opciones utilizar.

//giphy.com/embed/3Omg3IWyAVqZq

via GIPHY

El ciclo for es el más utilizado en toda la programación, ya que con este se puede iterar elementos. La grán ventaja de este ciclo es que es definido, lo cual significa que sabemos, ya sea directa o indirectamente, cuantas veces se repetirá el ciclo. Esto depende de las variables y/o comandos escritos en el ciclo.

También hay que recordar que este ciclo siempre incluye un contador integrado, casi siempre se le asigna la variable i. Y tampoco hay que olvidar que se tiene que utilizar el comando break para salir del ciclo, si no se utiliza, el ciclo nunca termina.

El ciclo While es el otro tipo de ciclo que existe en Python, y este es un ciclo completamente indefinido, su gran ventaja es que no se sabe cuantas veces se repetirá. Este número es definido por una condición asignada al ciclo. Como su nombre lo dice el ciclo se corre mientras la condición se cumpla. Este ciclo se puede utilizar para un número infinito de iteraciones, siempre y cuando se este cumpliendo la condición. De aquí viene que si vas a correr un ciclo while, se tiene que tener por seguro que eventualmente la condición se debe dejar de cumplir, ya que si siempre se cumple el ciclo se cicla (vaya la redundancia) y nunca se detiene.

El último no es un ciclo como tal, sino que es la ya conocida recursión. Que significa que una función se llama a sí misma. Segun el libro The Elements of Programming Style (por Kernighan and Plauger), los algoritmos recursivos son mejores que los iterantes. Por lo que la recursión es una muy buena opción, y muchas veces mejor que un ciclo común y corriente.

La recursión es una manera muy limpia de programar, y tambien muy facil de entender, ya que los parametros y/o condiciones por los que se va a guiar el ciclo, están fuera de el comando del ciclo, y por ende es más facil de leer.

//giphy.com/embed/A3tGVVdXTPNRK

via GIPHY

Fuentes:

http://www.harrisgeospatial.com/Home/NewsUpdates/TabId/170/ArtMID/735/ArticleID/14764/What-Type-of-Loop-Should-I-Use.aspx

http://stackoverflow.com/questions/660337/recursion-vs-loops

Recursión, otro tipo de «ciclo»

La recursión es un metodo utilizado cuando se tienen funciones, y no se quiere usar un ciclo. Aqui no es solo que no se quiera usar, sino que muchas veces es mejor usar este metodo, ya que es mas rápido, facil, y no requiere casi una nada de comandos.

Esta acción es simplemente volver a llamar la función desde adentro de la función. Esto hace que la función se repita y vuelva a comenzar. De aquí se saca que es como un equivalente a un ciclo.

captura6

Como vemos este código es una función para advinar un número. Y como podemos observar, cada que se termina una condicional, que no es la primera (a lo que se quiere llegar) se vuelve a llamar la función y por ende vuelve a comenzar.

A mi en lo personal me gusta mucho la recursión ya que es una manera muy limpia de programar, y es fácil de entender. A parte de esto no necesita parametros ni variables.

//giphy.com/embed/3oz8xECbR7nQlvxFPW

via GIPHY

Listas y Tuples, Los Libreros de Python.

Como ya conocemos en Python tenemos la posibilidad de guardar cadenas de caracteres llamados strings en variables escogidas por nosotros. Pero si nosotros queremos guardar mas de un string o texto en una variable, ¿Cómo se hace? La respuesta es simple, por medio de las listas y los tuples.

//giphy.com/embed/8Ue8ekoT67ylq

via GIPHY

Como su nombre lo dice, estos dos son listas de strings, asignadas a una variable. La diferencia principal entre la lista y el tuple, es que la lista se puede modificar y el tuple no.

TUPLE

En el tuple los valores no se pueden modificar, y su sintaxis es con parentesis, o escribiendo solamente los valores entre comillas.

captura

Como podemos observar los tuples (y también las listas pueden almacenar integers y floats), y su sintaxis es muy facil. Al imprimir estos tuples, la computadora nos lanza esto.

captura2

Como podemos ver nos imprime el contenido en estos tuples, pero que si queremos imprimir un solo valor del tuple. Para esto utilizamos un parametro dentro del print. Este será el numero de objeto que queremos que se imprima. OJO los valores empiezan desde el cero.

captura3

Al escribir estos parametros el resultado que nos lanza la computadora, son los valores «a», y «1». Ya que son los que seleccionamos en el parametro. Este mismo metodo se puede aplicar a las listas.

Este comando no solo se utiliza para imprimir, sino que también es utilizado para obtener el valor dentro del programa.

Listas.

Las listas son exactamente igual a los tuples, lo unico que cambia es que se escriben con corchetes y no con parentesis. Tambien estas se pueden modificar, osea que se les puede agregar o quitar valores.

captura4

Y el resultado que nos da esto es:

captura5

Como podemos observar la sintaxis para obtener el valor mediante el indice es el mismo que en los tuples.

En las listas se pueden agregar valores mediante el comando list.append(x). En el cual se va a agragar a la lista el valor o la variable que este entre los parentesis.

También se pueden remover valores mediante el comando list.remove(x).

Referencias:

https://docs.python.org/2/tutorial/datastructures.html

https://www.tutorialspoint.com/python/python_tuples.htm

//giphy.com/embed/l4HodBpDmoMA5p9bG

via GIPHY