Ir al contenido principal

Python: Variables y comentarios...


Bienvenidos nuevamente a nuestro recorrido por Python, en la entrada anterior hicimos una introducción a este lenguaje y terminamos con nuestro primer programa: el más que conocido "Hola mundo".

En esta ocasión añadiremos comentarios a nuestros programas y hablaremos acerca de los tipos de variables que podemos encontrar, como así también la manera de declararlas y usarlas.

Comencemos...

Comentarios en Python:


Los comentarios siempre son útiles a la hora de programar y es un buen hábito incorporarlos a nuestros códigos.
Para realizar un comentario en Python simplemente debemos colocar el caracter # al inicio de la línea y todo lo que siga a continuación será tomado como comentario. En caso de querer realizar varias líneas de comentarios, podemos colocar el caracter en cuestión en cada línea.

Como ejemplo, colocaremos un comentario al comienzo de nuestro primer programa:


Y si lo ejecutamos vemos que el intérprete salta las líneas de comentarios y ejecuta el programa normalmente.

Variables en Python:


Este lenguaje es mucho más flexible que otros (como C) a la hora de declarar variables, ya que su característica de tipado dinámico nos permite declarar una variable sin necesidad de especificar el tipo de dato de la misma. Esto implica que el intérprete determina el tipo de dato en tiempo de ejecución dependiendo del valor que se le asigne a la misma e incluso ese tipo puede modificarse en el transcurso de nuestro programa.

Los tipos básicos que veremos son:
  • Números: enteros, reales, complejos.
  • Cadenas de caracteres (strings).
  • Booleanos.

Declaración de variables: 

Declarar una variable de cualquier tipo es tan simple como escribir:


Donde "variable" es el identificador correspondiente y el valor es eso mismo, el valor que le asignamos a nuestra variable.


Función type:

Esta función nos permite conocer el tipo de una variable y tiene la siguiente estructura:


Muy simple ¿no les parece?

Numéricos:


Enteros:

Los enteros pueden representarse en Python con los tipos int y long, la diferencia entre estos tipos es que estos últimos nos permitirán guardar números más grandes. Cuando declaramos una variable asignándole un valor, se le asigna el tipo int a menos que el número sea más grande de lo soportado por este tipo, en ese caso se le asigna un tipo long. También podemos agregar una L al final del valor indicándole así al intérprete que almacene la variable como long.

Probemos declarar una variable de tipo int en el intérprete y que nos muestre el tipo de la misma:


Si ahora a la misma variable le agregamos L al final tendremos una variable de tipo long:


Dentro de este tipo también encontramos los hexadecimales (tipo hex que se escriben de la forma 0x...) y los binarios (tipo bin que se escriben usando 0 y 1), que el intérprete guarda con su valor entero pero que pueden mostrarse en su forma original mediante las funciones hex(variable) y bin(variable).

Veamos un ejemplo:


Como vemos, al asignarle a la variable un valor hexadecimal el intérprete lo convierte y lo toma como un entero, si luego usamos la función hex( ) para mostrarlo como hexadecimal sí lo vemos con esa forma.

Reales:


Como sabemos los reales son los números que poseen parte decimal, en Python tenemos el tipo float para este tipo de datos.

Declaremos un real a modo de ejemplo:


Python también nos permite escribir los reales en notación científica. Para ello debemos añadir la letra e seguida del exponente, esto representa una potencia de 10. Veamos un ejemplo:


Como vemos al escribir 0.01e2 estamos asignándole a la variable real el valor de 0.01 x 10^2  que como muestra el print del final es 1.0.

Complejos:


Estos números con parte imaginaria, a diferencia de otros lenguajes donde ni siquiera existen, tienen su lugar en Python mediante el tipo complex. Para declarar un complejo deberemos hacerlo en la forma que se conoce como binómica (teniendo en cuenta que tanto la parte real como la imaginaria deben ser reales) y en lugar de colocar i al final colocaremos j.
Veamos un ejemplo:



Booleanos:

Una variable de tipo booleano (tipo bool) sólo puede tener dos valores: True y False. La mayor aplicación que le daremos a estas variables será evaluar condiciones o realizar test al igual que lo hacemos en otros lenguajes.

Veamos un ejemplo de declaración de una variable booleana en el intérprete y el uso del type( ) como ya lo hicimos antes:


Strings:


Una variable de tipo string (str), no es más que una cadena de caracteres. Estas se declaran de la misma manera que otras variables pero encerrando el texto ya sea entre comillas simples o dobles:



Dentro de nuestros strings podemos colocar caracteres especiales que nos permiten darles formato, entre ellos encontraremos los siguientes:


En los casos de la barra invertida, comilla doble y comilla simple, se usan para poder colocarle a nuestro string uno de esos caracteres sin que se finalice la cadena o que la barra invertida crea que lo que sigue es un caracter especial.

Si en lugar de utilizar el intérprete vamos a la consola, tenemos algunos caracteres especiales más como son el retorno de carro ( \r ) que vuelve el cursor al inicio de la línea, el retorno ( \b ) que hace que el cursor retroceda una posición y la tabulación vertical ( \v ).

En los strings podemos anteponer las letras u para decir que la cadena utiliza codificación Unicode , o r para decir que es una cadena raw que se caracterizan porque los caracteres escapados mediante la barra invertida (\) no se sustituyen por los caracteres especiales correspondientes. Veamos un ejemplo de estas últimas:


Donde vemos que en una cadena normal se toma el caracter especial de salto de línea mientras que en una raw se escribe la cadena tal cual la escribimos.

Para terminar, diremos que también puede escribirse un string entre comillas triples (ya sean tres dobles o tres simples) , lo que nos permitirá escribir el texto en varias líneas y el intérprete respetará dichos saltos de línea sin necesidad de colocar un \n . Veamos el ejemplo:





Comentarios


  1. Muy buen post, estaba buscando esta misma información y aquí la encontré, muchas gracias. diseño web Talavera

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

C: Conversiones de tipo (casting) en C...

El casting o simplemente cast  nos permite hacer una conversión explícita de un tipo de dato a otro, a criterio del programador siempre y cuando estos tipos sean compatibles. Este cast se realiza a través de un operador de conversión de tipos (type casting operator) y es un recurso a tener en cuenta ya que hay situaciones en que nos puede resultar de gran utilidad. Hacer uso de un cast es tan sencillo como poner (tipo de dato)  delante de la expresión o variable a convertir. Veamos un ejemplo: Declaramos una variable de tipo int con un identificador tan creativo como "a" y le realizamos diferentes cast a a para mostrarlo como si fuera un float, un double y un char en un printf. Lo que obtendríamos en pantalla sería lo siguiente: Donde tenemos el valor de nuestro a, a convertido en float y double (mostrándolo con 3 cifras decimales) y a convertido en char. Si vemos este último caso, al hacer la conversión de "a" a char toma a como el código ascii de

C: Ejemplos: Congruencia de Zeller (nivel básico) ...

La Congruencia de Zeller es un algoritmo que se atribuye al matemático alemán Julius Christian Johannes Zeller que vivió en el siglo XIX. Este algoritmo nos permite determinar el día de la semana que le corresponde a una fecha determinada del calendario Gregoriano. La fórmula que nosotros usaremos (con algunas modificaciones respecto de la original para poder usarla en  informática) es la siguiente: Donde h es el día de la semana (entre 0 y 6), J es año/100 (la centuria) y K es año mod 100 (el año de la centuria). Y hay que tener en cuenta que los meses de enero y febrero cuentan como el mes 13 y 14 del año anterior. Ahora que tenemos la fórmula, programemos el algoritmo en C mediante el uso de una función: Analicemos el código paso a paso: Tenemos en cuenta el caso de enero y febrero: Dijimos que estos meses corresponden a los meses 13 y 14 del año anterior por lo que los asignamos como corresponde (mes + 12 , que dará 13 para enero y 14 para febrero) y le rest

Algoritmos: Resolución de problemas y refinamientos en pseudocódigo...

En otras entradas, vimos las partes que debe tener nuestro algoritmo en pseudocódigo y las estructuras que utilizaremos para resolverlo. Ahora llega el turno de implementar todo en conjunto para dar origen a nuestra creación. Pero ¿cómo resolvemos un problema así? Para hacerlo, utilizaremos lo que llamamos refinamientos sucesivos. Este concepto consiste en dividir el problema en subproblemas más pequeños y a estos, a su vez, en otros más pequeños; y así sucesivamente hasta que la solución de los últimos sea trivial, sencillo de resolver. Luego usaremos todas las soluciones obtenidas para armar la solución de nuestro problema mayor. Este principio, tiene base en parte de la técnica divide and conquer (dependiendo de la traducción: "divide y vencerás") que es una de las muchas técnicas de resolución de algoritmos existentes. Como vemos, al dividir el problema en otros más pequeños y más fáciles de resolver, podemos pasar de un problema complicado a uno cuya solución es much